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-функція  використовується  для  видалення  похідного  типу
               даних?
   174   175   176   177   178   179   180