Skip to content

Черных Севастьян. Технология SEQ. Вычисление многомерных интегралов с использованием многошаговой схемы (метод трапеций). Вариант 10#218

Merged
allnes merged 11 commits intolearning-process:masterfrom
banp2892:chernykh_s_trapezoidal_integration
Mar 7, 2026

Conversation

@banp2892
Copy link
Contributor

@banp2892 banp2892 commented Mar 2, 2026

Описание

  • Задача: Вычисление многомерных интегралов с использованием многошаговой схемы (метод трапеций).
  • Вариант: 10
  • Технология: SEQ
  • Описание вашей реализации и отчёта.

Реализация представляет собой последовательный алгоритм для приближенного вычисления многомерных интегралов произвольной размерности по составной формуле трапеций. Был использован обход n-мерного пространства с помощью вектора счетчиков, для работаты с любым количеством измерений. Входные данные содержат векторы границ интегрирования, количество шагов для каждой оси и саму подынтегральную функцию в формате std::function.

В процессе работы алгоритм вычисляет координаты каждого узла сетки и определяет его геометрический вес: точки внутри области имеют максимальный коэффициент, а точки на гранях, ребрах и вершинах гиперкуба получают пониженные веса (умножение на 0.5 за каждую пограничную координату).

Итоговый результат формируется как сумма произведений значений функции на веса, которая в конце масштабируется на произведение шагов по всем измерениям. Корректность работы подтверждается набором функциональных тестов для 1D, 2D и 3D пространств, а эффективность проверена на сетке из 64 миллионов элементов.


Чек-лист

  • Статус CI: Все CI-задачи (сборка, тесты, генерация отчёта) успешно проходят на моей ветке в моем форке
  • Директория и именование задачи: Я создал директорию с именем <фамилия>_<первая_буква_имени>_<короткое_название_задачи>
  • Полное описание задачи: Я предоставил полное описание задачи в теле pull request
  • clang-format: Мои изменения успешно проходят clang-format локально в моем форке (нет ошибок форматирования)
  • clang-tidy: Мои изменения успешно проходят clang-tidy локально в моем форке (нет предупреждений/ошибок)
  • Функциональные тесты: Все функциональные тесты успешно проходят локально на моей машине
  • Тесты производительности: Все тесты производительности успешно проходят локально на моей машине
  • Ветка: Я работаю в ветке, названной точно так же, как директория моей задачи
    (например, nesterov_a_vector_sum), а не в master
  • Правдивое содержание: Я подтверждаю, что все сведения, указанные в этом pull request, являются точными и
    достоверными

@banp2892 banp2892 requested a review from allnes as a code owner March 2, 2026 11:03
Ramzan8-88 pushed a commit to Ramzan8-88/ppc-2026-threads that referenced this pull request Mar 4, 2026
…ножение матрицы на вектор. Вариант 12. Задание 2 (learning-process#218)

## Description

Реализованы последовательная (SEQ) и параллельная (MPI) версии алгоритма
умножения матрицы на вектор с использованием ленточной вертикальной
схемы распределения данных. Параллельная версия использует распределение
матрицы по столбцам между процессами с использованием неблокирующих
операций `MPI_Isend` для параллельной отправки данных и перекрытия
вычислений и коммуникаций. Все функциональные тесты успешно пройдены,
включая граничные случаи.

**Особенности реализации:**
- Ленточная вертикальная схема: матрица делится по столбцам между
процессами
- Неблокирующие операции `MPI_Isend` для параллельной отправки данных от
процесса 0 к остальным процессам
- Перекрытие вычислений и коммуникаций на процессе 0
- Корректная агрегация частичных результатов через `MPI_Reduce`
- Все вспомогательные методы сделаны статическими для соответствия
требованиям clang-tidy

- Task: Умножение матрицы на вектор (ленточная вертикальная схема)

- Variant: 2

- Technology: MPI + SEQ

- Summary: Реализованы последовательная и параллельная (MPI) версии
алгоритма умножения матрицы на вектор с использованием ленточной
вертикальной схемы распределения данных. Параллельная версия использует
неблокирующие операции для эффективной передачи данных. Проведены тесты
производительности, показавшие влияние коммуникационных издержек на
эффективность распараллеливания. Все функциональные тесты пройдены.

---

## Checklist

- [x] CI is green in my fork (build, tests, docs)

- [x] Task folder is named `<last>_<initial>_<short>` and matches branch
name

- [x] clang-format passed locally

- [x] clang-tidy passed locally (no warnings/errors introduced)

- [x] Functional tests pass locally

- [x] Performance tests pass locally

- [x] Report (`report.md`) is added and follows the template

- [x] I confirm that provided information is truthful
@allnes allnes merged commit 9641d75 into learning-process:master Mar 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants