Процессы и их ранги
MPI1Proc1°. В каждом из процессов, входящих в коммуникатор MPI_COMM_WORLD, прочесть одно вещественное число X и вывести его противоположное значение −X. Для ввода и вывода данных использовать поток ввода-вывода pt, определенный в задачнике. Кроме того, отобразить значение −X в разделе отладки, используя функцию Show, также определенную в задачнике.
MPI1Proc2°. В каждом из процессов, входящих в коммуникатор MPI_COMM_WORLD, прочесть одно целое число A и вывести его удвоенное значение. Кроме того, для главного процесса (процесса ранга 0) вывести количество процессов, входящих в коммуникатор MPI_COMM_WORLD. Для ввода и вывода данных использовать поток ввода-вывода pt. В главном процессе продублировать вывод данных в разделе отладки, отобразив на отдельных строках удвоенное значение A и количество процессов (использовать два вызова функции ShowLine, определенной в задачнике наряду с функцией Show).
MPI1Proc3°. В главном процессе прочесть вещественное число X и вывести его противоположное значение, в каждом из остальных процессов (подчиненных процессов, ранг которых больше 0) вывести его ранг. Кроме того, продублировать вывод данных в разделе отладки, отобразив значение −X с комментарием «-X=», а значения рангов с комментариями «rank=» (использовать функцию Show с двумя параметрами).
MPI1Proc4°. В процессах четного ранга (включая главный) ввести целое число и вывести его удвоенное значение. В процессах нечетного ранга не выполнять никаких действий.
MPI1Proc5°. В процессах четного ранга (включая главный) ввести целое число, в процессах нечетного ранга ввести вещественное число. В каждом процессе вывести удвоенное значение введенного числа.
MPI1Proc6°. В подчиненных процессах четного ранга ввести целое число, в процессах нечетного ранга ввести вещественное число. В каждом подчиненном процессе вывести удвоенное значение введенного числа. В главном процессе не выполнять никаких действий.
MPI1Proc7°. В каждом процессе четного ранга (включая главный) дано целое число N (> 0) и набор из N вещественных чисел. Вывести в каждом из этих процессов сумму чисел из данного набора. В процессах нечетного ранга не выполнять никаких действий.
MPI1Proc8°. В каждом процессе дано целое число N (> 0) и набор из N вещественных чисел. В процессах четного ранга (включая главный) вывести сумму чисел из данного набора, в процессах нечетного ранга вывести среднее арифметическое чисел из данного набора.
MPI1Proc9°. В каждом процессе дано целое число N (> 0) и набор из N вещественных чисел. В подчиненных процессах четного ранга вывести сумму чисел из данного набора, в процессах нечетного ранга вывести среднее арифметическое чисел из данного набора, в главном процессе вывести произведение чисел из данного набора.
MPI1Proc10°. В каждом процессе дано целое число N (> 0) и набор из N чисел, причем в подчиненных процессах нечетного ранга (1, 3, …) набор содержит вещественные числа, в подчиненных процессах четного ранга (2, 4, …) — целые числа, а тип элементов в главном процессе зависит от общего количества процессов: если количество процессов нечетное, то набор содержит целые числа, а если четное, то вещественные. В процессах четного ранга (включая главный) вывести минимальный элемент из данного набора, в процессах нечетного ранга вывести максимальный элемент.
|