バタイユゲーム支援ツール強化版の並列化は難しい(1)

バタイユゲーム支援ツール強化版の並列化を検討してみた。
結論から言うと難しい。
後の為に、試した事を以下にメモしておく。

1.背景
  バタイユゲーム支援ツール強化版はpythonプログラムからEXCELシートを
  アクセスしてマクロを起動させて結果を取り込んでいる。
  これを複数回(ユニットの数)繰り返している。
  そこで、この複数回の処理を並列化できないか検討した。

2.テストプログラム
  バタイユゲーム支援ツール強化版を使うよりも簡単なプログラムで
  並列化が可能か試してみる。
  EXCELシートは下図を使った。B5セルにpythonプログラムから賽の数を設定し、
  マクロ(賽の目表示のBoxからリンクしているもの)を動かす。
  結果はB7からB12までに表示される。

3.pythonプログラム
(1)並列化前
   下図[6]のようにfor文で関数rdiceを複数回呼んで結果を取り込む。

(2)並列化後
   下図[7]のように並列化を試みてもエラーになる。
   原因は関数rdiceの中でEXCELをアクセスしてマクロを起動している為と思われる。


   python内の処理であれば、下図[8][9]のように問題なく処理できる。
   上記[7]と下記[9]の違いは呼んでいる関数の違いのみである。

4.参考文献
  下記のWEBページにお世話になりました。ありがとうございます。
 ・Python並列処理(multiprocessingとJoblib)
 ・Python: Joblibで並列処理プログラミング

次回へ続く

<個人的な感想>
pythonからライブラリを介してEXCELを制御している場合には、
並列化ができそうにない。
EXCELとの連携を並列化するのは無理かもしれない。