Pythonのmultiprocessingを使ってオセロの分散並列処理をやってみました。 サーバのキューに登録されるタスクをクライアントが黙々と計算して結果を返します。 構成はこんな感じです。 server.py タスク配布用と結果受け取り用のキューを持っているサーバ。 Othello.py オセロの探索を行うクラス。 game.py Othelloのサブクラス。オセロの探索対象の局面をサーバのキューに登録するクラス。 client.py Othelloのサブクラス。キューに入ったタスクを探索して、評価値を返すクラス。 game_launcher.py ユーザからの入力を受け取ってgameに初期条件等を与える。 使い方は サーバでserver.pyを立ち上げる クライアントでclient.pyを立ち上げる クライアントorサーバでgame_launcher.pyを立ち上げる あとはプロン
multiprocessingモジュール multiprocessingモジュールは、Python2系列では2.6以降、3系列では3.0以降に標準となったモジュールです。このモジュールはthreadingモジュールに似たAPIでプロセス間通信などの機能を提供します。このモジュールにより、GILの問題を回避することができ、複数のCPUやCPUコアの性能を生かすことができます。また、このモジュールはローカルのみならず、リモートでのプロセス間通信も行うことが可能で、簡単に分散処理などを実装することができます。 まず、GIL(Global Interpreter Lock)とはPythonのインタプリタ上で一度に1つのスレッドだけが動作するよう保証するためのロックです。このロックによって、同時に同じメモリにアクセスするスレッドが存在しないことを保証します。 しかしながら、このロックによって、一度に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く