次の機能を使いたいGNUパラレルコマンドと入力リストを並列に実行し、完了するとエクスポートできますが、すべてのサーバーにGNUを並列にインストールしたくありません。
それとも並列バージョンですかxargs
?
GNUパラレル機能のksh実装はありますか?この場合、すべての出力をパイプで接続または保存できる限り、GNU Parallelのように順番に実行する必要はありません。また、一時ファイルの使用を避けたいと思います。
答え1
マルチコアシステムで並列化するには(GNU)を使用できますxargs
。たとえば、次のようになります。
echo seq_[0-9][0-9].gz | xargs -n 1 -P 16 ./crunching
意味: それぞれ stdin の 1 つのトークンを使用して、xargs
最大 16 個のプロセスを並列に開始します。./crunching
split
xargsで使用することもできます。
あるいは、タスクの実行と呼び出しのための単純なMakefileを生成することもできますmake -f mymf -j $CORES
(このソリューションには一時ファイルが必要です)。
添付:GNUパラレルハンドブックには、以下を含む他のツールとの比較も含まれています。パラメータそして作る、興味深いことに、彼らは次のように書いています。
(GNU並列化の初期バージョンはmake -jを使用して実装されました)。
答え2
parallel --embed
使用するのと同じシェルスクリプトにGNU Parallelを含めるものがあることを確認してください。
parallel --embed > new_script
次に new_script を編集します。