我有一個函數使用Python多處理池的功能
def dist_to_center(ra_center,dec_center):
# finding theta
cos_ra = np.cos(ra_center-var1['ra'])
cos_dec = np.cos(dec_center-var1['dec'])
sin_dec = np.sin(dec_center)*np.sin(var1['dec'])
theta = np.arccos((cos_ra*cos_dec)+sin_dec*(1-cos_ra))
numerator = theta*comoving_dist
denominator = 1+var1['zcosmo']
# THE FINAL CALCULATED DISTANCE TO CENTRE
dist_to_center = (numerator/denominator)
return dist_to_center
我想利用我的處理器,所以我用multiprocess pool
這樣的:
if __name__ == '__main__':
pool = Pool(processes=6)
pool.map(dist_to_center, ra_center, dec_center) #calling the function with it's inputs
pool.close()
pool.join()
的代碼似乎是正確和正在工作,但只有一個處理器正在運行,而不是已調用的6個處理器。我在這裏做錯了什麼?
什麼是'ra_center.shape'和'dec_center.shape'? – 2014-10-09 11:57:30
它們的值都是相同的,例如443726 – user3397243 2014-10-09 11:58:36
你說'ra_center'和'dec_center'是你調用'pool.map()'時的一維數組嗎? – 2014-10-09 12:01:27