- •Лабораторна робота №2.
- •Приклад документованого тексту програми.
- •Виклик утiлiти Javadoc з командного рядка.
- •Завдання:
- •Лабораторна робота №3.
- •Теоретичнi вiдомостi.
- •Завдання
- •Iндивiдуальнi завдання до захисту роботи
- •Лабораторна робота №4.
- •Теоретичнi вiдомостi.
- •Завдання
- •Iндивiдуальнi завдання до захисту роботи
- •Рекурсивна версiя засувки
- •Завдання
- •Iндивiдуальнi завдання до захисту роботи
- •Використання семафорiв для сигналiзацiї
- •Рахуючий семафор
- •Обмежуючий семафор
- •Потоки стандартного вводу / виводу
- •Стандартний поток виводу System.Out
- •Стандартний поток вводу System.In
- •Стандартний поток помилок System.Err
- •Потоки вводу / виводу пакету java.Io
- •Файловий ввод / вивід
- •Рядковий ввод / вивід
- •Завдання:
- •Опанувати методику створення розподiлених програм з використанням часової синхронiзацiї паральних потокiв.
- •Приклад використання класу CountDownLatch
- •Опанувати методику створення розподiлених програм з використанням часової синхронiзацiї паральних потокiв.
- •Приклад вiдстеження моменту закiнчення роботи декiлькох потокiв
- •Завдання:
- •Опанувати методику створення розподiлених програм з використанням обмiнникiв.
- •Завдання:
- •Iндивiдуальнi завдання до захисту роботи
- •Мережі і сокети
- •Приклад: віддалене читання файлу
- •Сервер читання файлів мовою Java
- •Клієнт читання файлів мовою Java
- •Порядок компіляції та запуску програм
- •Завдання:
- •Контрольні питання:
- •Iндивiдуальнi завдання до захисту роботи
- •Опанувати методику створення розподiлених програм з використанням конвейеру команд.
- •Опанувати методику побудови моделi обчислень у виглядi графа "операцiї-операнди".
- •Приклад паралельного алгоритму для обчислення площi прямокутника
- •Завдання:
- •Iндивiдуальнi завдання до захисту роботи
- •Опанувати методику створення розподiлених програм з використанням портфеля задач.
- •Приклад використання портфеля задач за допомогою ExecutorService.
- •Завдання:
- •Iндивiдуальнi завдання до захисту роботи
- •Опанувати методику створення розподiлених програм з використанням бар'єрної синхронiзацiї.
- •Приклад використання бар'ера
- •Завдання:
- •Iндивiдуальнi завдання до захисту роботи
- •Опанувати методику синхронiзацiї паральних процесiв з використанням блокуючої черги.
- •Приклад реалiзацiї блокуючої черги
- •Приклад використання блокуючої черги
- •Завдання:
- •Iндивiдуальнi завдання до захисту роботи
- •Вимоги до звiту
- •Iндивiдуальнi завдання для самостiйної роботи
- •Вимоги до звiту
- •Iндивiдуальнi завдання для самостiйної роботи
- •Вимоги до звiту
- •Iндивiдуальнi завдання для самостiйної роботи
- •Додатковi завдання для пiдвищення балiв з курсу “Паралельне програмування”
Вимоги до звiту
Iндивiдуальнi завдання для самостiйної роботи
Варiант |
Дiя |
Опис даних |
Пристрiй вводу / виводу |
|||
1 |
2 |
3 |
4 |
|||
1 |
A = B * MC |
A, B - вектори, MC - матриця. |
A |
B |
MC |
|
2 |
A = (B + Z) * MX |
A, B, Z - вектори, MX - матриця. |
A |
B, Z |
MX |
|
3 |
MA = * (MB + MC) |
MA, MB, MC - матрицi, - константа. |
MB |
MA |
MC |
|
4 |
MA = MB * MC - * MX |
MA, MB, MC, MX - матрицi, - константа. |
MA, |
MC |
|
MB, MX |
5 |
a = max(B * MZ) |
B - вектор, MZ - матриця, a - число. |
a |
B |
MZ |
|
6 |
a = min(E * MT - MZ) |
E - вектор, MT, MZ - матрицi, a - число. |
a |
E |
MT |
MZ |
7 |
A = B * (MX + MY) |
A, B - вектори, MX, MY - матрицi. |
MY |
MX |
A |
B |
8 |
MA = MB * (MZ - MO) |
MA, MB, MO, MZ - матрицi. |
MA |
MB |
MO |
MZ |
9 |
a = (B * (C + Z)) |
B, C, Z - вектори, a - число. |
a |
B |
C |
Z |
10 |
MA = * MO * (MB - MZ) |
MA, MB, MZ, MO - матрицi, - константа. |
MA, |
MB |
MZ |
MO |
11 |
A = (B + C) * (MX - MY) |
A, B, C - вектори, MX, MY - матрицi. |
A, C |
B |
MX |
MY |
12 |
A = (B - C + D) * MO |
A, B, C, D - вектори, MO - матриця. |
C |
B, D |
A |
MO |
13 |
MX = MY * (MR - * MT) |
MX, MY, MR, MT - матрицi, - константа. |
, MY |
MR |
MT |
MX |
14 |
Z = B * MO - * R |
B, R, Z - вектори, MO - матриця, - константа. |
R, Z |
|
MO |
B |
15 |
MA = MB * (MZ - ME * MT) |
MA, MB, ME, MT, MZ - матрицi. |
MA, MZ |
MB |
ME |
MT |
16 |
a = max(MB - * MZ) |
a - число, MB, MZ - матрицi, - константа. |
a |
MB |
|
MZ |
17 |
a = min( * MO + MT) |
a - число, MO, MT - матрицi, - константа. |
a |
|
MO |
MT |
18 |
a = * min(MT * ME) |
a - число, MT, ME - матрицi, - константа. |
a |
|
MT, ME |
|
19 |
a = max(B * MT + ME) |
a - число, B - вектор, MT, ME - матрицi. |
a |
MT, ME |
|
B |
20 |
MA = (MB * MZ) + * MR |
MA, MB, MZ, MR - матрицi, - константа. |
MA, MB |
|
MZ |
MR |
21 |
MA = * (MB * MZ) - MR |
MA, MB, MZ, MR - матрицi, - константа. |
MA, |
MZ |
MB |
MR |
22 |
MA = * (MB + MZ * MO) |
MA, MB, MZ, MO - матрицi, - константа. |
MZ, |
MA |
MO |
MB |
23 |
MA = * MX + MZ * MO |
MA, MX, MZ, MO - матрицi, - константа. |
MA |
, MX |
MZ |
MO |
24 |
MA = * MB + * MC + * MD |
MA, MB, MC, MD - матрицi, , , - константи. |
, , , MA |
MB |
MC |
MD |
25 |
MA = * ( * MB + * MC) |
MA, MB, MC - матрицi, , , - константи. |
, MA |
MB |
, |
MC |
26 |
a = max( * MA + * MB) |
a - число, MA, MB - матрицi, , - константи. |
a |
MA |
, |
MB |
27 |
MA = * MB + * (MC + * MD) |
MA, MB, MC, MD - матрицi, , , - константи. |
, MA |
MB |
, , MC |
MD |
28 |
MA = MB * ( * MC + * MD) |
MA, MB, MC, MD - матрицi, , - константи. |
, , MA |
MB |
MC |
MD |
29 |
A = B * MB + C * (MC + * MD) |
A, B, C - вектори, MB, MC, MD - матрицi, - константа. |
, A, B, C |
MB |
MC |
MD |
30 |
MA = MB * MC - * MD |
MA, MB, MC, MD - матрицi, - константа. |
, MA |
MB |
MC |
MD |
31 |
a = * max(MA * MB - * MC) |
a - число, MA, MB, MC - матрицi, , - константи. |
a, , |
MA |
MB |
MC |
Самостiйна робота №2.
Тема: Програмування для обчислювальних систем зi змiнною кiлькiстю процесiв.
Мета: Опанувати методику створення багатопоточних додаткiв для систем з загальною пам'ятю.
Постановка задачi
Розробити паралельну програму, яка використовує декiльлька процесiв для вирiшення поставленої задачi.
Ця програма повинна забезпечувати ввод даних вiдповiдними процесами (пристроями вводу/виводу), їх розподiл на незалежнi фрагменти, органiзацiю та запуск паралельних обчислювальних процесiв, збирання результатiв обчислень та формування i виведення результатiв.
Кiлькiсть процесiв задавати як параметр при запуску програми.
Побудувати графiк залежностi часу виконання програми вiд кiлькостi процесiв, що її виконують.
Виконати обрахунок теоретичного коефiцiєнту прискорення.
