==== Высокопроизводительные вычисления ==== Лекции лекториума [[https://www.youtube.com/playlist?list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy|Курс: Параллельные вычисления с использованием стандартов MPI, OpenMP, OpenACC]] 10 лекций 8-) ==== Лекции по порядку ==== - [[https://www.youtube.com/watch?v=cNz3PlR8SyA&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=1&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC | Что такое параллельные вычисления ]], Книга по [[https://hpc.icc.ru/documentation/unn/gergel.pdf|теории параллельного программирования]] - [[https://www.youtube.com/watch?v=pEBWTq90p5s&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=2&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC | Архитектуры вычислительных средств, программ, структур данных]] - [[https://www.youtube.com/watch?v=XwN0__nCd8M&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=3&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|Введение в Message Passing Interface (MPI)]], Учебник по [[https://hpc.icc.ru/documentation/unn/grishagin.pdf|MPI]]. - [[https://www.youtube.com/watch?v=cAys5U8Xoh8&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=4&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|MPI, коллективный обмен данными (коллективные операции)]] - [[https://www.youtube.com/watch?v=vwicTmEtV-k&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=5&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|MPI, Передача данных без блокировки]] - [[https://www.youtube.com/watch?v=WMS0sTHvT6U&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=6&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|Введение в OpenMP]]. Учебник по [[https://hpc.icc.ru/documentation/msu/OpenMP.pdf|OpenMPI]] - [[https://www.youtube.com/watch?v=2pmkbiG6yRc&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=7&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|OpenMP(продолжение) специальные pragmы]] - [[https://www.youtube.com/watch?v=xur7kSjjM54&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=8&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|Введение OpenACC - технология переноса вычислений с CPU на акселераторы (GPU)]] - [[https://www.youtube.com/watch?v=mPYLhsyP2pU&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=9&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|OpenACC, практика, рассмотрение продвинутых техник программирования]] - [[https://www.youtube.com/watch?v=dvRlob1Gf8E&list=PL-_cKNuVAYAWPC1WfK7_6v-gFOm4i7RKy&index=10&ab_channel=%D0%9B%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%83%D0%BC|OpenACC, продвинутые техники (продолжение), инструменты сбора и анализа метрик]] Литература по параллельному программированию - [[https://hpc.icc.ru/foruser/library.html|здесь]] ==== Дополнительные разделы ==== - Обзор методов повышения производительности вычислительных систем - Классы алгоритмов, эвристические алгоритмы, другие интенсивные методы - Экстенсивные методы, параллельное и высокопроизводительные вычисления (HPC) - Модели параллельных схем алгоритмов, сильная и слабая связность ветвей алгоритмов - Библиотека ScaLAPACK для разработки параллельных схем алгоритмов, основанных на манипуляции с матрицами. - Сети Петри, Графовое представление вычислительного процесса - Построение параллельных схем средствами операционной системы (IPC). - Языки Erlang/Elixir. - Распределение потока данных между вычислительными узлами, очереди сообщений RabbitMQ. ===== Варианты заданий ===== вариант использования технологии: - MPI - OpenMP - OpenACC - CUDA - Threading building blocks - ScaLAPACK - Erlang/Elixir - Hskell Вариант практической задачи (нас интересуют больше слабосвязанные ветви алгоритмов) - Метод ветвей и границ - MiniMax с отсечением (вариант метода ветвей и границ) - Уравнение теплопроводности на сетке - Реализация схемы Map-Reduce - Алгоритм неиерархической кластеризации с использованием нечеткой логики - Выполнение кластерного анализа на большой объеме данных с использованием беггинга - Свой согласованный вариант. Архив методичек "среднего качества" {{pp:parprog.7z|Здесь}}. Из них можно брать задания (они только примитивные очень). **Замечание**: В методичке по MPI не указывается явно, что между вычислителями следует пересылать не весь массив данных, а только необходимую долю.