Python(Spark)でのMIDACOの並列化

MIDACO 6.0 Python Spark ゲートウェイ

midaco.py ▼
上記ゲートウェイは複数のソリューション候補を並行して実行するため、
マルチプロセッシングの代わりにSparkを使用します。

Apache SparkによるMIDACOの並列化は
Amazon EC2Google CloudIBM CloudDigital Ocean等の
クラウドコンピューティングシステムや多くの学術機関が提供する
個別の仮想マシン(VM)からなるクラスタシステムでの(大規模な)並列化で特に有用です。

Sparkクラスタのセットアップ(Linux) 
ステップ 0.1複数の仮想マシン(VM)をセットアップします。それぞれのVMには独自のIPアドレスがあります。
例)- IP-VM1 = 100.100.10.01、- IP-VM2 = 100.100.10.02、- IP-VM3 = 100.100.10.03。
各VMがSSHキーを使って相互にアクセスできるようにします。 
ステップ 0.2Sparkをダウンロードします。https://spark.apache.org/downloads.html
例)spark-2.3.0-bin-hadoop2.7.tgz  (Apache Hadoop用に事前構築されたもの)
ステップ 0.3解凍したSparkフォルダのコピーを各VMに保存します。
名前はたとえば「spark」とします。
ステップ 0.41台のVM(たとえば100.100.10.01)をマスターノードとして選択し、以下のコマンドを実行します。
./spark/sbin/start-master.sh --host 100.100.10.01
ステップ 0.5他の各VMをスレーブノードとして選択し、以下のコマンドを実行します。
./spark/sbin/start-slave.sh spark://100.100.10.01:7077
ステップ 0.6これで Spark クラスタが起動し、実行されます。
ブラウザでアドレス 「
100.100.10.01:8080
」を開くと、このような画面▶が表示されるはずです。 
クラスタ上でのMIDACOの実行 
ステップ 1MIDACO python sparkゲートウェイ▼をダウンロードします。
ステップ 2適切なライブラリファイル midacopy.dll または midacopy.soこちらからダウンロード▷します。
ステップ 3サンプル(たとえば「example.py ▶」)をダウンロードします。
ステップ 4以下のようなコマンドによりSparkクラスタ上でMIDACOを実行します。
./spark/bin/spark-submit --master spark://100.100.10.01:7077 example.py
注:高度なText-I/Oのサンプル▷は、Sparkでの使用に特に適しています。 

32コアのクアッドコアCPUを備えるSparkクラスター上で動作する
MIDACOのスクリーンショット▶

MIDACO−Spark用の詳しい手順ガイドは【作成中】です

以下は36台のマシンからなるSparkクラスタ用の予備的なbashスクリプトです。

spark_setup_commands.sh ▼

run_example_on_spark.sh ▼

注:midaco.py▼自体に含まれるSpark関連コマンドはわずかしかありません。

[Line  24]   from pyspark import SparkContext
[Line 237]  sc = SparkContext(appName="MIDACO-SPARK-PARALLEL")
[Line 254]  rdd = sc.parallelize( A , p ).map(lambda x: problem_function(x))
[Line 256]  B = rdd.take(p)