Googleのアプリケーションエンジンで動作するコードに問題があります。 GAEに合わせてコードを修正する方法はわかりません。以下は、私の問題Google App Engineで実行するメモリと計算集約型のプログラムの設計方法
for j in range(n):
for d in range(j):
for d1 in range(d):
for d2 in range(d1):
# block which runs in O(n^2)
を効率的に全体のコードブロックは、O(N^6)であり、それはNに依存以上10分間実行されています。したがって私はタスクキューを使用しています。また、nxnxnxnのリスト(例えば、A [j] [d] [d1] [d2])として格納されている4次元配列が必要になるでしょう。
制限put()は10 MBですが、配列全体を格納することはできません。だから私は小さな塊にチョッピングし、それを保存し、それらを組み合わせて取得するときに試みました。私はこれにjson関数を使用しましたが、大きなn(> 40)のサポートはありません。
次に、データストア、すなわち各A [j] [d] [d1]エンティティのリストの個々のエンティティとして行列全体を格納しました。したがって、ローカル変数はありません。私のコードでA [j] [d] [d1] [d2]にアクセスすると、自分自身の関数getitemとputitemを呼び出してデータストアからデータを取得し、キャッシングを使用します。その結果、私のコードは計算に時間がかかります。いくつかの反復の後、私はGAEによって生成されたエラー203を取得し、タスクはコード500で失敗します。
私のコードはGAEには最適ではないかもしれません。しかし、それをGAEに実装する最良の方法は何ですか?
:なぜ人々は、問題のどこかに「PLSのに役立つ」置くことを主張するのですか?それは答えを得るチャンスを増やすことはありません!おそらく実際には減少しています.... –
は正直さを試みることができます。特に英語が明らかに母国語でないときに、丁寧にしようとしたことを誰かに知らせるのは公正ではないようです。 –