F2py与多重加工异常加速

时间:2014-09-26 11:49:49

标签: python fortran multiprocessing f2py

我有一个python前端和一个fortran后端,使用F2py为fortran函数调用python包装函数“gBulk_kZ”。 我正在比较两种方法的时间。第一个是多处理,第二个是使用map函数。仅通过一个处理器运行多处理可以提高x100的速度。如果我将处理器选项留空,那么它将在大约14.0ms内运行。 在我只使用一个处理器的情况下,为什么多处理比映射要快得多?

方法1:时间= 6.9ms

pool = multiprocessing.Pool(1)
g = partial(gBulk_kZ,m,n,s_lat)
glist = pool.map(g,Elist)
pool.close()
pool.join()

方法2:时间= 690.4ms

g = partial(gBulk_kZ,m,n,s_lat)
glist = map(g,Elist)

然后他们都以同样的方式写出来。

1 个答案:

答案 0 :(得分:0)

我现在可以回答我自己的问题了。 我正在使用time.clock()来测量时间。 由于某种原因,这不起作用。 time.time()给出了预期的答案。 我的坏。