1

私はGoogleのApp EngineとGoogleのCompute Engineのを使用して、次のように実行したいCPU-重いシミュレーションタスクを持っている:CPU負荷の高いタスクをGoogle App EngineからGoogle Compute Engine VMインスタンスにプッシュするにはどうすればよいですか?

  1. シミュレーションタスクデータは、Google App Engineの、例えばを通じて提出されました API呼び出しを実行する/ runimulation?param1 = ... param2 = ...
  2. GAEサーブレット内で、シミュレーションタスクが設定され、その計算要件が決定されます。つまり、必要な計算エンジンマシンの種類
  3. GAEのサーブレットは、GAEのサーブレットは何とかVMインスタンスが終了したときにGAEのサーブレットが通知され
  4. を処理しているVM インスタンスにシミュレーションタスクを転送し、必要なVMインスタンスに
  5. を開始します。理想的には、シミュレーション中に進行状況の更新を受け取り、ユーザーに表示することもできます。
  6. 最後に、GAEサーブレットは、VMインスタンスからシミュレーション結果を受け取り、それをユーザーに渡します。その後、VMインスタンスがシャットダウンされます。

私は4と5で自分の困難を抱えています。計算タスクをGAEサーブレットからCompute Engine VMインスタンスに「プッシュ」する方法を教えてください。その後、GAEとVMインスタンスはどのように通信できますか?

(私はGAEで経験していますが、私はCompute Engineのに全く新しいですし、完全に私のような問題にCompute Engineのアプローチを把握する私の難しさを持っている)事前に

ありがとう!

+0

あなたは何を達成しようとしていますか?お金を貯める? –

+0

@AndreiVolgin私が望むのは、Google Cloud Infrastructureで動的に構築されたCPUが重く、並列化可能なシミュレーションを実行できることだけです。 GAEは、これらのシミュレーションを処理する能力がありません。なぜなら、GAEの1時間制限を超えることができ、実現可能な時間内にマルチコアを完了する必要があるからです。 – nkxandroid

+0

GAE上のタスクは24時間実行できますが、GCE上で実行することはコスト効率が高いでしょう。 –

答えて

1

あなただけの一つのタスクを実行するためにインスタンスをスピンアップしたい場合、最も簡単な、おそらく説明したように起動スクリプトの形式でタスクを提供することでhere

の状態を折り返し報告できGCEインスタンスGAEにhttpリクエストを発行することによって動作します。

また、sub/pubを使用してGAEとGCEの間で通信することもできます。その場合、ユーザーが進行中のページを表示しているブラウザを開いていると仮定し、このページでGAEを更新すると仮定しない限り、cron job on GAEを設定して、完了したタスクを確認し、それに従って処理する必要があります。

関連する問題