タグ

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

  • xargs を使ってカジュアルに並列処理 - たごもりすメモ

    シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて

    xargs を使ってカジュアルに並列処理 - たごもりすメモ
  • いまさら findと xargsと parallelの便利さを主張してみる - ダイミテイ

    hnwさん、細かいツッコミをいれます。生産性が上がるわけでもないので、あまりしらなくていいことですが。 コマンドを一度に起動する (find -exec +) $ find . -name \*~ -exec rm {} \; ただ、これだと100000ファイルがヒットした場合にrmコマンドが100000回実行されてしまうため、全部実行するまでに案外時間がかかる、なんてことがあります。 http://openlab.dino.co.jp/2008/02/20/133431188.html これを回避するために xargsを使うのもまっとうですが、最近の find には + というのがあります (SUSV3 で定義されていて、 MacOS Xでも GNUでも (多分) BSDでも使えます)。 find . -name \*~ -exec rm {} + これで、複数の引数つけて rmを呼んで

    いまさら findと xargsと parallelの便利さを主張してみる - ダイミテイ
    igrep
    igrep 2011/04/23
    parallel覚えとこう。
  • 1