| |
Функции для кэширования типов данных:
MPI_TYPE_CREATE_KEYVAL(type_copy_attr_fn, type_delete_attr_fn, type_keyval, extra_state)
IN | type_copy_attr_fn |
функция копирования для type_keyval (функция) |
|
IN | type_delete_attr_fn |
функция удаления для type_keyval (функция) |
|
OUT | type_keyval |
Ключевое значение для последующего доступа (целое) | |
IN | extra_state |
Дополнительное состояние для возвратных функций |
int MPI_Type_create_keyval( MPI_Type_copy_attr_function *type_copy_attr_fn, MPI_Type_delete_attr_function *type_delete_attr_fn, int *type_keyval, void *extra_state)
MPI_TYPE_CREATE_KEYVAL (TYPE_COPY_ATTR_FN, TYPE_DELETE_ATTR_FN, TYPE_KEYVAL, EXTRA_STATE, IERROR) EXTERNAL TYPE_COPY_ATTR_FN, TYPE_DELETE_ATTR_FN INTEGER TYPE_KEYVAL, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE
static int MPI::Datatype:: Create_keyval(MPI::Datatype:: Copy_attr_function* type_copy_attr_fn, MPI::Datatype:: Delete_attr_function* type_delete_attr_fn, void* extra_state)
Аргумент type_copy_attr_fn
может быть указан как
MPI_TYPE_NULL_COPY_FN
или MPI_TYPE_DUP_FN
для Си,
С++ и ФОРТРАНa. MPI_TYPE_NULL_COPY_FN
- функция, которая не
делает ничего, кроме возврата flag = 0
и MPI_SUCCESS
.
MPI_TYPE_DUP_FN
- несложная функция копирования, которая
устанавливает flag = 1
, возвращает значение attribute_val_in
в attribute_val_out
и возвращает MPI_SUCCESS
.
Аргумент type_delete_attr_fn
может быть указан как
MPI_TYPE_NULL_DELETE_FN
или для Си, С++ и ФОРТРАНa.
MPI_TYPE_NULL_DELETE_FN
- функция, которая не делает ничего, кроме
возврата MPI_SUCCESS
.
Вызываемые функции на Си:
typedef int MPI_Type_copy_attr_function(MPI_Datatype oldtype, int type_keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag);
и
typedef int MPI_Type_delete_attr_function(MPI_Datatype type, int type_keyval, void *attribute_val, void *extra_state);
Вызываемые функции на ФОРТРАНe:
SUBROUTINE TYPE_COPY_ATTR_FN(OLDTYPE, TYPE_KEYVAL, EXTRA_STATE, & ATTRIBUTE_VAL_IN, & ATTRIBUTE_VAL_OUT, FLAG, IERROR) INTEGER OLDTYPE, TYPE_KEYVAL, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, & ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT LOGICAL FLAG
и
SUBROUTINE TYPE_DELETE_ATTR_FN(TYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, & EXTRA_STATE, IERROR) INTEGER TYPE, TYPE_KEYVAL, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL, EXTRA_STATE
Вызываемые функции на С++:
typedef int MPI::Datatype::Copy_attr_function(const MPI::Datatype& oldtype, int type_keyval, void* extra_state, const void* attribute_val_in, void* attribute_val_out, bool& flag);
и
typedef int MPI::Datatype::Delete_attr_function (MPI::Datatype& type, int type_keyval, void* attribute_val, void* extra_state);
MPI_TYPE_FREE_KEYVAL(type_keyval)
INOUT | type_keyval |
Ключевое значение (целое) |
int MPI_Type_free_keyval(int *type_keyval)
MPI_TYPE_FREE_KEYVAL (TYPE_KEYVAL, IERROR) INTEGER TYPE_KEYVAL, IERROR
static void MPI::Datatype::Free_keyval(int& type_keyval)
MPI_TYPE_SET_KEYVAL(type, type_keyval, attribute_val)
INOUT | type |
Тип данных, для которого атрибут будет добавлен (указатель) | |
IN | type_keyval |
Ключевое значение (целое) | |
IN | attribute_val |
Значение атрибута |
int MPI_Type_set_attr(MPI_Datatype type, int type_keyval, void *attribute_val)
MPI_TYPE_SET_ATTR(TYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, IERROR) INTEGER TYPE, TYPE_KEYVAL, IRROR INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL
void MPI::Datatype::Set_attr(int type_keyval, const void* attribute_val)
MPI_TYPE_GET_ATTR(type, type_keyval, attribute_val, flag)
IN | type |
Тип данных, для которого атрибут добавлен (указатель) | |
IN | type_keyval |
Ключевое значение (целое) | |
OUT | attribute_val |
Значение атрибута, eсли flag=false |
|
OUT | flag |
false , если нет атрибута,
ассоциированного с ключом (логический тип) |
int MPI_Type_get_attr(MPI_Datatype type, int type_keyval, void *attribute_val, int *flag)
MPI_TYPE_GET_ATTR(TYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, FLAG, IERROR) INTEGER TYPE, TYPE_KEYVAL, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL LOGICAL FLAG
bool MPI::Datatype::Get_attr(int type_keyval, void* attribute_val) const
MPI_TYPE_DELETE_ATTR(type, type_keyval)
INOUT | type |
Тип данных, для которого атрибут удаляется (указатель) | |
IN | type_keyval |
Ключевое значение (целое) |
int MPI_Type_delete_attr(MPI_Datatype type, int type_keyval)
MPI _TYPE_DELETE_ATTR (TYPE, TYPE_KEYVAL, IERROR) INTEGER TYPE, TYPE_KEYVAL, IERROR
void MPI::Datatype::Delete_attr(int type_keyval)
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |