1

私は、dispy と並列実行で動作するプログラムを使用しています。dispy を使用してタスクを作成し、それを別の CPU に分散して実行しています。

私は標準ライブラリを持っており、ライブラリ (データと接続) を開発しました。

コードは次のようになります。

import dispy
import sys
import data
import connection

def compute(num):
    #some code that call data and connection methods, and generate a solution
    return solution

def main():
    cluster = dispy.JobCluster(compute)
    jobs = []

    for i in range(10)
        job = cluster.submit(i)
        job.id = i # optionally associate an ID to job (if needed later)
        jobs.append(job)

    for job in jobs:
        job()
        print "Result = " + str(job.result)
        print "Exception = " + str(job.exception)

if __name__ == "__main__":
    main() 

`

問題は、メインの定義でデータと接続を操作する場合、それがすべて正常に機能する場合、また dispy ライブラリを使用する代わりに関数として計算を呼び出す場合に必要なことです。しかし、私がそのように作業し、計算手順でデータ関数を呼び出すと、データが定義されていないという例外がスローされ、例外なしが出力されます。

何か助けはありますか?ドキュメントはセットアップの使用を示唆していますが、それがどのように機能するかわかりません。

4

3 に答える 3

0

呼び出しimport dataを計算関数内に配置します。

Dispy は、呼び出す関数とその引数を新しいプロセスに送信します。新しいプロセスにはデータがインポートされていません。import dataそのため、関数定義内に追加するとこれが修正されるはずです。

于 2016-05-29T16:36:06.510 に答える