Параллельное программирование

Специальность / Speciality: 6-05-0533-07 Математика и компьютерные науки / Mathematics and computer science

Профилизация / Profiling: Веб-программирование и интернет-технологии / Web Development and Internet Technologies 

Учебная дисциплина, модуль / Academic discipline, module: Параллельное программирование, модуль «Веб-программирование» / Parallel programming , module «Web programming»

 

Краткое содержание учебной дисциплины, модуля / Brief summary

Вносится описание на русском языке

Цель учебной дисциплины: дать практические навыки построения моделей и алгоритмов параллельных программ для различных архитектур суперкомпьютеров.

Задача учебной дисциплины: изучение потенциальных возможностей организации параллельных вычислений для достижения ускорения вычислений, повышения точности результатов и размерности решаемых задач, надежности вычислительных систем, методов синхронизации взаимодействующих параллельных процессов, проектирования параллельных программ.

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

Программа отражает профессиональную направленность дисциплины и учитывает современные потребности в математическом образовании студентов-программистов. Программа составлена по модульному принципу, позволяющему учитывать динамику достижений в области параллельного программирования.

Вносится описание на английском языке

A description in Russian is provided.

The objective of this course is to provide practical skills in constructing models and algorithms for parallel programs for various supercomputer architectures.

The objective of this course is to study the potential of parallel computing to accelerate computations, improve the accuracy of results and the dimensionality of problems being solved, the reliability of computing systems, methods for synchronizing interacting parallel processes, and the design of parallel programs.

Current issues in the field of informatization include: developing mathematical models and methods for optimally organizing parallel competing processes; deriving criteria for the efficiency and optimality of implementing given computation volumes under conditions of unlimited and limited parallelism in various modes of synchronous and asynchronous interaction of competing processes during distributed and concentrated processing; and, on this basis, solving problems and challenges in optimally mapping algorithms and corresponding software implementations from various subject areas, primarily logical-combinatorial problems and problems of mathematical physics, taking into account the architectural features of multiprocessor systems and complexes under conditions of massive parallelism; and developing and validating computational acceleration techniques. The program reflects the professional focus of the discipline and addresses the current needs of mathematical education for programming students. The program is designed using a modular approach to accommodate the evolving advances in parallel programming.

Формируемые компетенции / The formed competences

Освоение учебной дисциплины «Параллельное программирование» должно обеспечить формирование следующих специализированных компетенций:

Выполнять проектирование, разработку, тестирование, и маркетинг информационных решений в сети Интернет с учетом их последующего масштабирования и обработки возникающих больших объемов данных.

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

Mastering the «Parallel Programming» course should develop the following specialized competencies:

Design, develop, test, and market online information solutions, taking into account their subsequent scaling and processing of large volumes of data.

Develop information solutions for data search and extraction, formulate and test applied hypotheses based on data, develop specialized machine learning models and data analysis algorithms, deploy models, including in a cloud environment, and perform visualization and business analysis of the resulting solutions.

Результаты обучения (знать, уметь, владеть) / Learning outcomes (know, can, be able)

В результате изучения дисциплины студент должен:

знать:

— основные математические модели и методы оптимальной организации параллельных конкурирующих процессов, критерии эффективности и оптимальности реализации заданных объемов вычислений в условиях неограниченного и ограниченного параллелизма; синхронные и асинхронные режимы взаимодействия конкурирующих процессов при распределенной и сосредоточенной обработке; способы решения задач оптимального отображения алгоритмов и соответствующих программных реализаций из различных предметных областей на различные архитектуры суперкомпьютеров; приемы и методы ускорения вычислений для систем массового параллелизма;

уметь: 

— проводить анализ и выполнять моделирование параллельных процессов; строить параллельные алгоритмы с учетом архитектуры суперкомпьютеров; проектировать параллельные программы; проводить оптимизацию параллельных процессов и программ.

иметь навык:

— современными системами и языками параллельного программирования, методами оптимальной организации параллельных процессов и программ, приемами ускорения вычислений.

Upon completion of this course, students should:

know:

— Fundamental mathematical models and methods for optimally organizing parallel competing processes, criteria for the efficiency and optimality of implementing given computation volumes under conditions of unlimited and limited parallelism; synchronous and asynchronous modes of interaction between competing processes during distributed and concentrated processing; methods for solving problems of optimally mapping algorithms and corresponding software implementations from various subject areas to various supercomputer architectures; techniques and methods for accelerating computations for massively parallel systems;

be able to:

— Analyze and simulate parallel processes; Build parallel algorithms taking into account supercomputer architecture; Design parallel programs; Optimize parallel processes and programs.

have the following skills:

— Modern parallel programming systems and languages, methods for optimally organizing parallel processes and programs, and techniques for accelerating computations.

Семестр изучения учебной дисциплины, модуля / Semester of study

6 очной формы  8 семестрах заочной формы.

6 full-time and 8 part-time semesters.

Пререквизиты / Prerequisites

   

Трудоемкость в зачетных единицах (кредитах) / Credit units

3 зачетные единицы.

3 credits.

Количество аудиторных часов и часов самостоятельной работы / Academic hour of students’ class work, 

hours of self-directed learning

Всего 102 часов, из них 68 аудиторных часов и 34 часов самостоятельной работы.

A total of 102 hours, of which 68 academic

hours of students’ class work and 34 hours

of self-directed learning.

Требования и формы текущей и промежуточной аттестации / Requirements and forms of current and interim certification

Для диагностики компетенций могут использоваться следующие средства текущего контроля: 

  1. Тестовые задания по отдельным темам дисциплины.
  2. Коллоквиум.
  3. Устный опрос.
  4. Защита лабораторных работ.
  5. Защита реферативных работ.
  6. Контрольные работы.
  7. Выступление с докладом

Формой аттестации по дисциплине «Параллельное программирование» учебным планом предусмотрен зачет.

The following ongoing assessment tools can be used to assess competencies:

1. Test assignments on specific topics within the course.

2. Colloquium.

3. Oral questioning.

4. Laboratory work defense.

5. Abstract defense.

6. Tests.

7. Presentation of a report.

The curriculum provides for a credit assessment for the course «Parallel Programming.»