0

以前に MPI (および Fortran :)) を介して並列計算を使用したことがあります。IPython の並列機能を使用したいと思います。

私の質問は、 http://ipython.org/ipython-doc/dev/parallel/asyncresult.htmlに触発された、次のコードのパフォーマンスの低下に関連しています。

from IPython.parallel import Client
import numpy as np

_procs = Client()
print 'engines #', len(_procs)
dv = _procs.direct_view()

X = np.linspace(0,100)

add = lambda a,b: a+b
sq = lambda x: x*x

%timeit reduce(add, map(sq, X))
%timeit reduce(add, dv.map(sq, X))

1 つのプロセッサの結果は次のとおりです。

10000 loops, best of 3: 43 µs per loop
100 loops, best of 3: 4.77 ms per loop

結果が正常に見えるかどうか教えていただけますか? もしそうなら、なぜ計算時間にこれほど大きな違いがあるのでしょうか?

よろしく、フラビエン。

4

1 に答える 1