Все,
Я просматриваю документацию библиотеки mpi4py, но важные детали, похоже, не учтены. Ниже приведен короткий скрипт на python для записи параллельного вывода в файл. Первый вопрос: вывод должен быть записан в формате ascii , так как же это сделать? Во-вторых, выходные данные могут состоять из смеси целых чисел, чисел с плавающей запятой и строк, поэтому необходимо соответствующим образом определить буфер.
import numpy as np
from mpi4py import MPI
amode = MPI.MODE_WRONLY|MPI.MODE_CREATE
comm = MPI.COMM_WORLD
fh = MPI.File.Open(comm, "test.dat", amode)
buffer = np.empty(10, dtype=np.int)
buffer[:] = comm.Get_rank()
print(buffer)
offset = comm.Get_rank() * buffer.nbytes
print(offset)
fh.Write_at_all(offset, buffer)
fh.Close()