8.2.9 _gfortran_caf_sendget — Пересылка данных между удалёнными изображениями
- Описание:
-
Вызывается для пересылки скаляра, секции массива или всего массива из удалённого изображения, идентифицированного индексом src_image_index, в удалённое изображение, идентифицированное индексом dst_image_index.
- Синтаксис:
-
void _gfortran_caf_sendget (caf_token_t dst_token, size_t dst_offset, int dst_image_index, gfc_descriptor_t *dest, caf_vector_t *dst_vector, caf_token_t src_token, size_t src_offset, int src_image_index, gfc_descriptor_t *src, caf_vector_t *src_vector, int dst_kind, int src_kind, bool may_require_tmp) - Аргументы:
-
dst_token intent(in) Непрозрачный указатель, идентифицирующий целевой комассив. dst_offset Смещение в байтах фактических данных относительно базового адреса целевого комассива. dst_image_index Идентификатор целевого удалённого изображения; должно быть положительным числом. dest intent(in) Описание массива целевого удалённого изображения для границ и размера. Базовый адрес не должен быть обращён. dst_vector intent(int) Если не NULL, содержит векторный индекс целевого массива; значения относительны к тройке измерений аргумента dest. src_token Непрозрачный указатель, идентифицирующий исходный комассив. src_offset Смещение в байтах фактических данных относительно базового адреса исходного комассива. src_image_index Идентификатор исходного удалённого изображения; должно быть положительным числом. src intent(in) Описание локального массива, который будет передан в удалённое изображение. src_vector intent(in) Описание локального массива, который будет передан в удалённое изображение dst_kind Тип целевого аргумента src_kind Тип исходного аргумента may_require_tmp Переменная имеет значение false, если в момент компиляции известно, что dest и src либо не могут перекрываться, либо перекрываются (полностью или частично) таким образом, что обход src и dest в порядке элементов (с учётом шага) не приведёт к неправильным результатам. В противном случае значение равно true. - ПРИМЕЧАНИЯ
-
Разрешается иметь равные image_ids; память для отправки и получения может (частично) перекрываться в этом случае. Реализация должна позаботиться о том, чтобы обработать этот случай, например, используя
memmove, который обрабатывает (частично) перекрывающуюся память. Если may_require_tmp имеет значение true, библиотека может дополнительно создать временную переменную, если дополнительные проверки не покажут, что это не требуется (например, потому что возможен обратный обход или потому что оба массива сплошные иmemmoveобрабатывает проблемы перекрытия).Обратите внимание, что присвоение скаляра массиву разрешено. Кроме того, библиотека должна обрабатывать преобразование типов чисел, а для строк — заполнение и различные типы символов.
Следующее: _gfortran_caf_lock, Предыдущее: _gfortran_caf_get, Вернуться: Документация по ABI функций [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/_005fgfortran_005fcaf_005fsendget.html