GNU Parallelを使ってプログラムを同時に実行するには?

GNU Parallelを使ってプログラムを同時に実行するには?

Pythonスクリプトを何度も並列に実行する必要がありますが、このようにバックグラウンドで実行しました。

ipython program.py & ipython program.py & ...

私はこの方法が実行ごとに1つのコアを使用するのか、スレッドを使用してprogram.pyを実行するのか疑問に思います。ところで、私はGNU Parallelの使い方を知りたかったのですが、私が見つけた例は、「find」の「cat」のようなコマンドです。 GNU Parallelを使用して毎回別のコアで同時にprogram.pyを実行する方法は?ご協力ありがとうございます。

ベストアンサー1

GNU Parallelを使用して毎回別のコアで同時にprogram.pyを実行する方法は?

あなたは(ほぼ)プログラムをコアに結び付けたくありません。一般的に、どのコアがタスクを実行しているのか気にしません。通常、システムの各CPUスレッドに対して1つのジョブのみを実行しようとします。

そしてそれGNU Parallelを使用すると簡単です。

seq 1000 | parallel ipython program.py

これは実行されますが、ipython program.py 1CPUipython program.py 1000スレッドごとに1つのジョブのみが並列に実行されます。したがって、ハイパースレッディング(つまり、16個のCPUスレッド)を使用する8コアシステムでは、16個のジョブを並列に開始します。

この内容は第2章で説明します。https://doi.org/10.5281/zenodo.114601415分ほど時間をかけてお読みください。あなたのコマンドラインはあなたを愛するでしょう。

おすすめ記事