Я пытаюсь использовать следующий код Python (который использует мультипроцессорную библиотеку):
import multiprocessing as mp
def MAIN_LOOP(lll):
global aa
global bb
aa, bb = 0,0
if paramo == 3:
C_ij = np.zeros((len(zrange), len(zrange)))
C_ij_up = np.zeros((len(zrange), len(zrange)))
C_ij_dw = np.zeros((len(zrange), len(zrange)))
while aa < len(zrange):
while bb <= aa:
if paramo == 3:
C_ij[aa][bb] = Pobs_C(zpm, zrange[aa], zrange[bb], h[2], Omega_m[2], Omega_DE[2], w0[2], wa[2], E_tab, R_tab, DG_tab, W_tab, l[lll], P_dd_C, R_tab(z_pk))
C_ij_up[aa][bb] = Pobs_C(zpm, zrange[aa], zrange[bb], h[0], Omega_m[0], Omega_DE[0], w0[0], wa[0], E_tab_up, R_tab_up, DG_tab_up, W_tab_up, l[lll], P_dd_C_up, R_tab_up(z_pk))
C_ij_dw[aa][bb] = Pobs_C(zpm, zrange[aa], zrange[bb], h[3], Omega_m[3], Omega_DE[3], w0[3], wa[3], E_tab_dw, R_tab_dw, DG_tab_dw, W_tab_dw, l[lll], P_dd_C_dw, R_tab_dw(z_pk))
if aa != bb:
if paramo == 3:
C_ij[bb][aa] = C_ij[aa][bb]
C_ij_up[bb][aa] = C_ij_up[aa][bb]
C_ij_dw[bb][aa] = C_ij_dw[aa][bb]
bb=bb+1
bb=0
aa=aa+1
if paramo == 3:
aa, bb = 0,0
outF=open(CC_path[2]+"/COVAR_fid_"+str(l[lll]),'w')
while aa < len(C_ij):
while bb < len(C_ij):
outF.write(str("%.16e" % C_ij[aa][bb]))
outF.write(str(' '))
bb=bb+1
outF.write(str('\n'))
bb=0
aa=aa+1
outF.close()
aa, bb = 0,0
outU=open(CC_path[0]+"/COVAR_up_"+str(l[lll]),'w')
outD=open(CC_path[3]+"/COVAR_dw_"+str(l[lll]),'w')
while aa < len(C_ij_up):
while bb < len(C_ij_up):
outU.write(str("%.16e" % C_ij_up[aa][bb]))
outU.write(str(' '))
outD.write(str("%.16e" % C_ij_dw[aa][bb]))
outD.write(str(' '))
bb=bb+1
outU.write(str('\n'))
outD.write(str('\n'))
bb=0
aa=aa+1
outU.close()
outD.close()
lll=lll+1
lll = range(len(l))
if __name__ == '__main__':
pool = mp.Pool(12)
pool.map(MAIN_LOOP, lll)
pool.close()
pool.join()
Но при выполнении я получаю следующую ошибку:
Traceback (most recent call last):
File "Photo_SAF_flat.py", line 412, in <module>
pool.map(MAIN_LOOP, lll)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 253, in map
return self.map_async(func, iterable, chunksize).get()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 572, in get
raise self._value
ValueError: `x` must contain at least 2 elements.
Iпытался использовать генератор с yield, но все равно получаю ту же ошибку.
Я хотел бы заставить эту часть кода работать.Если бы у кого-то была идея или совет, это было бы хорошо, чтобы сказать это.
С уважением