Теоретические основы параллельного программирования

В. Г. Корнеев
бакалавриат, семестр 6

Данная дисциплина является одной из основных дисциплин цикла, формирующего подготовку бакалавра в области высокоэффективных вычислений на современных вычислительных системах. Она представляет собой комплекс знаний, умений и навыков, позволяющих овладеть основами теории параллельных вычислений на современных многопроцессорных компьютерах, а также получить некоторые представления о практическом применении распараллеливания, его реализуемость, оптимизацию времени работы по его созданию и отладке.
Отдельные параметры односеместрового курса могут варьироваться по степени сложности в зависимости от уровня подготовки студентов. Курс строится на принципах компетентностного, деятельностного подхода к вычислениям как средству обоснованного проведения различных расчетов, с применением высокопроизводительных компьютеров с распределенной памятью, что предполагает классификацию содержания обучения по следующим видам деятельности: изучение основных концепций параллельного программирования, изучение средств распараллеливания, изучение элементов программирования, составление алгоритмов, проведение простейших вычислений.
Основным методологическим принципом построения программы курса, равно как и всей концепции обучения основам распараллеливания в целом, является принцип поэтапного системного накопления знаний и формирования необходимых компетенций по модели: от простого и/или знакомого — к сложному и/или незнакомому, а основной методологической стратегией прохождения отдельных разделов программы является ступенчатость и цикличность, предусматривающие постепенный возврат к ранее усвоенному материалу на более высоком языковом и концептуальном уровне.
Цель изучения дисциплины: обучение студентов методам распараллеливания вычислений с использованием мощных вычислительных систем с распределенной памятью, развитие у студентов доказательного, логического мышления; знакомство с различными языками, применяемыми на упомянутых системах, подготовка к самостоятельному решению различных алгоритмических задач с использованием этих систем.
Результатом учебных занятий явятся усвоение методов распараллеливания вычислений с использованием мощных вычислительных систем, развитие у студентов доказательного, логического мышления; знакомство с различными языками, применяемыми на упомянутых системах, возможность самостоятельно решать простые алгоритмические задачи с использованием этих систем.