Составители:
Рубрика:
73
Функция
MPI_NULL_DELETE_FN
не
выполняет
никаких
действий
,
возвращая
только
значение
MPI_SUCCESS
.
Специальное
значение
ключа
MPI_KEYVAL_INVALID
никогда
не
возвращается
подпрограммой
MPI_Keyval_create
.
Его
можно
использовать
для
инициализации
ключей
.
Удаление
ключа
keyval
int MPI_Keyval_free(int *keyval)
MPI_KEYVAL_FREE(KEYVAL, IERR)
Эта
функция
присваивает
параметру
keyval
значение
MPI_KEYVAL_INVALID
.
Используемый
атрибут
можно
удалить
,
поскольку
фактическое
удаление
происходит
только
после
того
,
как
будут
удалены
все
ссылки
на
атрибут
.
Эти
ссылки
должны
быть
явным
образом
удалены
программой
,
например
,
посредством
вызова
MPI_Attr_delete
каждый
такой
вызов
удаляет
один
экземпляр
атрибута
,
либо
вызовом
MPI_Comm_free
,
который
удаляет
все
экземпляры
атрибута
,
связанные
с
удаляемым
коммуникатором
.
Задание
атрибута
attribute
,
который
в
дальнейшем
может
использоваться
подпрограммой
MPI_Attr_get
int MPI_Attr_put(MPI_Comm comm, int keyval, void* attribute)
MPI_ATTR_PUT(COMM, KEYVAL, ATTRIBUTE, IERR)
С
атрибутом
ассоциируется
значение
ключа
keyval
.
Если
значение
атрибута
уже
задано
,
результат
будет
аналогичен
ситуации
,
когда
сначала
для
удаления
предыдущего
значения
вызывается
MPI_Attr_delete
(
и
выполняется
функция
обратного
вызова
delete_fn
),
а
затем
сохраняется
новое
значение
.
Вызов
завершится
с
ошибкой
,
если
нет
ключа
со
значением
keyval
.
В
частности
,
MPI_KEYVAL_INVALID
ошибочное
значение
ключа
.
Не
допускается
изменение
системных
атрибутов
MPI_TAG_UB
,
MPI_HOST
,
MPI_IO
и
MPI_WTIME_IS_GLOBAL
.
Если
атрибут
уже
назначен
,
вызывается
функция
удаления
,
заданная
при
создании
соответствующего
ключа
.
Определение
значения
атрибута
attribute
,
соответствующее
значению
ключа
keyval
int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute, int
*flag)
MPI_ATTR_GET(COMM, KEYVAL, ATTRIBUTE, FLAG, IERR)
Первый
параметр
задает
коммуникатор
,
с
которым
связан
атрибут
.
Если
ключа
со
значением
keyval
нет
,
возникает
ошибка
.
Ошибки
не
возникает
,
если
значение
key
существует
,
но
соответствующий
атрибут
не
присоединен
к
коммуникатору
comm
.
В
этом
случае
возвращается
значение
флага
flag = false
.
Вызов
MPI_Attr_put
передает
в
параметре
attribute_val
значение
атрибута
,
а
вызов
подпрограммы
MPI_Attr_get
передает
в
параметре
attribute_val
адрес
,
по
которому
возвращается
значение
атрибута
.
Атрибуты
должны
извлекаться
из
программ
,
написанных
на
тех
же
языках
,
на
которых
они
задавались
с
помощью
вызова
подпрограммы
MPI_Attr_put
.
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »
