Назад | Перейти на главную страницу

сохранить данные hdf5, когда администратор убивает скрипт

У меня есть много данных Монте-Карло, которые мне нужно обработать в конкретном кластере. Что я делаю, так это для данного образца данных (который в среднем имеет размер 70 ГБ) я запускаю некоторый статистический скрипт на python для этих данных и сохраняю его в файле hdf5, что уменьшает общий размер этих данных. на 90%.

Я мало что могу сделать, чтобы ускорить работу программы, поскольку файлы такие огромные. Из-за этого для завершения прогона каждого образца требуется много времени.

Чтобы ускорить общую обработку, я запускаю следующую команду

cat sampleList.txt | parallel -j 20 ipython myScript.py 2>&1 | tee logDir/myLog.txt

где доступное количество ядер - 36.

Однако со временем происходит автоматическое завершение определенного числа из этих 20 процессов. У меня не обязательно проблемы с этим. Однако, когда один из этих процессов останавливается, файл hdf5, записываемый в этом процессе, становится поврежденным.

Мне было интересно, можно ли иметь в моем скрипте Python флаг, который заставлял бы данные, которые я написал, закрываться, прежде чем процесс будет завершен. Или, может быть, у вас есть альтернативы получше.

Что я должен делать? И спасибо!

Имеет ли смысл закрывать файл после каждой записи:

while input
  compute
  if received TERM signal: exit
  open >>file.hd5
  write stuff
  close file.hd5