Iндивiдуальнi завдання до захисту роботи.
- Розробити розподiлену програму для збiльшення усiх елементiв матрицi розмiром N x N на одиницю. Програма повинна складатися з трьох процесiв. Перший процес генерує початкову матрицю та поелементно передає її другому процесу. Другий процес здiйснює послiдовне збiльшення кожного елемента матрицi на одиницю та передає результат до третього процесу. Третiй процес виводить результат на консоль. Розмiрнiсть матрицi задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму для поелементного складання двох матриць розмiром N x N. Перший та другий процеси генерують початковi матрицi та поелементно передають їх до третього процесу. Третiй процес реалiзує процедуру складення елементiв матриць та по мiрi отримання результату передає його до четвертого процесу. Четвертий процес виводить результат на консоль. Розмiрнiсть матрицi задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму для обчислення поелементної рiзницi двох ненульових матриць розмiром N x N. Перший та другий процеси генерують початковi матрицi та поелементно передають їх до третього процесу. Третiй процес реалiзує процедуру обчислення рiзницi елементiв матриць та по мiрi отримання результату передає його до четвертого процесу. Четвертий процес виводить результат на консоль. Розмiрнiсть матрицi задати як параметр у командному рядку пiд час запуску програми.
- Побудувати фiльтр, що складається з трьох процесiв. Перший процес генерує послiдовнiсть початкових даних у дiапазонi [-100, 100]. Можна використати рандомiзатор. Другий процес усi вiд'ємнi значення iнвертує у позитивнi, збiльшуючи їх у двiчi. Третiй процес виводить результат на консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму для обчислення характеристичних чисел векторiв. Програма повинна складатися з трьох процесiв. Перший процес генерує чотирьохкомпонентнi вектори (a1, a2, a3, a4). Другий процес виконує обрахунок характеристичного числа кожного вектору за такою формулою:
y = a1 * a2 / (a3 + a4).
Третiй процес виводить результат на консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми. - Розробити розподiлену програму, що складається з чотирьох процесiв. Перший процес генерує числа з плаваючою точкою (float). Другий процес роздiляє цiлочисельну та дробову частки початкового числа та направляє цiлочисельну - до третього процесу, а дробову - до четвертого. Третiй i четвертий процеси обраховують суму чисел, що до них надiшли та виводять результат на консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму, що складається з чотирьох процесiв. Перший процес генерує чотирьохкомпонентнi вектори (a1, a2, a3, a4) та передає їх другому процесу. Другий процес розподiляє компоненти векторiв таким чином:
- першу та другу компоненти вектора передає третьому процесу (a1, a2);
- третю i четверту компоненти вектора передає четвертому процесу (a3, a4);
Третiй i четвертий процеси обраховують суми кожної пари елементiв, що до них надiйшли та виводять результат на консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму, що складається з трьох процесiв. Перший та другий процеси генерують двокомпонентнi вектори (a1, a2), (a3, a4) та направляють їх до третього процесу. Третiй процес об'єднує кожну пару отриманих двокомпонентних векторiв у чотирикомпонентний вектор (a1, a2, a3, a4) та виводить результат на консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму, що складається з п'яти процесiв. Перший процес генерує трьохкомпонентнi вектори (a1, a2, a3) та передає їх до другого процесу. Другий процес розподiляє компоненти векторiв таким чином:
- першу компоненту вектора передає третьому процесу;
- другу компоненту вектора передає четвертому процесу;
- третю компоненту вектора передає п'ятому процесу.
Третiй, четвертий i п'ятий процеси пiдраховують суми значень компонентiв векторiв, що до них надiйшли та виводять результати у консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму, що складається з шести процесiв. Перший процес генерує трьохкомпонентнi вектори (a1, a2, a3) та передає їх до другого процесу. Другий процес розподiляє компоненти векторiв таким чином: першу компоненту вектора передає третьому процесу, а з другої i третьої компонент формує новий двохкомпонентний вектор i передає його до четвертого процесу. Четвертий процес роздає компоненти отриманого двокомпонентного вектора п'ятому та шостому процесам. Третiй, п'ятий та шостий процеси виводять отриманi данi у консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму, що складається з чотирьох процесiв. Першi три процеси генерують компоненти вектора a1, a2, a3 вiдповiдно та направляють їх до четвертого процесу. Четвертий процес об'єднує отриманi компоненти у вектор (a1, a2, a3) та виводить результат на консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити конвеєр для генерацiї чотирьохкомпонентних векторiв. Перший процес генерує перший елемент вектору та передає результат другому процесу. Другий процес генерує другий елемент вектору та передає результат третьому процесу. I т. д. Останнiй, п'ятий процес одержує вiд четвертого побудований таким чином вектор та виводять результати у консоль. Кiлькiсть даних, якi треба згенерувати та обробити, задати як параметр у командному рядку пiд час запуску програми.
- Розробити розподiлену програму, конвеєр для статистичної обробки текстових даних. Перший процес повинен прочитати з диску текстовий файл (або фрагмент тексту: 1 - 2 речення) та передати його на обробку до другого процесу. Другий процес пiдраховує кiлькiсть слiв у цьому фрагментi, виводить результат у консоль та передає фрагмент третьому процесу. Третiй процес пiдраховує кiлькiсть лiтер у цьому фрагментi та виводить результат у консоль. Iм'я файлу з текстовими даними задати як параметр у командному рядку пiд час запуску програми.
Самостiйна робота №1.