и до апаратної частини паралельного комп'ютера. Все, що потрібно цьому інтерфейсу, - щоб процесори або ядра спільно використовували одну мережу, придатну для передачі повідомлень між будь-якими двома процесами. Це дозволяє MPI працювати на будь стандартної паралельній системі, від симетричних багатопроцесорних систем до систем з розподіленою пам'яттю, від суперкомп'ютерів з високим ступенем паралелізму до кластеров.універсален і всеїдний. Він не накладає практично ніяких обмежень на додаток, на залізо, на канали, які використовуються для зв'язку між комп'ютерами. p align="justify"> Система програм даного проекту реалізована на основі архітектури В«клієнт-серверВ».
Опис змінних
ProcNum
Мінлива типу int, що зберігає значення числа процесів, що виконуються в рамках комунікатора MPI_COMM_WORLD. Необхідна для визначення кордону циклу for при відправленні інформації. p align="justify"> int ProcRank
Мінлива типу int, що зберігає значення рангу процесу, що виконується в рамках комунікатора MPI_COMM_WORLD. Необхідна для ідентифікації процесу. p align="justify"> MPI_Status Status
Мінлива певного MPI типу. Зберігає інформацію про успішність (невдачі) останньої MPI операції. br/>
Специфікації на програмні модулі
Main.cpp
Даний модуль є основним модулем програми. За своєю структурою схожий з класичної MPI - програмою, у якій залежно від рангу процесу (ProcRank) виконуються ті чи інші дії. Спочатку відбувається ініціалізація MPI, визначення рангу поточного процесу і кількості виконуваних процесів. p align="justify"> Якщо ранг процесу рівний нулю, то викликається функція DoClientProcess з модуля Client.cpp, інакше (ранг процесу різниться від нуля) викликається функція DoServerProcess з модуля Server.cpp.
Потім відбувається закриття бібліотеки MPI і програма завершує свою роботу.
Client.cpp
Даний модуль містить функцію DoClientProcess, яка викликається в разі, якщо ранг поточного процесу дорівнює нулю. На початку роботи дана функція здійснює підключення клієнта до бази даних (на даний момент порожній). Потім відбувається введення SQL - оператора користувачем і функція переходить в режим очікування прийому результатів від серверів. Після прийому відбувається обробка отриманої інформації та запис результатів в базу даних клієнта. p align="justify"> Server.cpp
Даний модуль містить функцію DoServerProcess, яка викликається в разі, якщо ранг поточного процесу відмінний від нуля. На початку роботи дана функція здійснює підключення сервера до бази даних, яка відповідає його номеру (база даних містить інформацію). Сервер очікує прийому SQL - запиту від клієнта. Піс...