タグ

並列処理に関するpick_mugetuのブックマーク (2)

  • xargsで並列処理してCPUを100%使い切ろう

    背景 6000枚の画像を一括変換したかったので。普通にmogrifyを打つだけだと1プロセスなので1コアしか使ってくれないです。最近のPCは1コアの周波数を低めにして、多くのコアを積んで処理を並列に動かすことによって高速化を行うのが主流です。 アプローチ ちゃんと全てのコアを使い切って変換をする必要があります。xargsコマンドを使うと並行処理を簡単に行えます。-Pで並列数、-nで1コマンド辺りの引数の数を指定します。-nは無くても良いですが1コマンドの起動コストを減らすために指定してあげるのが良いです。ファイル名に半角スペースが入っている場合があるので、find側に-print0オプションと、xargs側に-0オプションを指定しています。 % find . -type f -print0 -name '*svg' | xargs -0 -n 5 -P 8 mogrify -format

    xargsで並列処理してCPUを100%使い切ろう
  • GNU Parallelがすごすぎて生きるのがつらい

    皆さん今日もたくさんのサーバを相手にされていることかと思いますが、いくつかのサーバにアクセスして 1 秒間の統計情報(例えばvmstat 1 2)を集めてパッと表示したい時ってどうやってますかね?shell script を学びはじめたばっかりの僕はこんな感じで書いてました。 $ for i in host1 host2 host3; do ssh $i "vmstat 1 2 | tail -1"; done 0 0 0 329004 210836 14275360 0 0 0 2424 1410 1828 0 0 100 0 0 0 0 0 3716112 587704 25921684 0 0 0 488 1643 2026 0 0 100 0 0 1 0 0 555440 265560 14015548 0 0 0 4204 1534 2392 1 0 99 0 0 vmstatと

    GNU Parallelがすごすぎて生きるのがつらい
  • 1