4

私は現在、研究者が50ノードクラスタで4ヶ月かかると科学計算プロジェクト(確率的なトラクトグラフィー手法described here)が実行されていると聞いて、他のオプションを調べる。プロジェクトは現在、並列Pythonを使用して4Dアレイのチャンクをさまざまなクラスタノードに配信し、処理されたチャンクをまとめて戻します。パラレルPythonコードをクラウドに移動する

私が現在取り組んでいる仕事は、あまりにも粗すぎる(5秒から10分、並列のPythonでタイムアウトのデフォルトを大きくしなければならなかった)のですが、私はプロセスを2-4倍高速化できると推測していますデータを再利用することで、リソースをより有効に活用することができます(データの分割と復元は時間がかかりますが、並列化する必要もあります)。ほとんどの場合、numpy配列で行われます。

2〜4回では不十分だとしましょう。ローカルのハードウェアからコードを取り除くことにします。このような高スループットコンピューティングのために、私の商用オプションは何ですか?また、コードをどのように変更する必要がありますか?

+0

または、暗黙のうちに、誰が既にこの情報を書き留めていますか、どのように入手できますか。 – Thomas

答えて

1

Amazon EC2とRackspace Cloudが最も目立つ商用オプションです。私は両方とも試してみましたが、Rackspace APIが少し使いやすくなっています。

ごくわずかな投資(通常は$ US0.10/hr程度)で、コンピューティングインスタンス(選択したOSの短期間または長寿命の仮想マシン)で試作して遊ぶことをお勧めします。必要に応じてそれらを作成し、完了したらそれらをクラウドに戻し、使用するものにのみ支払います。たとえば、Rackspaceの6つのインスタンスを使用したDjangoデモのデモを見ましたが、これはおそらく1時間かかり、1ドル以下のスピーカーに要しました。

「ハイスループット」の意味を明確にしているわけではありませんが、あなたの予算やコンピューティングのニーズ、ネットワークのスループットを考慮する必要があります。 。小規模なテストやシンプルなスプレッドシート計算では、実用的かどうかを教えてください。

Rackspace CloudとAmazon EC2の両方にPython APIがあります。どちらを使用する場合でも、インスタンスの自動デプロイメントとコンフィグレーションのためのPythonベースのFabricをお勧めします。

+0

"ハイスループット"とは、私がここで一度見た定義を意味します - http://www.cs.wisc.edu/condor/htc.html低レイテンシは必要ありません。今月と来月ではない限り、行われます。 – Thomas

+0

あなたが帯域幅を必要としているかどうかは確かではありませんでしたが、その場合は予算/計画に影響します。もう一つの潜在的な懸案事項は、あなたが予約できるインスタンスの最大数であり、時々刻々と変化します。プロバイダのFAQをチェックしたいと思うでしょう。 – JohnJ

+0

Amazonのスポットインスタンスはきれいに見えますが、おそらく私が探しているものですが、私は "opportunistic code"を書く必要があります。 – Thomas

6

PiCloudに興味があります。私はそれを一度も使ったことはありませんが、その提供には明らかに標準科学ライブラリをカバーするEnthought Python Distributionが含まれています。

これはあなたの特定のケースではうまくいくが、Parallel Pythonインターフェイスはかなり一般的だと言うのは難しい。だからあまりにも多くの変更が必要ではないことを願っています。カスタムスケジューラクラス(PPと同じインターフェイスを実装する)を記述することさえできます。実際、それは多くの人にとって役に立つかもしれないので、多分あなたはPPフォーラムでいくつかのサポートをドラムアップすることができます。

関連する問題