並列計算に関して, n>15でparpool(n)が立ち上がらない

15 views (last 30 days)
Daiki Sekizawa
Daiki Sekizawa on 4 Jun 2022
Answered: Daiki Sekizawa on 4 Jun 2022
ワークステーションから並列計算を実行しています. 並列計算では, 並列数は
parpool(n)
のように指定します. n=15程度では問題なくparpoolが立ち上がることは確認しました.
>> parpool(15)
'local' プロファイルを使用して並列プール (parpool) を起動中...
並列プールに接続済み (ワーカー数: 15)
ans =
Pool のプロパティ:
Connected: true
NumWorkers: 15
Cluster: local
AttachedFiles: {}
AutoAddClientPath: true
IdleTimeout: 30 (残り 30 )
SpmdEnabled: true
しかし, n=20程度になるとparpoolが立ち上がらず, 困っています. どうすれば良いでしょうか?
>> parpool(20)
'local' プロファイルを使用して並列プール (parpool) を起動中...
エラー: parpool (line 113)
次のエラーにより、並列プールを起動できませんでした。詳細については、クラスター プロファイル マネージャーでプロファ
イル 'local' を検証してください。
原因:
エラー: parallel.internal.pool.InteractiveClient>iThrowWithCause (line 678)
対話型セッションを初期化できませんでした。
エラー: parallel.internal.pool.InteractiveClient>iThrowIfBadParallelJobStatus (line
792)
対話型通信ジョブが失敗し、メッセージが表示されませんでした。
ワークステーション自体の性能については
>> maxNumCompThreads
ans =
128
と出力されるため, 本来なら128の並列が可能なはずです.
また, ターミナルからtopコマンドで, 他のユーザーが重い計算を走らせていない/メモリは十分 ということは確認しています. また, Julia等の他言語で120並列が可能であることも確認したので, 機械ではなくMATLABの問題だと思われます.
また, parpoolではなく設定->Parallel Computing Toolbox設定->推奨される並列プールでのワーカー数や, NumWorkers, NumThreads をいじっても結果は同じでした.

Accepted Answer

Daiki Sekizawa
Daiki Sekizawa on 4 Jun 2022
ターミナルから
cat /proc/self/limits
で, Max processes のsoft/hard limitを確認したのちに
ulimit -u <hard limitの値>
としてMax processesを増やすことにより解決しました

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!