在两个以上的线程上可以graphicsmagick批处理吗?

问题描述:

如果我创建转换35K图像6个实:graphicsmagick批处理文件,这是我在HTOP看到:在两个以上的线程上可以graphicsmagick批处理吗?

htop http://f.cl.ly/items/0P3u2S1i1g3K16440g1V/Screen%20Shot%202015-06-03%20at%2011.42.39%20AM.png

为什么不使用多个线程?我猜测,这两个线程都在同一个核心上(4核英特尔超线程)。我找不到关于此在线的graphicsmagick配置。我是否因操作不当而责怪我的操作系统?

gm手册页-limit <type> <value>中唯一相关的选项是每张图片的资源限制,而我正在寻找一种方法来增加用于多个图像的线程数量,而不是单个图像。

确实,graphicsmagick关于并行性的唯一说法是关于OpenMP(这似乎是关于多线程单一图像处理)。所以也许不支持我想要做的事情。我的问题可能会更一般:“如果我启动gm的多个实例,为什么它们都运行在同一个线程上?”我不确定这是一个操作系统问题还是一个gm问题。


在批处理文件中的每一行都是:

convert in/file1.jpeg -fuzz 10% -trim -scale 112x112^ -gravity center -extent 112x112 -quality 100 out/file2.jpeg 

我运行的批处理文件:gm batch -echo on -feedback on data/convert/simple_crop_batchfile_2.txt

我在GraphicsMagick 1.3.18 2013-03-10 Q8和Ubuntu 14.10,这时候我apt-get升级告诉我:Calculating upgrade... graphicsmagick is already the newest version


我的故事确实显示了使用多个批处理文件的无意义(尽管使用2个批处理文件的整体处理时间比1个同时加快了30%)

原来我可以把这个责怪在CPU上,核心利用率问题来自Intel Xeon X5365 @ 3.00GHz处理器。这里只是4并发进程上Intel Xeon E5-2620 v2 @ 2.10GHz图片:

parallel cpu utilization http://f.cl.ly/items/3B3D0J3h0E1L3s2G0A1n/Screen%20Shot%202015-07-25%20at%208.31.51%20PM.png

操作系统和软件版本是在两台机器上相同的(以及完全相同的任务瓦特/完全相同的数据),唯一的区别是CPU。在这种情况下,后面的CPU速度超过2倍(对于4个批处理文件)。