next up previous contents
Next: Возможность взаимодействия с файлом Up: Доступ к данным. Previous: Поиск.   Contents

Разделенные коллективные подпрограммы доступа к данным.

MPI предоставляет ограниченную форму``неблокирующих коллективных'' операций ввода-вывода для всех типов доступа к данным - использование разделенных коллективных подпрограмм доступа к данным. Эти подпрограммы называются ``разделенными'', потому что обычные коллективные разделены на две: начинающая подпрограмма и заканчивающая подпрограмма. Начинающая подпрограмма начинает операцию почти так же, как неблокирующее обращение к данным (например, MPI_FILE_IREAD). Заканчивающая подпрограмма завершает операцию почти так же, как тестирование или ожидание (например, MPI_WAIT). Как и в случае неблокирующих операций, пользователь не должен использовать буфер, переданный начинающей подпрограмме, пока подпрограмма ожидает обработки; операция должна быть завершена заканчивающей подпрограммой, прежде чем можно будет безопасно освобождать буферы и т.д. Разделенные коллективные операции доступа к данным над дескриптором файла fh подчиняются следующим семантическим правилам.

Аргументы для данных подпрограмм имеют то же значение, что и для эквивалентных коллективных версий (например, аргументы для MPI_FILE_READ_ALL_BEGIN и MPI_FILE_READ_ALL_END эквивалентны аргументам для MPI_FILE_READ_ALL). Начинающая подпрограмма (например,
MPI_FILE_READ_ALL_BEGIN) начинает разделенную коллективную операцию, которая после завершения соответствующей оканчивающей подпрограммой (т.е. MPI_FILE_READ_ALL_END) производит тот же результат, что и эквивалентная коллективная подпрограмма (т.е. MPI_FILE_READ_ALL). В целях обеспечения семантики согласованности (раздел File Consistency ) пара разделенных коллективных операций доступа к данным (например, MPI_FILE_READ_ALL_BEGIN и MPI_FILE_READ_ALL_END) образует простое обращение к данным.



MPI_FILE_READ_AT_ALL_BEGIN(fh, offset, buf, count, datatype)



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)



MPI_FILE_READ_AT_ALL_END(fh, buf, status)



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)



MPI_FILE_WRITE_AT_ALL_BEGIN(fh, offset, buf, count, datatype)



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)



MPI_FILE_WRITE_AT_ALL_END(fh, buf, status)



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)





MPI_FILE_READ_ALL_BEGIN(fh, buf, count, datatype)



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)





MPI_FILE_READ_ALL_END(fh, buf, status)



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)



MPI_FILE_WRITE_ALL_BEGIN(fh, buf, count, datatype)



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)





MPI_FILE_WRITE_ALL_END(fh, buf, status)



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)





MPI_FILE_READ_ORDERED_BEGIN(fh, buf, count, datatype)



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)





MPI_FILE_READ_ORDERED_END(fh, buf, status)



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)





MPI_FILE_WRITE_ORDERED_BEGIN(fh, buf, count, datatype)



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)





MPI_FILE_WRITE_ORDERED_END(fh, buf, status)



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)


next up previous contents
Next: Возможность взаимодействия с файлом Up: Доступ к данным. Previous: Поиск.   Contents
Alex Otwagin 2002-12-10