ShellScript?

概要

  • お手軽並列計算

早くなります

time seq 1000 | parallel -j 1 ./a.out | sort -n
3.6s
time seq 1000 | parallel -j 8 ./a.out | sort -n
1.3s
time seq 1000 | parallel ./a.out | sort -n #指定しないとコア数分並列化
1.3s
  • timeはパイプ全体の時間計測する

使用ケース

  • ファイル並列
ls orig/* | parallel -j 10 "echo < {} > {}.log"
  • 行並列
cat big_size.txt | parallel --pipe -L 10000 "awk '{n+=$1}END{print n}'" > compressed
  • グリッドサーチ
lr=(0 0.05 0.10)
units=(100 200 300)
parallel "./a.out {1} {2} > {1}_{2}.log" \
 ::: ${lr[@]} ::: ${units[@]}
  • 入出力ファイルがある場合
seq 10 | parallel bash -c "./game < sample1 > output{}"

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS