Совет пользователям:
Возможны программы, в которых все процессы в группе осуществляют доступ к файлу, используя общий указатель, но сама программа не требует, чтобы доступ к данным осуществлялся в порядке рангов процессов. В таких программах использование общих упорядоченных подпрограмм (например, MPI_FILE_WRITE_ORDERED вместо MPI_FILE_WRITE_SHARED) может активизировать оптимизацию доступа, увеличивая производительность. []
Совет разработчикам:
Обращения к запрошенным данным всеми процессами не должны быть обязательно сериализованы. После того как все процессы сгенерировали свои запросы, могут быть вычислены позиции в файле для всех обращений, и обращения могут осуществляться независимо друг от друга, возможно параллельно. []
INOUT | fh | дескриптор файла (дескриптор) |
OUT | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
OUT | status | объект состояния (Status) |
int MPI_File_read_ordered(MPI_File fh, void *buf,
int count, MPI_Datatype datatype, MPI_Status *status)
MPI_FILE_READ_ORDERED(FH, BUF, COUNT, DATATYPE,
STATUS, IERROR)
<type> BUF(*)
INTEGER FH, COUNT, DATATYPE,
STATUS(MPI_STATUS_SIZE), IERROR
void MPI::File::Read_ordered(void* buf, int count,
const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Read_ordered(void* buf, int count,
const MPI::Datatype& datatype)
MPI_FILE_READ_ORDERED - это коллективная версия интерфейса MPI_FILE_READ_SHARED.
INOUT | fh | дескриптор файла (дескриптор) |
IN | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
OUT | status | объект состояния (Status) |
int MPI_File_write_ordered(MPI_File fh, void *buf,
int count, MPI_Datatype datatype, MPI_Status *status)
MPI_FILE_WRITE_ORDERED(FH, BUF, COUNT, DATATYPE,
STATUS, IERROR)
<type> BUF(*)
INTEGER FH, COUNT, DATATYPE,
STATUS(MPI_STATUS_SIZE), IERROR
void MPI::File::Write_ordered(const void* buf, int count,
const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Write_ordered(const void* buf,
int count, const MPI::Datatype& datatype)
MPI_FILE_WRITE_ORDERED - это коллективная версия
интерфейса MPI_FILE_WRITE_SHARED.