Отчёт по практической работы


Download 4.19 Kb.
Sana06.11.2023
Hajmi4.19 Kb.
#1751177
TuriОтчет



МИНИСТЕРСТВО ЦИФРОВЫХ ТЕХНОЛОГИЙ РЕСПУБЛИКИ УЗБЕКИСТАН ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛ-ХОРАЗМИЙ
ФАКУЛЬТЕТ КОМПЬЮТЕРНОГО ИНЖИНИРИНГА

Отчёт по практической работы 1



Группа: 221-20
Выполнил: Зайнетдинов Марсель

ТАШКЕНТ 2023


ПРАКТИЧЕСКАЯ РАБОТА 1
Тема: Основы MPI: Простейшая тестовая программка

Цель работы: Написать простую параллельную программу с использованием MPI, которая вычисляет сумму квадратов чисел от 1 до N, где N - это число, передаваемое в программу в качестве аргумента командной строки.
from mpi4py import MPI
import sys

# Инициализация MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()

# Проверка на количество аргументов командной строки
if len(sys.argv) != 2:
if rank == 0:
print("Использование: python mpi_sum_of_squares.py <число>")
MPI.Finalize()
sys.exit(1)

# Получение числа из аргумента командной строки
try:
n = int(sys.argv[1])
except ValueError:
if rank == 0:
print("Ошибка: Аргумент командной строки должен быть целым числом.")
MPI.Finalize()
sys.exit(1)

# Разделение интервала между процессами
interval_size = n // size
start = rank * interval_size + 1
end = (rank + 1) * interval_size if rank < size - 1 else n

# Вычисление суммы квадратов чисел внутри каждого процесса
local_sum = sum(i ** 2 for i in range(start, end + 1))

# Сбор результатов с каждого процесса
total_sum = comm.reduce(local_sum, op=MPI.SUM, root=0)

# Вывод результата на главном процессе
if rank == 0:
print(f"Сумма квадратов чисел от 1 до {n} равна {total_sum}")

# Завершение выполнения MPI
MPI.Finalize()
Этот код выполняет инициализацию MPI, разделяет интервал между процессами, вычисляет сумму квадратов чисел внутри каждого процесса, собирает результаты и выводит общую сумму на главном процессе. Код также правильно обрабатывает разное количество процессов и произвольные значения числа n.
Download 4.19 Kb.

Do'stlaringiz bilan baham:




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