https://github.com/toadharvard/comp-math
https://github.com/toadharvard/comp-math
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/toadharvard/comp-math
- Owner: toadharvard
- License: mit
- Created: 2024-03-01T00:34:47.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-27T23:05:14.000Z (about 2 years ago)
- Last Synced: 2025-02-07T08:51:26.365Z (over 1 year ago)
- Language: Jupyter Notebook
- Size: 16.6 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Вычислительная математика
## Задача 1. Библиотека OpenMP
### Описание
Давайте рассмотрим книгу В. П. Гергеля “Высокопроизводительные вычисления для
многоядерных многопроцессорных систем” (2010). В главе 11 "Решение
дифференциальных уравнений в частных производных", описывающей проблему
численного решения задачи Дирихле для уравнения Пуассона, содержится алгоритм
11.6 (Блочный подход к методу волновой обработки данных) её решения, который
может быть эффективно распараллелен при помощи OpenMP.
В первой части задания вам следует просто разобраться в этом алгоритме и
реализовать его. Обратите внимание, что он возникает итерационно. Например,
алгоритм 11.2 является корректным, но распараллеливание приводит к замедлению в
25 раз вместо ускорения.
Вторая часть задания — провести численный эксперимент, исследующий
эффективность (или неэффективность) параллельной версии. Модельные краевые
задачи необходимо выбрать самостоятельно, исходя из того, что вы хотели бы теми
или иными экспериментами продемонстрировать. Это наиболее сложная часть
задания.
Комментарии:
1) Эта задача относится главным образом не к вычислительной математике, поскольку
численный метод здесь весьма прост, а к параллельному программированию. Здесь
можно проследить, как, зная специфику предметной области (в данном случае —
метода решения уравнения), можно как весьма эффективно, так и совершенно
неэффективно организовать параллелизм по данным.
2) В качестве документации по OpenMP, снабжённой комментариями, можно использовать
главу 5 ("Параллельное программирование с использованием OpenMP") той же книги
или любые другие источники.
### Решение
Решение представлено в [Jupyter Notebook](/1/task1.ipynb)
# Лицензия
Исходный код распространятся по лицензии MIT, подробнее [LICENCE](./LICENCE)