小编Sim*_*ori的帖子

为什么 python 函数不应该并行工作却可以并行工作?

我正在使用healpy包运行此代码。我没有使用多处理,我需要它在单核上运行。它运行了一段时间,但是,当我现在运行它时,该函数healpy.projector.GnomonicProj.projmap会占用所有可用的内核。

这是有罪的代码块:

def Stacking () :

    f = lambda x,y,z: pixelfunc.vec2pix(xsize,x,y,z,nest=False)
    map_array = pixelfunc.ma_to_array(data)
    im = np.zeros((xsize, xsize))
    plt.figure()

    for i in range (nvoids) :
        sys.stdout.write("\r" + str(i+1) + "/" + str(nvoids))
        sys.stdout.flush()
        proj = hp.projector.GnomonicProj(rot=[rav[i],decv[i]], xsize=xsize, reso=2*nRad*rad_deg[i]*60/(xsize))
        im += proj.projmap(map_array, f)

    im/=nvoids
    plt.imshow(im)
    plt.colorbar()
    plt.title(title + " (Map)")
    plt.savefig("../Plots/stackedMap_"+name+".png")

    return im
Run Code Online (Sandbox Code Playgroud)

有人知道为什么这个函数是并行运行的吗?最重要的是,有人知道如何在单核中运行它吗?

谢谢你!

python multithreading multicore multiprocessing healpy

6
推荐指数
1
解决办法
158
查看次数