次のプロトタイプで関数を呼び出すプログラムを作成しました。
def Process(n):
# the function uses data that is stored as binary files on the hard drive and
# -- based on the value of 'n' -- scans it using functions from numpy & cython.
# the function creates new binary files and saves the results of the scan in them.
#
# I optimized the running time of the function as much as I could using numpy &
# cython, and at present it takes about 4hrs to complete one function run on
# a typical winXP desktop (three years old machine, 2GB memory etc).
私の目標は、この関数を正確に 10,000 回 (「n」の 10,000 の異なる値に対して) 最速かつ最も経済的な方法で実行することです。これらの実行に続いて、個々のすべてのスキャンの結果を含む 10,000 の異なるバイナリ ファイルが作成されます。すべての関数「実行」は独立していることに注意してください (つまり、個々の実行の間に依存関係はまったくありません)。
質問はこれです。自宅に PC が 1 台しかない場合、自宅ですべての実行を完了するには約 4.5 年 (10,000 回の実行 x 実行あたり 4 時間 = 40,000 時間 ~= 4.5 年) かかることは明らかです。それでも、すべての実行を 1 ~ 2 週間以内に完了させたいと考えています。
ソリューションには、一度に多くのコンピューティング リソースにアクセスすることが含まれることを私は知っています。そのための最良の(予算が限られているため、最速/最も手頃な価格の)方法は何ですか?強力なサーバーを購入する必要がありますか (費用はいくらですか?)、それともオンラインで実行できますか? そのような場合、そうすることで私の独自のコードが公開されますか?
それが役立つ場合、「Process()」のすべてのインスタンスは約 500MB のメモリしか必要としません。ありがとう。