Основы mpi: Простейшая тестовая программка


Download 238.62 Kb.
Sana06.11.2023
Hajmi238.62 Kb.
#1751222
TuriПрактическая работа

МИНИСТЕРСТВО ЦИФРОВЫХ ТЕХНОЛОГИЙ
РЕСПУБЛИКИ УЗБЕКИСТАНА
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛЬ-ХОРАЗМИ
Отчет
по практической работе №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()
Download 238.62 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling