У меня проблема с памятью, когда я пытаюсь запустить следующую проблему.
Рассмотрим функцию, которая для каждого аргумента, arg_i_j, возвращает кадр данных pandas как,
def some_fun(arg_i_j):
...
return DF_i_j
Теперь я структурировал все аргументы, которые я хочу проверить, в следующем формате,
All_lists = [ [arg_0_0,..., arg_0_N], ..., [arg_k_0,..., arg_k_N]],
, и я пытаюсь выполнить следующий код в основной функции
# Version A
results_per_list = []
the_pool = multiprocessing.Pool(processes=mp.cpu_count(), initializer=...,initargs=...)
for a_list in All_lists:
results = the_pool.map(some_fun, a_list)
results_per_list.append(results)
the_pool.close()
the_pool.join()
# then use results_per_list to do operations
и я получаю сообщение об ошибке:
...\multiprocessing\connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
MemoryError
1) Кто-нибудь знает, как мне решить эту проблему ??
2) Вы видите какие-либо проблемы при создании пула?"объект для каждого" a_list "в" All_lists ", как показано ниже?
# Version B
results_per_list = []
for a_list in All_lists:
the_pool = multiprocessing.Pool(processes=mp.cpu_count(), initializer=...,initargs=...)
results = the_pool.map(some_fun, a_list)
results_per_list.append(results)
the_pool.close()
the_pool.join()