貧しい人々のkshでGNU並列実装ですか?

貧しい人々のkshでGNU並列実装ですか?

次の機能を使いたい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

splitxargsで使用することもできます。

あるいは、タスクの実行と呼び出しのための単純なMakefileを生成することもできますmake -f mymf -j $CORES(このソリューションには一時ファイルが必要です)。

添付:GNUパラレルハンドブックには、以下を含む他のツールとの比較も含まれています。パラメータそして作る、興味深いことに、彼らは次のように書いています。

(GNU並列化の初期バージョンはmake -jを使用して実装されました)。

答え2

parallel --embed使用するのと同じシェルスクリプトにGNU Parallelを含めるものがあることを確認してください。

parallel --embed > new_script

次に new_script を編集します。

関連情報