- •Екзаменаційний білет №21
- •Функції маршрутизації даних.
- •2 Векторний спосіб конструювання похідних типів даних.
- •Екзаменаційний білет №22
- •Системи із змінним часом звертання до пам’яті
- •Індексний спосіб конструювання похідних типів даних.
- •Конструювання типу.
- •Реєстрація типу.
- •Екзаменаційний білет №23
- •Порівняння кластерів та smp-систем.
- •Структурний спосіб конструювання похідних типів даних.
- •1.Конструювання типу.
- •2.Реєстрація типу.
- •Екзаменаційний білет №24
- •Системи із змінним часом звертання до пам’яті
- •Конструювання типу.
- •Реєстрація типу.
- •Екзаменаційний білет №25
- •Формування повідомлень за допомогою упакування і розпакування даних.
Екзаменаційний білет №25
Порівняння кластерів та SMP-систем
І кластери, і SMP-системи мають можливість розпаралелювання навантаження і розподілу його між багатьма процесорами і, таким чином, можуть забезпечити ефективне виконання особливо складних додатків. Системи і того й іншого класу присутні на комп'ютерному ринку.
Основна перевага SMP-систем у тому, що їх легше обслуговувати й експлуатувати, ніж кластери. SMP-системи по своїй суті набагато ближчі до звичних однопроцесорних систем, для яких розроблена переважна більшість існуючих додатків. Принципова зміна при переході від однопроцесорних систем до SMP-систем – впровадження функції планування. Інша перевага SMP-систем у порівнянні з кластерами – менші фізичні розміри і споживана потужність. Не слід забувати і те, що SMP-системи вже досить вкоренилися на практиці і їхнє виробництво добре налагоджено.
Але в групі високопродуктивних серверних систем кластери мають певну перевагу перед SMP-системами. Це зв'язано в першу чергу з можливістю нарощування структури комплексу вже в період його експлуатації і більш високою надійністю.
Формування повідомлень за допомогою упакування і розпакування даних.
Для використання даного підходу слід визначити буфер пам’яті достатнього розміру для збірки повідомлення. Дані, що входять до складу повідомлення повинні бути упаковані до буферу з використанням функції:
int MPI_Pack(void *data , int count , MPI_Datatype type , void *buf , int bufsize , int *bufpos , MPI_Comm comm ) ,
- data - буфер пам’яті з елементами для упаковки; - count - кількість елементів в буфері; - type - тип даних для елементів, що упаковуються; - buf - буфер пам’яті для упаковки; - bufsize - розмір буфера в пам’яті; - bufpos - позиція для початку запису в буфер (в байтах від початку буфера); - comm - комунікатор для упакованого повідомлення.
Функція MPI_Pack упаковує count елементів з буфера data до буфера упаковки buf, починаючи з позиції bufpos.
Для визначення необхідного розміру буфера для упаковки можна застосувати функцію:
int MPI_Pack_size(int count , MPI_Datatype type , MPI_Comm comm, int *size) ,
де - count - кількість елементів в буфері; - type - тип даних для упаковки елементів; - comm - комунікатор для упакованого повідомлення; - size - розрахований розмір буфера.
Після упаковки всіх необхідних даних підготований буфер можна використати в функціях передачі даних з вказівкою типу MPI_PACKED. Після отримання повідомлення з типом MPI_PACKED дані можна розпакувати з використанням функції:
int MPI_Unpack(void *buf , int bufsize , int *bufpos , void *data, int count , MPI_Datatype type , MPI_Comm comm ) ,
де - buf - буфер пам’яті з упакованими даними; - bufsize - розмір буфера в байтах; - bufpos - позиція початку даних в буфері (в байтах від початку буфера); - data - буфер пам’яті для розпакованих даних; - count - кількість елементів в буфері; - type - тип даних, що розпаковуються; - comm -комунікатор для упакованого повідомлення.