Я намагаюся вирішити велику числову проблему, яка включає безліч підпроблем, і я використовую багатопроцесорний модуль Python (зокрема Pool.map), щоб розділити різні незалежні підзадачі на різні ядра. Кожна підзадача включає обчислення безлічі підпроблем, і я намагаюся ефективно запам'ятати ці результати, зберігаючи їх у файлі, якщо вони ще не були обчислені в будь-якому процесі, інакше пропустимо обчислення і просто прочитаємо результати з файлу.
У мене проблеми з паралельністю з файлами: різні процеси іноді перевіряють, чи не обчислюється ще підпроблема (шукаючи файл, де будуть зберігатися результати), переконайтеся, що цього не було, запустіть обчислення, потім спробуйте записати результати в той самий файл одночасно. Як мені уникнути подібних зіткнень?
multiprocessing.Lock
для синхронізації декількох процесів.