我对使用python进行复杂的编码非常陌生,但我想提高自己的代码以使其性能更好,更快。为此,我遇到了我尝试实现的“多重处理”,但是没有。
我有一个过程,要求我运行多个循环,这要花很多时间,例如一年仅需要160个小时(我有16年的计算时间)。我想利用服务器上的多个内核并更快地计算过程(现在我只使用一个内核,而我的服务器只有48个)。
下面是代码:
# My dataset
deficit_all.shape
Out: (5844, 400, 1440)
max_deficit_annual = np.zeros((16,400,1440))
int_year = 0
for year in tqdm(range(2000,2016)):
for lat in tqdm(range(400)):
for long in tqdm(range(1440)):
if year%4 == 0:
cummul_deficit = np.zeros(366)
for i in tqdm(range(366)):
cummul_deficit[i] = deficit_all[i+int_year,lat,long] + cummul_deficit[i-1]
if cummul_deficit[i] < 0:
cummul_deficit[i] = 0
else:
continue
#####print(np.nanmax(cummul_deficit))
max_deficit_annual[year-2000,lat,long] = np.nanmax(cummul_deficit)
else:
cummul_deficit = np.zeros(365)
for i in tqdm(range(365)):
cummul_deficit[i] = deficit_all[i+int_year,lat,long] + cummul_deficit[i-1]
if cummul_deficit[i] < 0:
cummul_deficit[i] = 0
else:
continue
######print(np.nanmax(cummul_deficit))
max_deficit_annual[year-2000,lat,long] = np.nanmax(cummul_deficit)
sleep(1)
if year%4 == 0:
int_year += 366
else:
int_year += 365
我的代码可以使用多处理吗?或任何其他并行计算选项?