МИНИСТЕРСТВО ЦИФРОВЫХ ТЕХНОЛОГИЙ
РЕСПУБЛИКИ УЗБЕКИСТАНА
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛЬ-ХОРАЗМИ
Отчет
по практической работе №1
Основы MPI: Простейшая тестовая программка
Проверил: Туракулов Ш.Х.
Выполнил: Сотиболдиев Ш. Б.
Группа: 221-20
Ташкент
2023 г.
Практическая работа №1
Тема: Основы MPI: Простейшая тестовая программка
Цель задачи:
Написать простую параллельную программу с использованием MPI, которая вычисляет сумму квадратов чисел от 1 до N, где N - это число, передаваемое в программу в качестве аргумента командной строки.
Выполнение работы
Вариант – 18 (N = 18)
Рисунок 1. Код программы в VS Code.
Листинг программы
from mpi4py import MPI
import sys
def compute_partial_sum(start, end):
partial_sum = 0
for i in range(start, end + 1):
partial_sum += i * i
return partial_sum
def main():
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
if len(sys.argv) < 2:
if rank == 0:
print("Применение: python prac_1.py N")
comm.Abort()
N = int(sys.argv[1])
chunk_size = N // size
start = rank * chunk_size + 1
end = (rank + 1) * chunk_size
if rank == size - 1:
end = N
partial_sum = compute_partial_sum(start, end)
total_sum = comm.reduce(partial_sum, op=MPI.SUM, root=0)
if rank == 0:
print(f"Сумма квадратов чисел от 1 до {N} равна {total_sum}")
MPI.Finalize()
if __name__ == "__main__":
main()
Do'stlaringiz bilan baham: |