52
вводить числа p, n и массив a (из файла или по заданной формуле), запускать задачи,
вызывать эту подпрограмму и выводить на экран результат ее работы.
10. Написать multithread-подпрограмму, получающую в качестве аргументов n х n
массив a вещественных чисел, вспомогательный массив в вещественных чисел длины n (в
каждом thread свой), целое число n, номер задачи (thread) k, общее количество задач (threads)
p, и заменяющую каждый элемент
ij
a матрицы a (для которого это возможно) на
1, 1, , 1 , 1
4.
ij ij ij ij ij
aaaa a
+− +−
+++− При этом должна быть обеспечена равномерная загрузка всех
задач. Основная программа должна вводить числа p, n и массив a (из файла или по заданной
формуле), запускать задачи, вызывать эту подпрограмму и выводить на экран результат ее
работы.
11. Написать multithread-подпрограмму, получающую в качестве аргументов n х n
массив a вещественных чисел, вспомогательный массив в вещественных чисел
длины 2n (в
каждом thread свой), целое число n, номер задачи (thread) k, общее количество задач (threads)
p, и заменяющую каждый элемент
ij
a матрицы a (для которого это возможно) на
2, 2, , 2 , 2
4.
i j i j ij ij ij
aaaa a
+− +−
+++− При этом должна быть обеспечена равномерная загрузка всех
задач. Основная программа должна вводить числа p, n и массив a (из файла или по заданной
формуле), запускать задачи, вызывать эту подпрограмму и выводить на экран результат ее
работы.
12. Написать MPI-программу, получающую в качестве аргументов n х n массив a
вещественных чисел, целое число n, номер задачи (thread) k, общее
количество задач
(threads) p, и возвращающую ненулевое значение, если массив а симметричен (т.е.
ij ji
aa
), 0
в противном случае. При этом должна быть обеспечена равномерная загрузка всех задач.
Основная программа должна вводить числа p, n и массив a (из файла или по заданной
формуле), запускать задачи, вызывать эту функцию и выводить на экран результат ее
работы.
13. Написать MPI-программу, получающую в качестве аргументов n х n массив a
вещественных чисел, целое число n, номер
задачи (thread) k, общее количество задач
(threads) p, и заменяющую матрицу а на ее транспонированную. При этом должна быть
обеспечена равномерная загрузка всех задач. Основная программа должна вводить числа p, n
и массив a (из файла или по заданной формуле), запускать задачи, вызывать эту
подпрограмму и выводить на экран результат ее работы.
14. Написать MPI-программу, получающую в
качестве аргументов n х n массив a
вещественных чисел, целое число n, номер задачи (thread) k, общее количество задач
(threads) p, и заменяющую матрицу а на матрицу (а+аt)/2 (1), где аt – транспонированная
матрица а. При этом должна быть обеспечена равномерная загрузка всех задач. Основная
программа должна вводить числа p, n и массив a (из файла или по заданной формуле),
запускать задачи,
вызывать эту подпрограмму и выводить на экран результат ее работы.
15. Написать MPI-программу, получающую в качестве аргументов n х n массив a
вещественных чисел, целое число n, являющееся длиной этого массива, номер задачи (thread)
k, общее количество задач (threads) p, и заменяющую каждый элемент массива (для которого
это возможно) на среднее арифметическое соседних элементов. При этом должна быть
обеспечена
равномерная загрузка всех задач. Основная программа должна вводить числа p, n
и массив a (из файла или по заданной формуле), запускать задачи, вызывать эту
подпрограмму и выводить на экран результат ее работы.
16. Написать MPI-программу, получающую в качестве аргументов n х n массив a
вещественных чисел, вспомогательный массив в вещественных чисел длины n (в каждом
thread свой), целое
число n, номер задачи (thread) k, общее количество задач (threads) p, и
заменяющую каждый элемент
ij
a матрицы a (для которого это возможно) на
1, 1, , 1 , 1
4.
ij ij ij ij ij
aaaa a
+− +−
+++− При этом должна быть обеспечена равномерная загрузка всех
задач. Основная программа должна вводить числа p, n и массив a (из файла или по заданной