Я очень плохо знаком со сложным кодированием на 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
Возможно ли для моего кода использовать многопроцессорность? или любой другой вариант параллельных вычислений?