Запись файла в mpi используя python без условия гонки

Я использую mpi4py для моделирования распределенного приложения и хочу, чтобы все процессы записывали в общий файл. Есть ли функция, которая позволяет это без условия гонки?

3 ответа

Вам следует ознакомиться с одним из множества руководств по использованию ввода-вывода MPI. Я уверен, что есть какой-то способ использовать его в mpi4py.

У меня была похожая проблема. Для меня самый простой способ обойти это - записать каждый процесс в свой собственный файл и добавить метку времени. Этот файл затем может быть обработан, чтобы привести все в порядок.

Например, include (python3-style) печатает как:

print ("Процесс%d только что получил точку%r в%s" % (rank, point,str(datetime.datetime.now())))

Просто укажите дату и время сверху. Кажется, что mpi4py интересным образом буферизирует некоторые операции ввода-вывода, поэтому каждый процесс, поддерживающий собственный вывод, является наиболее надежным решением.

Возможно, стоит посмотреть на параллельную реализацию h5py

http://docs.h5py.org/en/latest/mpi.html

Который очень хорошо работает с mpi4py, если вы правильно его построили

Другие вопросы по тегам