
4.1. Лінії видимого контуру
Породження процесі, як подано в лістінгу 6, можливе за допомогою функцій, які викликаються із функції mane ().
Лістінг 6. Основна гілка програми, з якої викликається функція,
що породжує процес
int main (int argc, char *argv [ ]) {
. . .
Rt = func1 (X, Y, Z );
. . . }
Визначення функції.
int func1 (char *M, char *N, char *V) {
. . .
char *const args [ ] = {“TaskX”, M, N, V, NULL};
Pid = fork ();
if (Pid = = 0) {
exec ({“TaskX”, args); }
if (Pid > 0) {
. . . }
wait (stat); }
В лістінгу 6. функція func1 викликається з трьома аргументами. Ці аргументи передаються породженому процесу.
Процеси також можуть породжуватися із методів, які належать об’єктам. Як подано в лістінгу 7, об’єкти можна оголосити в довільному процесі.
Лістінг 7. Оголошення об’єкту в процесі
. . .
my_object MyObject;
. . .
Оголошення та визначення класу.
class my_object {
public:
. . .
int spawnProcess (int X);
. . . };
int my_object :: spawnProcess (int X) {
. . .
. . . posix_spawn () або system ()
. . . }
Як подано в лістінгу 7, об’єкт може створювати довільну кількість процесів з довільного методу.
Завдання до курсової роботи
Використати модель процесів «головний - підлеглий».
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стрічок. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стовпців. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стрічок. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стовпців. (Ітеративний паралелізм). Для чотирьох процесорів.
Напишіть паралельну програму, яка транспонує матрицю а[n, n] з використанням рекурсивного паралелізму. Для чотирьох процесорів.
Напишіть паралельну програму, яка проводить сортування елементів матриці b[n, n] з використанням рекурсивного паралелізму. Для чотирьох процесорів.
Виконати апроксимацію інтеграла функції sin (x)*ex за методом адаптивної квадратури, використовуючи рекурсивний паралелізм. Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стрічок. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стовпців. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стрічок. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стовпців. (Ітеративний паралелізм). Для восьми процесорів.
Напишіть паралельну програму, яка транспонує матрицю а[n, n] з використанням рекурсивного паралелізму. Для восьми процесорів.
Напишіть паралельну програму, яка проводить сортування елементів матриці b[n, n] з використанням рекурсивного паралелізму. Для восьми процесорів.
Виконати апроксимацію інтеграла функції sin (x)*ex за методом адаптивної квадратури, використовуючи рекурсивний паралелізм. Для восьми процесорів.
Використати модель рівноправних процесів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стрічок. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стовпців. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стрічок. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стовпців. (Ітеративний паралелізм). Для чотирьох процесорів.
Напишіть паралельну програму, яка транспонує матрицю а[n, n] з використанням рекурсивного паралелізму. Для чотирьох процесорів.
Напишіть паралельну програму, яка проводить сортування елементів матриці b[n, n] з використанням рекурсивного паралелізму. Для чотирьох процесорів.
Виконати апроксимацію інтеграла функції sin (x)*ex за методом адаптивної квадратури, використовуючи рекурсивний паралелізм. Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стрічок. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стовпців. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стрічок. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стовпців. (Ітеративний паралелізм). Для восьми процесорів.
Напишіть паралельну програму, яка транспонує матрицю а[n, n] з використанням рекурсивного паралелізму. Для восьми процесорів.
Напишіть паралельну програму, яка проводить сортування елементів матриці b[n, n] з використанням рекурсивного паралелізму. Для восьми процесорів.
Виконати апроксимацію інтеграла функції sin (x)*ex за методом адаптивної квадратури, використовуючи рекурсивний паралелізм. Для восьми процесорів.
Використати модель процесів «керуючий – пул потоків».
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стрічок. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стовпців. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стрічок. (Ітеративний паралелізм). Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стовпців. (Ітеративний паралелізм). Для чотирьох процесорів.
Напишіть паралельну програму, яка транспонує матрицю а[n, n] з використанням рекурсивного паралелізму. Для чотирьох процесорів.
Напишіть паралельну програму, яка проводить сортування елементів матриці b[n, n] з використанням рекурсивного паралелізму. Для чотирьох процесорів.
Виконати апроксимацію інтеграла функції sin (x)*ex за методом адаптивної квадратури, використовуючи рекурсивний паралелізм. Для чотирьох процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стрічок. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням стовпців. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стрічок. (Ітеративний паралелізм). Для восьми процесорів.
Обчислити добуток двох матриць а[n, n] і b[n, n] та помістити в матрицю с[n, n]. Скласти програму паралельним обчисленням з використанням смуг для стовпців. (Ітеративний паралелізм). Для восьми процесорів.
Напишіть паралельну програму, яка транспонує матрицю а[n, n] з використанням рекурсивного паралелізму. Для восьми процесорів.
Напишіть паралельну програму, яка проводить сортування елементів матриці b[n, n] з використанням рекурсивного паралелізму. Для восьми процесорів.
Виконати апроксимацію інтеграла функції sin (x)*ex за методом адаптивної квадратури, використовуючи рекурсивний паралелізм. Для восьми процесорів.
Навчально-методичні матеріали
1. Грегори Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования. М: - 2003.
2. Грушвицкий Р., Мурсаев А., Угрюмов Е. Проектирование систем на микросхемах с программируемой структурой. Сн-Пеиербург, 2006.
3. Суворов Е., Шейнин Ю. Проектирование цифровых систем на VHDL. Сн-Пеиербург, 2006.
4. Соммервилл И. Инженерия программного обеспечения. М: - 2002.
5. Андон Ф., Лаврищева М. Методы инженерии распределенных компьютерных систем. К., 1997.
6. Берталанфи Л. Общая теория систем. М.: 1960.
7. Бусленко И. Моделирование сложных систем. М., 1968.
8. Месарович М., Маке Д., Тахакара И. Теория иерархических многоуровневих систем. М., 1973.
9. Боггс Ч., Боггс М. UML Rational. М., 2000.
10. Иан Грэхем. Объектно-ориентированные методы проектирования. Принципы и практика. 3-е издан.: пер. с анг. – М.: 2004.
11. Мейер Бертран. Объектно-ориентированное конструирование программных систем. пер. с анг. – М.: 2005.
12. Кнут Дон., Ервин. Искусство программирования. 3-е издан.: пер. с анг. – М.: 2007.
13. Куроуз Дж., Росс К. Компьютерные сети. СПб.: Питер, 2004.