小编Dan*_*iel的帖子

如何在多核Linux机器上使用GNU make --max-load?

从GNU make的文档:http://www.gnu.org/software/make/manual/make.html#Parallel

当系统负载很重时,您可能希望运行的作业少于轻载时的作业.您可以使用'-l'选项告诉make根据平均负载限制一次运行的作业数.'-l'或'--max-load'选项后跟一个浮点数.例如,

 -l 2.5
Run Code Online (Sandbox Code Playgroud)

如果负载平均值高于2.5,则不会让make启动多个作业.没有跟随号码的'-l'选项会删除加载限制,前提是前一个'-l'选项.

更准确地说,当make启动一项工作,并且它已经至少运行了一个工作时,它会检查当前的平均负载; 如果它不低于'-l'给出的限制,则等待直到负载平均值低于该限制,或直到所有其他作业完成.

从Linux手册页获取正常运行时间:http://www.unix.com/man-page/Linux/1/uptime/

系统负载平均值是处于可运行或不可中断状态的平均进程数.处于可运行状态的进程要么使用CPU,要么等待使用CPU.处于不可中断状态的进程正在等待某些I/O访问,例如等待磁盘.平均值是在三个时间间隔内取得的.对于系统中的CPU数量,负载平均值没有标准化,因此平均负载为1意味着单个CPU系统一直在加载,而在4 CPU系统上,这意味着它在75%的时间内处于空闲状态.

我有一个并行的makefile,我想做一个显而易见的事情:make make继续添加进程,直到我获得完整的CPU使用率,但我不会引起颠簸.

今天的许多(所有?)机器都是多核的,因此这意味着负载平均值不是应该检查的数量,因为需要针对核心数调整该数量.

这是否意味着GNU make 的--max-load(又名-l)标志现在没用了?在多核计算机上运行并行makefile的人在做什么?

multicore uptime gnu-make

12
推荐指数
2
解决办法
4477
查看次数

如何在ubuntu上默认启用透明的大页面?

如何在ubuntu上默认启用透明的大页面?

$ uname -a
Linux yoda 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

~$ cd /sys/kernel/mm/transparent_hugepage/

/sys/kernel/mm/transparent_hugepage$ ls
defrag  enabled  khugepaged

/sys/kernel/mm/transparent_hugepage$ cat enabled 
always [madvise] never

/sys/kernel/mm/transparent_hugepage$ sudo echo always > enabled 
-bash: enabled: Permission denied

/sys/kernel/mm/transparent_hugepage$ sudo ls
[sudo] password for <...>: 
defrag  enabled  khugepaged

/sys/kernel/mm/transparent_hugepage$ sudo ls
defrag  enabled  khugepaged

/sys/kernel/mm/transparent_hugepage$ sudo echo always > enabled 
-bash: enabled: Permission denied

/sys/kernel/mm/transparent_hugepage$ cat enabled 
always [madvise] never
Run Code Online (Sandbox Code Playgroud)

ubuntu huge-pages

9
推荐指数
2
解决办法
2万
查看次数

如何让aquamacs显示稳固闪烁的光标?

如何让aquamacs显示稳固闪烁的光标? http://aquamacs.org/

通过大量的工作,我们设法让它显示一个空心闪烁的盒子,而不仅仅是一条闪烁的垂直线,但这通常太难看了.

emacs aquamacs

5
推荐指数
1
解决办法
1179
查看次数

如何阻止GCC合并共享相同后缀的字符串文字?

GCC似乎在进行优化,将合并了相同后缀的字符串文字组合在一起。

例如,一个包含两个字符串文字"foo bar""bar"可以最终ELF形式结束的C程序(1)将字符串表更改为具有单个字符串文字,"foo bar"以及(2)将该程序更改为将任何指针"bar"都转换为现在指向的4字符入弦"foo bar"。请注意,从仅向前读取C程序的角度来看,第二个文字仍然看起来像"bar"

虽然我认为这是一种压缩字符串集合而不增加ELF文件格式复杂性的聪明方案,但是出于深奥的原因,这也给我带来了麻烦(在后期处理ELF文件并对其进行各种分析时)。如何关闭GCC的此功能?

c gcc elf

5
推荐指数
1
解决办法
234
查看次数

你能获得一个*物理*本地的Google Compute Engine实例集群吗?

通过Google Compute Engine,您可以获得一组语义本地的实例,只要它们可以相互通信,所有外部访问都必须通过防火墙等.如果我想运行Map-Reduce或其他类型的集群那些会导致高网络流量的工作,那么我也想要物理本地的机器(比如在同一个机架上).查看API和初始文档,我认为没有任何方法可以请求; 有没有人知道呢?

mapreduce cluster-computing google-compute-engine

3
推荐指数
1
解决办法
428
查看次数