Getting Started
Wolfram言語にはツールと設定がすべて組み込まれているため,すぐに並列計算を実行することができる.並列計算を活用するには通常,マルチコアマシンまたは並列Wolfram言語カーネルのグリッドへのアクセスがある方がよい.幸運にもマルチコアマシンはここのところ多くの設定タイプで一般的になってきている.
最初のステップはシステムが実行中であることを示すだけかもしれないが,ParallelEvaluateである.これが最初の並列計算なら,これにより設定された並列カーネルが起動する.
次は各カーネルのマシン名を返す.すべてが同じマシンで実行中であることを示している.
並列カーネルの状態モニタを開くと便利であることがある.これは以下のようなものである.
これで実際の計算が実行できる.非常に簡単な並列プログラムに検索がある.次の例では階乗に1が加えられ,結果が素数であるかどうかが検証される.これは通常のWolfram言語の計算をParallelizeで囲むことで行われる.
別の例として,メルセンヌ(Mersenne)素数を検索する.これも以下のように計算をParallelizeで囲むことで行う.
ここまで来たら,Wolfram言語で並列計算の実行を開始する準備は整っている.
並列計算で独自の関数を使う
前の例は,並列化可能な式をParallelize[…]で囲むことで行われた.式に組込み関数だけでなく,ユーザ定義の関数が含まれる場合は準備が必要になる.
並列カーネルで評価する組込みシンボル以外のシンボルの定義は,使用前にすべてのカーネルに「配布」する必要がある.
定義を配布するのを忘れて並列計算を行ったら何が起るのだろうか.
多くの場合は計算は常に動作するように見えるが,パフォーマンスを分析してみると,それが実際にはあるべき速度では評価されていないことが分かる.
これが正常に動作しているように見える理由は,未知の関数m2は並列カーネルでは評価されず,式 m2[10000],m2[10001],…は送り返されて,定義が既知であるマスターカーネルで評価されるからである.