4

入力として整数を取り、しばらく (たとえば 1 時間) 実行してから、テキスト ファイルを返す単純な純粋な C プログラムがあります。1 から 1000 までの整数を入力して、このプログラムを 1000 回実行したいと考えています。

現在、このプログラムを並行して (4 プロセッサ) 実行していますが、これには 250 時間かかります。このプログラムは、AWS マイクロ インスタンスに適合するようなものです (私はテスト済みです)。AWS で 1000 個のマイクロ インスタンスを使用して、すべての作業を 1 時間で行うことは可能でしょうか? (インスタンスあたり ~20 ドル - 0.02 ドルのコストで)?

可能であれば、それを行う方法に関するガイドラインはありますか? そうでない場合、誰かがそれに代わる低予算の代替手段を持っていますか?

どうもありがとう!

4

3 に答える 3

1

これを達成するには、次のことを行う必要があります。

  • ブートストラップ スクリプト、アプリケーション、入力データ、出力データを保存する S3 バケットを作成する

  • カスタムの軽量 AMI: ブートストラップ スクリプトのダウンロードを認識しているカスタムの軽量 AMI を作成することができます。

  • ブートストラップ スクリプト: S3 バケットからソフトウェアをダウンロードし、整数 [1..1000] を含むカスタム インスタンス タグを解析し、追加データをダウンロードします。

  • あなたのアプリケーション: 処理を行います。

  • 処理終了スクリプトは、結果を別の結果 S3 バケットにアップロードし、インスタンスを終了します。処理終了ステータスを伝えるためにSNS 通知を送信することもできます。

  • 結果の統合が必要な場合は、別のインスタンスを作成してコーディネーターとして使用し、処理を終了するためにすべての「処理の終了」通知を待機することができます。この場合、Amazon の Hadoop マップ削減エンジンを将来的に使用することを検討してください。これは、この面倒な作業のほとんどすべてを無料で行うためです。

于 2012-08-29T12:03:12.780 に答える
0

これを行う言語を指定していませんでした。プログラムの展開に使用するアプリは同じ言語である必要はないため、C# をお勧めします。SDK を使用して新しい Amazon インスタンスをプログラムで生成する方法については、ウェブ上に多数の例があります。例えば:

.NET でプログラムによって Amazon EC2 インスタンスを開始する方法

プログラムが既に存在する状態で独自の AMI を作成することはできますが、AMI 全体を再作成する必要があるため、プログラムを調整する場合は面倒になる可能性があります。追加のインスタンスを作成するか、パブリック URL からアクセスできる場所でプログラムをホストすることをお勧めします。次に、特定のインスタンスに必要なコマンド ライン パラメーターとともに、アプリをダウンロードする URL を指定できるようにするために、事前に AMI にインストールされる何らかのサービスを作成します。

お役に立てれば。

于 2012-08-28T15:55:09.063 に答える
0

デフォルトでは、ゾーンごとに 20 個のインスタンスしかスポーンできないことに注意してください。より多くのインスタンスを使用するには、Amazon に問い合わせる必要があります。

低コストで遅延を気にしない場合は、スポット インスタンスを使用する必要があります。

于 2012-08-30T12:22:11.463 に答える