Министерство науки и образования Российской Федерации
ГОУ ВПО «Красноярский государственный педагогический университет
им. »
Кафедра ИВТ
Введение в суперкомпьютерные технологии
Объем 72 часа, из них 52 ч. аудиторные занятия, 20 ч. самостоятельная работа
Программа для работы с одаренными школьниками
(разработано при поддержке программы стратегического развития
КГПУ им. , проект № 03-1/12)
Красноярск 2012

РАБОЧАЯ ПРОГРАММА
Введение
Цель курса - знакомство и приобретение простейших умений и навыков школьников в области параллельных вычислений и параллельного программирования, подготовка к олимпиадам по программированию и информатике.
Актуальность данного курса определяется образовательной политикой, направленной на реализацию основных направлений информатизации образования.
В данной программе рассматриваются архитектура, классификация параллельных вычислительных систем, средства и инструменты параллельного программирования, основные принципы проектирования параллельных алгоритмов и их реализация различными программными средствами. В рамках курса изучаются основы программирования в технологии OpenMP, MPI и CUDA..
Курс предполагает лекционные, семинарские и лабораторные занятия.
Текущий контроль осуществляется в ходе выполнения заданий на лабораторных работах.. Итоговая аттестация предусмотрена в виде проекта, касающегося программной реализации алгоритмов, представляющих интерес для подготовки школьников. к олимпиадам по информатике
В результате изучения программы обучающийся должен
знать:
· сущность понятий «параллельные вычислительные системы», «параллельные алгоритмы», «кластеры», «методы распараллеливания», «этапы разработки параллельной программы», «архитектура параллельной вычислительной системы», и их роль в современных информационных технологиях в физико-математическом образовании;
· состав, архитектуру и принципы создания параллельных вычислительных систем;
· возможности использования программного обеспечения, и возможности самостоятельного программирования параллельных вычислительных систем с использованием рассмотренных технологий
· языки и методы программирования параллельных вычислительных систем
уметь:
· разрабатывать алгоритмы, реализующие методы параллельного программирования;
· самостоятельно программировать основные компоненты базовых алгоритмов;
· использовать специализированное программное обеспечение для программирования параллельных алгоритмов;
· осуществлять информационно-поисковую деятельность необходимых ресурсов в
владеть навыками:
· разработки алгоритмов, реализующих методы параллельного программирования;
· программирования простых алгоритмов;
Обучающийся в результате изучения программы получает следующие компетенции:
владеет базовыми знаниями по основам параллельных вычислительных (СК-1);
владеет основами современных математических и логико-семантических подходов в формализации, формулировании и реализации задач параллельного программирования (СК-2);
имеет чёткое представление об основных методах решения задач параллельного программирования (СК-3);
способен использовать математический аппарат, методологию программирования и современные компьютерные технологии для реализации методов параллельного программирования (СК-4);
способен использовать специализированное программное обеспечение для решения задач параллельного программирования (СК-5);
способен использовать современные информационные и коммуникационные технологии поиска и применения ресурсов в области параллельного программирования (СК-9).
Содержание курса
МОДУЛЬ 1: Организация и системное программное обеспечение МВС
Введение. Назначение и области применения высокопроизводительной вычислительной техники. Современная классификация суперкомпьютеров. TOP-500. Обоснование перспективности наращивания мощности ВВС. Закон Гроша. Закон Мура
Понятие многопроцессорной вычислительной системы, параллельных вычислений, параллельного алгоритма. Место параллельных вычислений в предметной области информатики. Преимущества и недостатки параллельных алгоритмов.
Классификация вычислительных систем. Архитектура систем типа NUMA, NORMA. Архитектура и принципы построения кластеров. Операционные системы, управляющие параллельными системами. Средства и технологии параллельного программирования.
МОДУЛЬ 2: Технологии параллельного программирования. Язык Си и Фортран. Основные сведения. Основы параллельного программирования на примере библиотеки MPI применительно к языку С++. И Фортран. Структура параллельной программы. Основные функции библиотеки MPI. Парные и коллективные операции передачи сообщений. Введение в параллельное программирование с использованием стандарта MPI. Общая характеристика библиотеки MPI. Базовые понятия MPI: процесс, группа процессов, коммуникатор. SPMD-модель передачи сообщений. Компиляция и запуск MPI-приложений. Структура MPI-программы. Типы данных MPI. Синтаксис базовых функций MPI: инициализация и завершение, определение числа активированных процессоров и номера процесса в группе, передача сообщений между отдельными процессорами.
МОДУЛЬ 3: Технология CUDA программирования графических процессоров. Архитектура графических процессоров nvidia. Расширение языка C для CUDA: Типы данных, директивы ядра, операции работы с памятью, операции обмена данными между CPU и GPU, сетка, блоки, нити, вызов вычислительного ядра.
Технология программирования CUDA. Особенности, сфера применения. Директивы CUDA. Типы данных и встроенные переменные CUDA. Решение векторных и матричных задач в CUDA.
МОДУЛЬ 4: Практика по программированию
Методы распараллеливания алгоритмов. Примеры комбинаторного анализа. Вычислительные задачи на примере теплопроводности. Задачи матричной алгебры.
Выполнение индивидуального задания по технологиям параллельного программирования
Итоговый тест или защита проектов.
Программа для работы с одаренными школьниками в области суперкомпьютерных технологий
УЧЕБНЫЙ ПЛАН
Введение в суперкомпьютерные технологии
Объем 72 часа, из них 52 ч. аудиторные занятия, 20 ч. самостоятельная работа
Цель: знакомство и приобретение простейших умений и навыков школьников в области параллельных вычислений и параллельного программирования
Категория слушателей: учащиеся профильных классов (10-11 кл)
Срок обучения: 8--10 дней
Режим занятий: 4-6 часов в день
№ п/п | Наименование разделов, дисциплин и тем | Всего часов | В том числе: | Формы контроля | |||
лекции | практические, лабораторные, семинары |
| |||||
1 | Организация и системное программное обеспечение МВС | 8 | 4 | 4 | реферат |
| |
1.1 | Тема 1. Введение. Назначение и области применения высокопроизводительной вычислительной техники. Современная классификация суперкомпьютеров. TOP-500. Обоснование перспективности наращивания мощности ВВС. Закон Гроша. Закон Мура. | 2 | 1 | 1 |
| ||
1.2 | Тема 2. Архитектура высокопроизводительных ЭВМ. Определение. Классификация Флинна. Иерархическая организация памяти компьютера. Элементы архитектуры параллельных компьютеров. Конвейерная обработка данных. Векторная обработка данных. Связь между элементами параллельных вычислительных систем. Топология ВС. Статические топологии. Динамические топологии. | 4 | 2 | 2 |
| ||
1.3 | Тема 3. Ресурсы вычислительного комплекса. Процессы. Синхронизация процессов. Распределение времени процессора. Управление памятью. Виртуальная память. Управление внешней памятью. Файловая система. Распределенные ОС. Разделение ресурсов. Распределенные вычисления. Удаленный доступ. | 2 | 1 | 1 |
| ||
| |||||||
2 | Технологии параллельного программирования | 20 | 10 | 10 | тест |
| |
2.1 | Тема 1. Введение в параллельное программирование с использованием стандарта MPI. Общая характеристика библиотеки MPI. Базовые понятия MPI: процесс, группа процессов, коммуникатор. SPMD-модель передачи сообщений. Компиляция и запуск MPI-приложений. Структура MPI-программы. | 4 | 2 | 2 |
| ||
2.2 | Тема 2. Типы данных MPI. Синтаксис базовых функций MPI: инициализация и завершение, определение числа активированных процессоров и номера процесса в группе, передача сообщений между отдельными процессорами. | 4 | 2 | 2 |
| ||
2.3 | Тема 3. Двухточечный обмен сообщениями. Коллективный обмен данными в MPI | 4 | 2 | 2 |
| ||
2.4 | Тема 4. Управление областью взаимодействия и группой процессов. Производные типы данных. | 4 | 2 | 2 |
| ||
2.5 | Тема 5. Введение в параллельное программирование с использованием стандарта OpenMP | 4 | 2 | 2 |
| ||
| |||||||
3 | Технология CUDA программирования графических процессоров. | 12 | 6 | 6 | тест |
| |
3.1 | Тема 1. Архитектура графических процессоров nvidia | 2 | 2 |
| |||
3.2 | Тема 2. Расширение языка C для CUDA: типы данных, директивы ядра, операции работы с памятью, операции обмена данными между CPU и GPU, сетка, блоки, нити, вызов вычислительного ядра. | 4 | 2 | 2 |
| ||
3.3 | Тема 3. Виды памяти. Оптимизация работы с глобальной памятью. | 4 | 2 | 2 |
| ||
3.4 | Тема 4. Выполнение индивидуального задания. | 2 | 2 |
| |||
4 | Практика по программированию | 12 | 12 | зачет |
| ||
4.1 | Выполнение индивидуального задания по технологиям параллельного программирования | 6 | 6 |
| |||
4.2 | Выполнение индивидуального задания по методам параллельных вычислений | 6 | 6 |
| |||
Итого | 52 | 20 | 32 | Зачет |
| ||
КАРТА литературного обеспечения дисциплины
№ п/п | Наименование | Наличие место/ (кол-во экз.) | Потребность | Примечания |
Обязательная литература | ||||
1 | Сокольская в параллельное программирование.- Красноярск, РИО КГПУ, | |||
2 | , Вл. В. Воеводин. Параллельные вычисления. - Спб.: БХВ-Петербург, 2004. | |||
3 | С. Немнюгин, О. Стесик. Параллельное программирование для многопроцессорных вычислительных систем. – Спб.: БХВ-Петербург, 2002. | |||
4 | . Теория и практика параллельных вычислений. - Интернет-университет информационных технологий - БИНОМ, 2007 | |||
5 | , Харламов работы с технологией CUDA. – Москва, ДМК, 2010 | |||
Дополнительная литература | ||||
5 | Кнут. Искусство программирования. В 3-х томах | |||
6 | Себеста. Основные концепции языков программирования. | |||
7 | Герберт Шилдт. Полный справочник по С++. Четвертое издание. – М.-Спб.-Киев: Изд. дом «Вильямс», 2009. | |||
Методические пособия, рекомендации | ||||
8 | . Введение в параллельные вычисления. – М., 2002. |


