Дополнительная литература - Красноярский государственный

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