next up previous contents
Next: Функции и макросы Up: Новые стандартные типы Previous: Тип unsigned long long   Contents

Канонические MPI_PACK и MPI_UNPACK

Эти функции пишут/читают в/из буфера в формате данных ``external32'', определенном в главе External Data Representation: ``external32'', и рассчитывают размер, необходимый для упаковки. Первые аргументы определяют формат данных, для будущего расширения, но для MPI-2 единственный верный аргумент datarep - ``external32.''

Совет пользователям: Эти функции могут быть использованы, например, для пересылки данных жесткого типа в переносимом формате из одной реализации MPI в другую. []

Буфер будет содержать упакованные данные, без заголовков.

MPI_PACK_EXTERNAL(datarep, inbuf, incount, datatype, outbuf, outsize,
position )

IN datarep представление данных (строка)  
IN inbuf начало входного буфера (выбор)  
IN incount количество элементов входного буфера (целое)  
IN datatype тип данных элементов входного буфера (дескриптор)  
OUT outbuf начало выходного буфера (выбор)  
IN outsize размер выходного буфера (целое)  
INOUT position текущая позиция в буфере в байтах (целое)  

int MPI_Pack_external(char *datarep, void *inbuf, int incount, MPI_Datatype datatype, void *outbuf, MPI_Aint outsize, MPI_Aint *position) MPI_PACK_EXTERNAL(DATAREP, INBUF, INCOUNT, DATATYPE, OUTBUF, OUTSIZE, POSITION, IERROR) INTEGER INCOUNT, DATATYPE, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) OUTSIZE, POSITION CHARACTER*(*) DATAREP <type> INBUF(*), OUTBUF(*) void MPI::Datatype::Pack_external(const char* datarep, const void* inbuf, int incount, void* outbuf, MPI::Aint outsize, MPI::Aint& position) const

MPI_UNPACK_EXTERNAL(datarep, inbuf, incount, datatype, outbuf, outsize,
position )

IN datarep представление данных (строка)  
IN inbuf начало входного буфера (выбор)  
IN insize размер входного буфера (целое)  
INOUT position текущая позиция в буфере в байтах (целое)  
OUT outbuf начало выходного буфера (выбор)  
IN outcount количество элементов выходного буфера (целое)  
IN datatype тип данных элементов выходного буфера (дескриптор)  

int MPI_Unpack_external(char *datarep, void *inbuf, MPI_Aint insize, MPI_Aint *position, void *outbuf, int outcount, MPI_Datatype datatype) MPI_UNPACK_EXTERNAL(DATAREP, INBUF, INSIZE, POSITION, OUTBUF, OUTCOUNT, DATATYPE, IERROR) INTEGER OUTCOUNT, DATATYPE, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) INSIZE, POSITION CHARACTER*(*) DATAREP <type> INBUF(*), OUTBUF(*) void MPI::Datatype::Unpack_external(const char* datarep, const void* inbuf, MPI::Aint insize, MPI::Aint& position, void* outbuf, int outcount) const

MPI_PACK_EXTERNAL_SIZE( datarep, incount, datatype, size )
IN datarep представление данных (строка)
IN incount количество элементов входного буфера (целое)
IN datatype тип данных элементов входного буфера (дескриптор)
OUT size размер выходного буфера (целое)
int MPI_Pack_external_size(char *datarep, int incount, MPI_Datatype datatype, MPI_Aint *size) MPI_PACK_EXTERNAL_SIZE(DATAREP, INCOUNT, DATATYPE, SIZE, IERROR) INTEGER INCOUNT, DATATYPE, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) SIZE CHARACTER*(*) DATAREP MPI::Aint MPI::Datatype::Pack_external_size(const char* datarep, int incount) const


next up previous contents
Next: Функции и макросы Up: Новые стандартные типы Previous: Тип unsigned long long   Contents
Alex Otwagin 2002-12-10