Ich habe ~ 1000 separate HDF5-Dateien auf der Festplatte gespeichert. Jeder dauert nur etwa 10ms, um in den Speicher geladen zu werden, also habe ich mich gefragt, wie man sie am besten parallel laden kann, so dass ich einen linearen Leistungsschub bekomme.Python - lesen hdf5 Dateien parallel
Ich habe versucht, Multiprocessing, aber das ist langsamer als nur seriell laden sie in wegen der Overhead der Einrichtung der Prozesse. Ich habe Cython genauer untersucht, aber es hat Probleme, es zu optimieren, um es schneller zu machen. Irgendwelche Hinweise würden geschätzt werden!
Ich glaube nicht, dass die parallele Verarbeitung Ihren Prozess beschleunigen wird, da es nur die Rechenzeit und nicht die Zugriffszeit beschleunigt. Ich würde jedoch vorschlagen, dass Sie versuchen, Leistung zu erzielen, indem Sie die Dateien stattdessen in einer Zip-Datei speichern. –
Wenn alle 10 ms vom Datenträger gelesen werden, was lässt Sie glauben, dass es möglich ist, den Prozess von vornherein zu beschleunigen? Wenn Sie 100% der Bandbreite verwenden, denke ich, dass es nichts zu tun gibt, oder? – JohanL
ist es nicht möglich, Cython zu verwenden und die GIL für Multithreading freizugeben? Könnte das nicht theoretisch eine parallele Verarbeitung für IO-gebundene Aufgaben ermöglichen und die Leistung erhöhen? – Michael