The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
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



Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру