GNU parallelとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > GNU parallelの意味・解説 

GNU parallel

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/01 06:08 UTC 版)

GNU parallel
作者 Ole Tange[1]
開発元 GNUプロジェクト
最新版
20250222 ('Grete Tange') / 2025年2月22日 (7日前) (2025-02-22)[2]
リポジトリ
プログラミング
言語
Perl
対応OS Unix系
サポート状況 開発中
種別 ユーティリティ
ライセンス GNU GPL v3+[1]
公式サイト GNU Parallel
テンプレートを表示

GNU parallel (グヌー・パラレル) は、Unix系OSコマンドラインユーティリティである。Unixシェル上でコマンド並列実行を可能にする[1]。Ole Tange によってPerl言語で作られ、GNU GPL v3+の下で配布されている[1]

使用方法

GNU parallelの紹介 (パート1)
GNU parallelの紹介 (パート2)

最も一般的な使用方法は、sh スクリプトの for の置き換えであり、以下はその例である。

for x in $(cat list) ; do
    do_something "${x}"
done | process_output

このコマンドは以下のように置き換えることができる。

cat list | parallel do_something | process_output

do_something引数となるファイルの一覧 (list) は、パイプによって入力される。また、process_outputが空の場合がある。

GNU parallel を使用するスクリプトは、pexec英語版を使用するスクリプトよりも可読性が高いものになる。

GNU parallel では、以下のような処理が行われる。

デフォルトでは、CPUコア数と同数のジョブが並列実行される。

実行例

find . -name "*.foo" | parallel grep bar

上記のコマンドは以下のコマンドと同等である。

find . -name "*.foo" -exec grep bar {} +

これらのコマンドは、カレントディレクトリとそれ以下に存在する全てのファイルとディレクトリで名前が『.foo』で終わるものを検索し、その中で名前に『bar』を含むものを更に検索するものである。parallelは、ファイル名改行が含まれていない限りは正常に動作する。ファイル名に改行が含まれている場合は以下のコマンドによって問題を回避する。

find . -name "*.foo" -print0 | parallel -0 grep bar

上記のコマンドは、ヌル文字によってファイル名を区切っている。

find . -name "*.foo" | parallel -X mv {} /tmp/trash

上記のコマンドは、引数の位置を{}によって変更している。

find . -maxdepth 1 -type f -name "*.ogg" | parallel -X -r cp -v -p {} /home/media

上記のコマンドは以下のコマンドと同等である。

cp -v -p *.ogg /home/media

上記のコマンドよりもfindparallelcpを使用している実行例の方がリソース効率がよく、『*.ogg』に一致するファイルが膨大な場合に発生するシェルへの過負荷によるエラーを防ぐことができる。

脚注

  1. ^ a b c d GNU Parallel”. Free Software Foundation. 2018年9月27日閲覧。
  2. ^ Tange, Ole (22 February 2025). "GNU Parallel 20250222 ('Grete Tange') released [stable]". parallel (Mailing list). 2025年3月1日閲覧

関連項目

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「GNU parallel」の関連用語

GNU parallelのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



GNU parallelのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのGNU parallel (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS