Python計算クラスター
-
05-07-2019 - |
質問
telnetサーバーを作成し、コマンドと出力をtelnetでやり取りすることにより、pythonクラスターを作成することは可能でしょうか?誰かがPythonコンピューティングクラスターのより良いアイデアを持っていますか? PS。できればpython 3.xの場合は、誰かが方法を知っているなら。
解決
Python wikiは、 Pythonクラスターコンピューティングライブラリとツールの非常に包括的なリストをホストしています。特に興味があるのは Parallel Python です。
編集:クラスタリングが特に得意な新しいライブラリがあります: execnet 。小さくてシンプルです。そして、たとえば標準の multiprocessing
モジュールよりもバグが少ないようです。
他のヒント
にリストされているPython 3で利用可能なサードパーティパッケージのほとんどを見ることができます。ここ;クラスター計算に関連するのは mpi4py です。pyroなどの他のほとんどの分散コンピューティングツールはまだPython-2のみですが、MPIはクラスター分散計算の主要な標準であり、よく検討しています(Python 3でmpi4pyを直接使用した経験はありませんが、聞いたところ、それは良い実装だと思います)。
主な代替手段は、Python独自の組み込みのマルチプロセッシング。MPI標準を尊重しているがPythonでコーディングされていない既存のノードとのインターフェースに関心がない場合にも、かなりうまくスケールアップします。
自分で転がすことには本当の付加価値はありません(Atwoodが言うように、車輪をよりよく理解することを目的としない限り、車輪を再発明しないでください!-)-しっかりした、テスト済みの、広く普及しているソリューションの1つを使用してください、既にテスト、デバッグ、最適化されています!-)
これらをご覧ください
http://www.parallelpython.com/
両方を使用しましたが、両方とも分散コンピューティングに優れています
オプションのより詳細なリストについては、
http://wiki.python.org/moin/ParallelProcessing
また、リモートマシンで何かを自動実行する場合は、 http:// pydshのように、telnetの代わりにsshを使用することをお勧めします.sourceforge.net /
どのようなことをしたいですか? hadoop をチェックアウトすることをお勧めします。バックエンドの面倒な作業はJavaで行われますが、Pythonインターフェースを備えているため、Pythonスクリプトを作成して入力を作成および送信し、結果を処理できます。
管理スクリプトを記述する必要がある場合は、 ClusterShell Pythonライブラリもご覧ください。並列シェル clush 。ノードセット( man nodeset )も扱う場合に便利です。
IPython.parallel が方法だと思います。私は昨年一年半にわたってそれを広く使用してきました。これにより、必要な数のワーカーノードをインタラクティブに操作できます。 AWSを使用している場合、 StarCluster は、IPython.parallelをすばやく簡単に起動して実行するための優れた方法です。できるだけ多くのEC2ノードを使用します。 (必要に応じて、Hadoopやその他のさまざまな便利なツールを自動的にインストールすることもできます。)これを使用するには、いくつかのコツがあります。 (たとえば、IPython.parallelインターフェース自体を介して大量のデータを送信する必要はありません。各エンジンのデータのチャンクを個別にプルするスクリプトを配布する方がよいです。)しかし、全体的には、分散処理を行うための非常に簡単な方法である(Hadoopよりも WAY 優れている!)
" Pythonクラスターを作成できますか?
はい。
はい/いいえの質問が大好きです。他に知りたいことはありますか?
(Python 3にはまだサードパーティのライブラリがほとんどないことに注意してください。そのため、現時点ではPython 2を使い続けることができます。)