【发布时间】:2015-05-11 13:39:35
【问题描述】:
我一直在比较使用正常和并行运行的示例数据生成脚本。我正在使用 GNU 库“并行”来并行运行脚本。该脚本在 100 列和不同行大小的固定列中生成随机记录。下面是我生成随机记录的sn-p:
for i in $(seq $rows)
do
tr -dc A-Za-z0-9 < /dev/urandom | head -c 2000 > tmp
gawk '$1=$1' FIELDWIDTHS='I put here the varying column lengths' OFS=, tmp >> tmp1
done
以下是我收集的统计数据:
"# of Rows" "# of columns" "Time took(sec)" "Time took, using & (sec)" "Time took Parallelism=4(sec)"
100 100 1 1 ~0
1000 100 6 5 5
10000 100 51 59 51
100000 100 895 576 543
1000000 100 10462 11765 11468
即使我使用“并行”实用程序引入并行处理,与正常处理相比,我看不到经过的时间有任何变化。任何想法、见解和帮助将不胜感激。
我的 CPU 有 4 个核心,我想确保程序在执行时利用所有核心。
谢谢, 阿迪尔
【问题讨论】:
-
您可能想确定瓶颈在哪里。
-
Maxim,由于我没有使用任何手动程序在脚本中引入并行性,因此瓶颈识别本身就是一个瓶颈。但是,我可以在脚本执行时看到 mstat,所有内核都在某个或另一个时刻被使用,但 %idle time 的主要部分几乎一直保持较高(
-
我会研究如何从
/dev/urandom读取数据。