複数の呼び出し間の GNU 並列操作の総数を制限します。

複数の呼び出し間の GNU 並列操作の総数を制限します。

私は10,000のコアを持つコンピュータを使用していますが、一度に1,000のコアにしかアクセスできません。

いくつかの場所でGNU並列処理の利点を利用するスクリプトがあります。レベルAを並列化し、このスクリプト内で30倍以上の作業を行います。

--link並列性と構文を使用するためにスクリプト全体を書き換えるには、多くの作業が必要です::: A B C ::: $(seq 30)

parallel2つの独立した呼び出しが2つの間のジョブの総数を1000に制限するのに十分な通信を可能にする方法はありますか?

ベストアンサー1

私が正しく理解したら、あなたはGNU Parallelを2つ(またはそれ以上)インスタンスを実行し、総実行ジョブ数が1000未満であることを望んでいます。

したがって、ある時点では、そのうちの1つは300のジョブを実行し、もう1つは700のジョブに制限する必要があります。

--limitこの特別なケースのために設計されています。選択したスクリプトを実行し、終了値に基づいてジョブ数を制限します。

これで、実行中のジョブの総数を決定する方法が必要です。

たぶん何ですか[ $(ps aux | grep myprogram | wc -l) -gt 1000 ]

(どのモンスターが10,000個のコアを持っていますか?)

おすすめ記事