Parallel Python を使うと Python から簡単にジョブ並列(タスク並列)を行うことができる。以下のような環境で使用することができる。Linux マシン(クラスタ)で試したみたところ、確かに簡単に出来た。
1: SMP(マルチコアも含む)のマシンで並列計算
2: クラスタ計算機上での並列計算 (1も含む)
Parallel Python をダウンロードページから入手して、展開した後に python setup.py install とすればインストールは終わり(管理者権限のユーザで行う必要あり)。サンプルファイルとして配布されている sum_primes.py を用いてみよう。
1 の場合:
python sum_primes.py [ncpus] とすれば良い。[ncpus] は同時に使用する CPU(コア) の数。
1CPU : 5.731s
2CPU : 3.012s
4CPU : 1.628s
8CPU : 1.078s
2 の場合:
実行したいノード上で ./ppserver.py とサーバプロセスを起動する。その後でソースファイルの ppservers=("node-1", "node-2", "node-3") の部分を変更する。
これらのサンプルを見れば、実装方法は簡単に理解できる。Ninf と同じようにタスク並列を行うことができるが、こちらの方が簡単。
1: SMP(マルチコアも含む)のマシンで並列計算
2: クラスタ計算機上での並列計算 (1も含む)
Parallel Python をダウンロードページから入手して、展開した後に python setup.py install とすればインストールは終わり(管理者権限のユーザで行う必要あり)。サンプルファイルとして配布されている sum_primes.py を用いてみよう。
1 の場合:
python sum_primes.py [ncpus] とすれば良い。[ncpus] は同時に使用する CPU(コア) の数。
1CPU : 5.731s
2CPU : 3.012s
4CPU : 1.628s
8CPU : 1.078s
2 の場合:
実行したいノード上で ./ppserver.py とサーバプロセスを起動する。その後でソースファイルの ppservers=("node-1", "node-2", "node-3") の部分を変更する。
これらのサンプルを見れば、実装方法は簡単に理解できる。Ninf と同じようにタスク並列を行うことができるが、こちらの方が簡単。