Многопроцессорная обработка и сериализация данных в Python
Я запускаю сценарий на школьном компьютере, используяmultiprocessing
модуль. Я часто сериализирую данные. Это можно обобщить с помощью кода ниже:
import multiprocessing as mp
import time, pickle
def simulation(j):
data = []
for k in range(10):
data.append(k)
time.sleep(1)
file = open('data%d.pkl'%j, 'wb')
pickle.dump(data, file)
file.close()
if __name__ == '__main__':
processes = []
processes.append(mp.Process(target = simulation, args = (1,) ))
processes.append(mp.Process(target = simulation, args = (2,) ))
for process in processes:
process.start()
for process in processes:
process.join()
Поэтому, когда я на самом деле запускаю свой код для многих других симуляций и, как мне кажется, более интенсивных разнообразных задач, я получаю следующую ошибку:IOError: [Errno 5] Input/output error
обычно предшествуетfile.open(...)
или жеfile.close()
.
Мои вопросы:
Как я могу исправить эту ошибку в моем скрипте?Что эта ошибка означает для новичка Python? Отзывы приветствуются.Еще несколько заметок о моей процедуре:
Вместо установки многопроцессного атрибутаdaemon
бытьTrue
Я использую экран, чтобы запустить скрипт, а затем отключить. Это позволяет мне также отключиться, не беспокоясь о том, что мой сценарий остановился.Это было похоже навопрос о печати с использованиемsubprocess
модуль. Я не использовал явно демон, как я сказал, поэтому не уверен, поможет ли это.Это обычно происходит после запуска в течение примерно одного дня и происходит на разных процессах в разное время.