Page 179 - 4868
P. 179
177 Ошибка! Стиль не определен.
Функція MPI_Unpack розпаковує, починаючи з позиції bufpos, чергову
порцію даних з буфера buf і поміщає розпаковані дані у буфер data.
Початкове значення змінної bufpos має бути сформоване до початку
розпаковування і далі встановлюється функцією MPI_Unpack. Виклик
функції MPI_Unpack здійснюється послідовно для розпаковування усіх
упакованих даних, при цьому порядок розпаковування повинен відповідати
порядку упаковки. Так, в раніше розглянутому прикладі упаковки для
розпаковування упакованих даних необхідно виконати:
bufpos = 0;
MPI_Unpack(buf, buflen, &bufpos, &a, 1, MPI_DOUBLE, comm);
MPI_Unpack(buf, buflen, &bufpos, &b, 1, MPI_DOUBLE, comm);
MPI_Unpack(buf, buflen, &bufpos, &n, 1, MPI_INT, comm);
На завершення висловимо ряд рекомендацій по застосуванню упаковки
для формування повідомлень. Оскільки такий підхід призводить до появи
додаткових дій з упаковки і розпаковкиданих, то цей спосіб може бути
виправданий при порівняно невеликих розмірах повідомлень і при малій
кількості повторень. Упаковка і розпаковка може виявитися корисною при
явному використанні буферів для способу передачі буферизований даних.
Запитання для самоперевірки
1. Що розуміють під похідним типом даних в MPI-програмі?
2. Яка причина появи похідних типів даних у стандарті MPI?
3. Яким чином можна задати новий похідний тип даних в MPI-програмі?
4. Що називається в стандарті MPI сигнатурою типу?
5. Якими властивостями характеризуються похідні типи даних у MPI-
програмі?
6. Що розуміють під поняттями границя та протяжність типу в MPI?
7. Які MPI-функції використовуються для отримання значень
протяжності та розмірності типу?
8. Які існують способи конструювання похідних типів даних в MPI-
програмі?
9. Яка MPI-функція використовується для оголошення похідного типу
даних?
10. Яка MPI-функція використовується для видалення похідного типу
даних?