Заполняй словарь параллельно с многопроцессорностью

Вчера я задал вопрос:Чтение данных параллельно с многопроцессорностью

Я получил очень хорошие ответы, и я применил решение, упомянутое в ответе, который я отметил как правильный.

def read_energies(motif):
    os.chdir("blabla/working_directory")
    complx_ener = pd.DataFrame()
    # complex function to fill that dataframe 
    lig_ener = pd.DataFrame()
    # complex function to fill that dataframe 
    return motif, complx_ener, lig_ener

COMPLEX_ENERGIS = {}
LIGAND_ENERGIES = {}
p = multiprocessing.Pool(processes=CPU)
for x in p.imap_unordered(read_energies, peptide_kd.keys()):
    COMPLEX_ENERGIS[x[0]] = x[1]
    LIGAND_ENERGIES[x[0]] = x[2]

Однако это решение занимает столько же времени, как если бы я просто перебралpeptide_kd.keys() и заполнитьDataFrames по одному. Почему это так? Есть ли способ параллельно заполнять нужные дикты и фактически увеличивать скорость? Я использую его на 48-ядерном HPC.

Ответы на вопрос(1)

Ваш ответ на вопрос