| |
Функции для кэширования типов данных:
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-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |