В чем преимущество типов данных, полученных из mpi? - PullRequest
0 голосов
/ 02 мая 2018

Давайте предположим, что моей трехмерной сетке проков необходимо связать 2-мерные массивы со всеми ближайшими соседями. Я мог бы просто сохранить массив 2d как массив 1d, чтобы сделать данные непрерывными и использовать send / recv. Могу ли я ожидать какого-либо выигрыша в производительности, если я использовал, например, Mpi_type_vector вместо?

1 Ответ

0 голосов
/ 02 мая 2018

По сути, вы можете вручную упаковать / распаковать данные в / из непрерывного буфера или использовать производный тип данных.

  • ручная упаковка / распаковка требует больше кода, больше памяти, но время упаковки / распаковки может быть уменьшено, например, на OpenMP.

  • производному типу данных требуется меньше кода, меньше памяти, но данные обычно упаковываются / распаковываются под капотом, и обычно это выполняется одним потоком.

Строка дна, использование производного типа данных экономит ваше копирование данных в / из буфера, но не всегда может быть самым быстрым вариантом.

...