2016-09-09 4 views
2

チャペルプログラムでロケール(*)が使用されないようにロケールが1つしかない場合、プログラムは実行マシン上のすべてのプロセッサ/コアを使用しますか(おそらくカーネルスレッド)。チャペル、ロケール、マルチコアのマルチプロセッサマシン

(*)Chapelで使用されているロケールは、ほとんどのオペレーティングシステムでは、ロケールという言葉を使用して言語とバリアントを使用しているため、やや不幸な選択です。

答えて

2

はい、デフォルトでは、チャペルプログラムは実行マシン上で利用可能なすべてのコアを使用しようとします。これは、単一のロケールと複数のロケールの両方のコンパイルに当てはまります。

この動作を制御できる2つの設定、dataParTasksPerLocaleとCHPL_RT_NUM_THREADS_PER_LOCALEを記載したExecuting Chapel Programsを参照してください。

「ロケール」という単語の選択に関しては、分散並列プログラミングの文脈で一般的に使用される「地域性」という単語に関連しています(「ローカリティの最適化」を検索してみてください)。いくつかの点でチャペルロケールは独自の概念であり、独自の用語を必要とします(「ノード」のようなものは適切ではありません)。