1

Ubuntu 12.04 を実行している仮想マシンで奇妙なことが起こっています。次のスクリプトは、以前は 7 つのコアで 7 つのタスクを一緒に実行するのに成功していましたが、正しく機能しなくなりました。

Prog out file1.bin fids 72000 > logs/fitlog1.log &
Prog out file2.bin fids 72000 > logs/fitlog2.log &
Prog out file3.bin fids 72000 > logs/fitlog3.log &
Prog out file4.bin fids 72000 > logs/fitlog4.log &
Prog out file5.bin fids 72000 > logs/fitlog5.log &
Prog out file6.bin fids 72000 > logs/fitlog6.log &
Prog out file7.bin fids 72000 > logs/fitlog7.log &

Prog は実行可能ファイル名です。

以前 (2 日前)、このスクリプトを実行したとき、各アプリはシングル コアで実行され、ログは問題ありませんでした。これで、アプリが同時に起動しなくなりました。2 つまたは 3 つのコアが起動してから停止し、1 つだけが実行を継続します。

誰でもこの動作を説明できますか?

システムは、Windows 7 の VM Workstation 上の Ubuntu 12.04 です。ログ ファイルにエラーはまったく表示されません。

ご尽力いただきありがとうございます。

4

1 に答える 1

0

あいまいすぎる説明です。奇妙な動作の可能性はたくさんあるはずですが、一般的に、Linux 上のプロセスを特定の CPU コアにバインドする場合は、次のことから始めます。

man cpuset

そうしないと、カーネルは負荷のラウンドロビン分散を試み、プロセスは実行中にコア間を「移動」します。

于 2012-07-07T20:02:07.157 に答える