バタイユゲーム支援ツール強化版のmultiprocessing検討

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

1.基本的な考え方
  前回の高速化検討で使ったテスト用EXCELシートを名前を変えて2つ使う。
  pythonプログラムから2つのEXCELシートをmultiprocessingを使って動かす。
  但し、各々のEXCELシートの処理回数は半分にする。
  →前回の12回の処理を6回ずつ分けて行う。

2.pythonプログラム
  下図のようにして計測すると1.553秒となる。
  単純に12回処理した場合の0.416秒よりも1秒以上も遅くなる。

  なお、Windows+JupyterLabではmultiprocessingがそのまま動かないので(4項を参照)、
  下図の処理をpythonファイル(func_mp3,py)で登録しておいて、JupterLabでは
  上図のように呼び出す必要がある。

3.参考資料
  下記のWEBページにお世話になりました。ありがとうございます。
 ・Pythonのthreadingとmultiprocessingを完全理解
 ・【python】Jupyter-notebook + pandas + multiprocessing(Pool)を動かす方法

4.その他
  multiprocessingがそのまま動かない例。
  JupyterLabで下記の処理を動かしてもrdicexの処理がスルーされる。

<個人的な感想>
multiprocessingはthreadingよりもオーバーヘッドが大きいとの事であるが、
処理時間が予想以上に長くなるので見送る事にする。
メモリが独立しているので排他制御を考えなくてもよいはずが、結果の中に
Noneが含まれており何か不具合がありそうである。

色々な検討をしたが、結局は単純に処理したほうが早いと判断する。
12ケ程度の繰り返し処理は面倒な方法を取ると逆効果になると思う。