| |
MPI предоставляет ограниченную форму``неблокирующих коллективных'' операций ввода-вывода для всех типов доступа к данным - использование разделенных коллективных подпрограмм доступа к данным. Эти подпрограммы называются ``разделенными'', потому что обычные коллективные разделены на две: начинающая подпрограмма и заканчивающая подпрограмма. Начинающая подпрограмма начинает операцию почти так же, как неблокирующее обращение к данным (например, MPI_FILE_IREAD). Заканчивающая подпрограмма завершает операцию почти так же, как тестирование или ожидание (например, MPI_WAIT). Как и в случае неблокирующих операций, пользователь не должен использовать буфер, переданный начинающей подпрограмме, пока подпрограмма ожидает обработки; операция должна быть завершена заканчивающей подпрограммой, прежде чем можно будет безопасно освобождать буферы и т.д. Разделенные коллективные операции доступа к данным над дескриптором файла fh подчиняются следующим семантическим правилам.
MPI_File_read_all_begin(fh, ...); ... MPI_File_read_all(fh, ...); ... MPI_File_read_all_end(fh, ...);ошибочно.
IN | fh | дескриптор файла (дескриптор) |
IN | offset | смещение (целое) |
OUT | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
int MPI_File_read_at_all_begin(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype) MPI_FILE_READ_AT_ALL_BEGIN(FH, OFFSET, BUF, COUNT, DATATYPE, IERROR) <type> BUF(*) INTEGER FH, COUNT, DATATYPE, IERROR INTEGER(KIND=MPI_OFFSET_KIND) OFFSET void MPI::File::Read_at_all_begin(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
IN | fh | дескриптор файла (дескриптор) |
OUT | buf | начальный адрес буфера (выбор) |
OUT | status | объект состояния (Status) |
int MPI_File_read_at_all_end(MPI_File fh, void *buf, MPI_Status *status) MPI_FILE_READ_AT_ALL_END(FH, BUF, STATUS, IERROR) <type> BUF(*) INTEGER FH, STATUS(MPI_STATUS_SIZE), IERROR void MPI::File::Read_at_all_end(void* buf, MPI::Status& status) void MPI::File::Read_at_all_end(void* buf)
INOUT | fh | дескриптор файла (дескриптор) |
IN | offset | смещение (целое) |
IN | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
int MPI_File_write_at_all_begin(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype) MPI_FILE_WRITE_AT_ALL_BEGIN(FH, OFFSET, BUF, COUNT, DATATYPE, IERROR) <type> BUF(*) INTEGER FH, COUNT, DATATYPE, IERROR INTEGER(KIND=MPI_OFFSET_KIND) OFFSET void MPI::File::Write_at_all_begin(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
INOUT | fh | дескриптор файла (дескриптор) |
IN | buf | начальный адрес буфера (выбор) |
OUT | status | объект состояния (Status) |
int MPI_File_write_at_all_end(MPI_File fh, void *buf, MPI_Status *status) MPI_FILE_WRITE_AT_ALL_END(FH, BUF, STATUS, IERROR) <type> BUF(*) INTEGER FH, STATUS(MPI_STATUS_SIZE), IERROR void MPI::File::Write_at_all_end(const void* buf, MPI::Status& status) void MPI::File::Write_at_all_end(const void* buf)
INOUT | fh | дескриптор файла (дескриптор) |
OUT | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
int MPI_File_read_all_begin(MPI_File fh, void *buf, int count, MPI_Datatype datatype) MPI_FILE_READ_ALL_BEGIN(FH, BUF, COUNT, DATATYPE, IERROR) <type> BUF(*) INTEGER FH, COUNT, DATATYPE, IERROR void MPI::File::Read_all_begin(void* buf, int count, const MPI::Datatype& datatype)
INOUT | fh | дескриптор файла (дескриптор) |
OUT | buf | начальный адрес буфера (выбор) |
OUT | status | объект состояния (Status) |
int MPI_File_read_all_end(MPI_File fh, void *buf, MPI_Status *status) MPI_FILE_READ_ALL_END(FH, BUF, STATUS, IERROR) <type> BUF(*) INTEGER FH, STATUS(MPI_STATUS_SIZE), IERROR void MPI::File::Read_all_end(void* buf, MPI::Status& status) void MPI::File::Read_all_end(void* buf)
INOUT | fh | дескриптор файла (дескриптор) |
IN | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
int MPI_File_write_all_begin(MPI_File fh, void *buf, int count, MPI_Datatype datatype) MPI_FILE_WRITE_ALL_BEGIN(FH, BUF, COUNT, DATATYPE, IERROR) <type> BUF(*) INTEGER FH, COUNT, DATATYPE, IERROR void MPI::File::Write_all_begin(const void* buf, int count, const MPI::Datatype& datatype)
INOUT | fh | дескриптор файла (дескриптор) |
IN | buf | начальный адрес буфера (выбор) |
OUT | status | объект состояния (Status) |
int MPI_File_write_all_end(MPI_File fh, void *buf, MPI_Status *status) MPI_FILE_WRITE_ALL_END(FH, BUF, STATUS, IERROR) <type> BUF(*) INTEGER FH, STATUS(MPI_STATUS_SIZE), IERROR void MPI::File::Write_all_end(const void* buf, MPI::Status& status) void MPI::File::Write_all_end(const void* buf)
INOUT | fh | дескриптор файла (дескриптор) |
OUT | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
int MPI_File_read_ordered_begin(MPI_File fh, void *buf, int count, MPI_Datatype datatype) MPI_FILE_READ_ORDERED_BEGIN(FH, BUF, COUNT, DATATYPE, IERROR) <type> BUF(*) INTEGER FH, COUNT, DATATYPE, IERROR void MPI::File::Read_ordered_begin(void* buf, int count, const MPI::Datatype& datatype)
INOUT | fh | дескриптор файла (дескриптор) |
OUT | buf | начальный адрес буфера (выбор) |
OUT | status | объект состояния (Status) |
int MPI_File_read_ordered_end(MPI_File fh, void *buf, MPI_Status *status) MPI_FILE_READ_ORDERED_END(FH, BUF, STATUS, IERROR) <type> BUF(*) INTEGER FH, STATUS(MPI_STATUS_SIZE), IERROR void MPI::File::Read_ordered_end(void* buf, MPI::Status& status) void MPI::File::Read_ordered_end(void* buf)
INOUT | fh | дескриптор файла (дескриптор) |
IN | buf | начальный адрес буфера (выбор) |
IN | count | количество элементов в буфере (целое) |
IN | datatype | тип данных каждого элемента буфера (дескриптор) |
int MPI_File_write_ordered_begin(MPI_File fh, void *buf, int count, MPI_Datatype datatype) MPI_FILE_WRITE_ORDERED_BEGIN(FH, BUF, COUNT, DATATYPE, IERROR) <type> BUF(*) INTEGER FH, COUNT, DATATYPE, IERROR void MPI::File::Write_ordered_begin(const void* buf, int count, const MPI::Datatype& datatype)
INOUT | fh | дескриптор файла (дескриптор) |
IN | buf | начальный адрес буфера (выбор) |
OUT | status | объект состояния (Status) |
int MPI_File_write_ordered_end(MPI_File fh, void *buf, MPI_Status *status) MPI_FILE_WRITE_ORDERED_END(FH, BUF, STATUS, IERROR) <type> BUF(*) INTEGER FH, STATUS(MPI_STATUS_SIZE), IERROR void MPI::File::Write_ordered_end(const void* buf, MPI::Status& status) void MPI::File::Write_ordered_end(const void* buf)
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |