Mathematica

Mathematicaで並列計算をしてみなきゃ

  • POST
マルチコアが流行ってる昨今、これを知らないと損するぜ。 Mahematicaが気を効かせてやってくれればいいものを、自分でやらなくちゃいけない。 Parallel Computing Toolsユーザガイドに詳しく書いてある。 ちょっと説明してみる。 シングルコアのパソコンを使っている人は関係ない。Mathematicaを開いて「評価」 > 「並列カーネルの状態…」選んでカーネルが複数個あったら並列計算ができる。 並列計算をするにはParallelizeとかを使うとよい。関数の一覧が並列計算に載っている。 基本的に並列計算できるのは配列を弄る計算。 計算がどれくらい早くなったかを確認するには、普通の計算はTImingで囲むことによって時間を測ることができる。、並列計算の時間を確認するには「並列カーネルの状態」を開いて計算すればよい。 あまりにも単純な計算は並列計算しない方が早いようだ。 注意しなくてはいけないのは、自分で定義した変数や関数を並列計算に使う場合はDistributeDefinitionsを使ってカーネル全体にその定義を知らせなくてはならない。また、パーケージもロードする場合もNeedsとParallelNeedsを使ってマスターカーネルととリモートカーネルにロードする必要がある[リモート定義]。 Good luck!