Befüllen Sie ein Wörterbuch parallel zur Mehrfachverarbeitung

Gestern habe ich eine Frage gestellt:Daten parallel zum Multiprozess lesen

Ich habe sehr gute Antworten bekommen und die in der Antwort erwähnte Lösung implementiert, die ich als richtig markiert habe.

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]

Allerdings dauert diese Lösung genauso lange, als würde ich einfach über @ iterierepeptide_kd.keys() und füllen Sie dasDataFrames Einer nach dem anderen. Warum ist das so? Gibt es eine Möglichkeit, die gewünschten Wörter parallel zu füllen und tatsächlich eine Geschwindigkeitssteigerung zu erzielen? Ich verwende es auf einem 48-Kern-HPC.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage