Skip to content

Кутергин Валентин. Технология SEQ-MPI. Интегрирование - метод трапеций. Вариант 20.#32

Merged
allnes merged 22 commits intolearning-process:masterfrom
VALancaster:kutergin_v_trapezoid_method_of_integration
Dec 10, 2025
Merged

Кутергин Валентин. Технология SEQ-MPI. Интегрирование - метод трапеций. Вариант 20.#32
allnes merged 22 commits intolearning-process:masterfrom
VALancaster:kutergin_v_trapezoid_method_of_integration

Conversation

@VALancaster
Copy link
Copy Markdown
Contributor

@VALancaster VALancaster commented Nov 13, 2025

Описание

Была сделана задача параллелизма на примере задачи интегрирования методом трапеций.

  • Задача: Интегрирование - метод трапеций
  • Вариант: 20
  • Технология: SEQ + MPI
  • Описание: Реализованы последовательная (SEQ) и параллельная (MPI) версии алгоритма численного интегрирования методом трапеций. Параллельная версия использует блочное распределение данных и корректно обрабатывает случаи, когда общее число итераций n не делится нацело на количество процессов. Были написаны функциональные тесты (включая тесты со случайными данными) и тесты производительности для обеих реализаций. Код отформатирован и проверен с помощью pre-commit и clang-tidy.

Чек-лист

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

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Nov 13, 2025

Codecov Report

❌ Patch coverage is 96.77419% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 94.34%. Comparing base (ab67334) to head (c667f9c).

Files with missing lines Patch % Lines
..._integration/mpi/src/trapezoid_integration_mpi.cpp 97.56% 1 Missing ⚠️
...ation/seq/src/trapezoid_integration_sequential.cpp 95.23% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #32      +/-   ##
==========================================
+ Coverage   94.03%   94.34%   +0.31%     
==========================================
  Files          15       17       +2     
  Lines         486      548      +62     
  Branches      181      191      +10     
==========================================
+ Hits          457      517      +60     
- Misses          0        2       +2     
  Partials       29       29              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

return true;
}

bool TrapezoidIntegrationMPI::RunImpl() {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sending the data to different ranks from rank 0 is missing

namespace // анонимное пространство имен
{

// NOLINTNEXTLINE(readability-function-cognitive-complexity)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this nolint

}

// массив с наборами тестовых данных
const std::array<TestType, 6> kTestCases = {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too few test cases for functional testing

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправил:

  1. Лишний комментарий NOLINT убран.
  2. Количество функциональных тестов было значительно увеличено для лучшего покрытия кода.
    По поводу отправки данных в MPI-версии: эта логика была реализована в методе PreProcessingImpl в соответствии с жизненным циклом задачи, а не в RunImpl.
    Пожалуйста, посмотрите обновленную версию.

@VALancaster VALancaster requested a review from allnes December 1, 2025 12:52
Comment thread .devcontainer/devcontainer.json Outdated
}
},
"postCreateCommand": "python3 -m pip install -r requirements.txt"
"postCreateCommand": "python3 -m pip install -r requirements.txt --break-system-packages --ignore-installed"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, do not modify common files in your PR

@@ -0,0 +1,76 @@
{
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, remove

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здравствуйте!
Внес все финальные исправления по вашим замечаниям. Вся актуальная работа находится в последних коммитах.
(К сожалению, из-за git reset в процессе отладки в историю попали старые рабочие коммиты. Прошу прощения за "шум", вся финальная версия — в последнем состоянии ветки).

@VALancaster VALancaster force-pushed the kutergin_v_trapezoid_method_of_integration branch from d6e914e to c667f9c Compare December 4, 2025 09:32
@VALancaster VALancaster requested a review from aobolensk December 4, 2025 10:16
@allnes allnes merged commit c7ed234 into learning-process:master Dec 10, 2025
41 checks passed
AzotEye pushed a commit to AzotEye/ppc-2025-processes-informatics that referenced this pull request Dec 14, 2025
…й. Вариант 20. (learning-process#32)

## Описание
Была сделана задача параллелизма на примере задачи интегрирования
методом трапеций.

- **Задача:** Интегрирование - метод трапеций
- **Вариант:** 20
- **Технология:** SEQ + MPI
- **Описание:** Реализованы последовательная (SEQ) и параллельная (MPI)
версии алгоритма численного интегрирования методом трапеций.
Параллельная версия использует блочное распределение данных и корректно
обрабатывает случаи, когда общее число итераций `n` не делится нацело на
количество процессов. Были написаны функциональные тесты (включая тесты
со случайными данными) и тесты производительности для обеих реализаций.
Код отформатирован и проверен с помощью `pre-commit` и `clang-tidy`.

---

## Чек-лист
- [x] **Статус CI**: Все CI-задачи (сборка, тесты, генерация отчёта)
успешно проходят на моей ветке в моем форке
- [x] **Директория и именование задачи**: Я создал директорию с именем
`kutergin_v_trapezoid_method_of_integration`
- [x] **Полное описание задачи**: Я предоставил полное описание задачи в
теле pull request
- [x] **clang-format**: Мои изменения успешно проходят `clang-format`
локально в моем форке (нет ошибок форматирования)
- [x] **clang-tidy**: Мои изменения успешно проходят `clang-tidy`
локально в моем форке (нет предупреждений/ошибок)
- [x] **Функциональные тесты**: Все функциональные тесты успешно
проходят локально на моей машине
- [x] **Тесты производительности**: Все тесты производительности успешно
проходят локально на моей машине
- [x] **Ветка**: Я работаю в ветке, названной точно так же, как
директория моей задачи 'kutergin_v_trapezoid_method_of_integration', а
не в `master`
- [x] **Правдивое содержание**: Я подтверждаю, что все сведения,
указанные в этом pull request, являются точными и достоверными
AleksndrSakharov pushed a commit to AleksndrSakharov/ppc-2025-processes-informatics that referenced this pull request Dec 16, 2025
…й. Вариант 20. (learning-process#32)

## Описание
Была сделана задача параллелизма на примере задачи интегрирования
методом трапеций.

- **Задача:** Интегрирование - метод трапеций
- **Вариант:** 20
- **Технология:** SEQ + MPI
- **Описание:** Реализованы последовательная (SEQ) и параллельная (MPI)
версии алгоритма численного интегрирования методом трапеций.
Параллельная версия использует блочное распределение данных и корректно
обрабатывает случаи, когда общее число итераций `n` не делится нацело на
количество процессов. Были написаны функциональные тесты (включая тесты
со случайными данными) и тесты производительности для обеих реализаций.
Код отформатирован и проверен с помощью `pre-commit` и `clang-tidy`.

---

## Чек-лист
- [x] **Статус CI**: Все CI-задачи (сборка, тесты, генерация отчёта)
успешно проходят на моей ветке в моем форке
- [x] **Директория и именование задачи**: Я создал директорию с именем
`kutergin_v_trapezoid_method_of_integration`
- [x] **Полное описание задачи**: Я предоставил полное описание задачи в
теле pull request
- [x] **clang-format**: Мои изменения успешно проходят `clang-format`
локально в моем форке (нет ошибок форматирования)
- [x] **clang-tidy**: Мои изменения успешно проходят `clang-tidy`
локально в моем форке (нет предупреждений/ошибок)
- [x] **Функциональные тесты**: Все функциональные тесты успешно
проходят локально на моей машине
- [x] **Тесты производительности**: Все тесты производительности успешно
проходят локально на моей машине
- [x] **Ветка**: Я работаю в ветке, названной точно так же, как
директория моей задачи 'kutergin_v_trapezoid_method_of_integration', а
не в `master`
- [x] **Правдивое содержание**: Я подтверждаю, что все сведения,
указанные в этом pull request, являются точными и достоверными
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.

4 participants