Подпись: Федеральное агентство по образованию
ГОУ ВПО «Кемеровский государственный университет»
Кафедра ЮНЕСКО по новым информационным технологиям

«УТВЕРЖДАЮ»
Декан математического факультета

________________  Н.Н. Данилов
 «        »                               20    г.


РАБОЧАЯ ПРОГРАММА

по курсу "Новые информационные технологии "

Специальность: 010100 «Математика», ЕН.Р.00
Факультет:  Математический



Курс:					V	
Семестр:				9	
	
Лекции:				18	Экзамен:	9 семестр
практические занятия:			
лабораторные занятия: 		18	
Самостоятельная работа                 3	
Всего часов:				39	
Составитель:  доцент, Стуколов С.В.	


Кемерово, 2008

Рабочая программа дисциплины регионального (вузовского) компонента цикла ЕН.Р.00 «Новые информационные технологии» составлена на основании Государственного образовательного стандарта высшего профессионального образования второго поколения по специальности 010100 «Математика», утвержденном 15 марта 2000 г., №  414 ЕН / СП

 

 

 

 

Рабочая программа обсуждена на заседании кафедры

Протокол №_____от «_____»_________200__г.

Зав.кафедрой ____________________________ К.Е. Афанасьев

 

 

 

 

 

Одобрено методической комиссией

Протокол №_____от «_____»_________200__г.

Председатель ____________________________


 

1.Пояснительная записка

Рабочая программа полностью соответствует Государственному образовательному стандарту высшего профессионального образования второго поколения по специальности 010503 «Математическое обеспечение и администрирование информационных систем».

 

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

 

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

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

Основными задачами изучения дисциплины являются:

-       знакомство с основными направлениями в области организации параллельных вычислений на многопроцессорных вычислительных системах;

-       знакомство с технологиями параллельного программирования;

-       приобретение навыков параллельного программирования с использованием интерфейса передачи сообщений;

-       приобретение навыков распараллеливания алгоритмов матричной алгебры.

 

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

 

Требования ГОС ВПО к обязательному минимуму содержания дисциплины.

Индекс

Наименование дисциплин и их основные разделы

Всего

часов

ЕН.Р.00

Региональный (вузовский) компонент, в том числе дисциплины по выбору студента

 

 

Определяется вузом

 

 

Структура учебной дисциплины. Дисциплина включает следующие разделы: многопроцессорные вычислительные системы; парадигмы, модели и технологии параллельного программирования; параллельное программирование с использованием интерфейса передачи сообщений MPI, распараллеливание алгоритмов матричной алгебры.

 

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

 

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

 

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

 

Виды контроля знаний и их отчетности. По разделам основной части курса предусмотрены самостоятельные задания, семестровые задания, для выполнения которых требуются элементы исследовательской работы, коллоквиум, тест. По итогам изучения курса предусмотрен экзамен.

 

2.Тематический план

Название и содержание разделов, тем, модулей

Объем часов

Формы  контроля

Общий

Аудиторная работа

Самостоятельная работа (в часах)

лекции

практические

1

2

3

4

5

6

7

Очная форма обучения

1.  

Основные направления развития высокопроизводительных компьютеров

2

2

 

 

тестовые задания

2.  

Оценки производительности вычислительных систем

4

2

2

 

тестовые задания

3.  

Классификация многопроцессорных вычислительных систем

2

2

 

 

тестовые задания

4.  

Парадигмы, модели и технологии параллельного программирования

2

2

 

 

тестовые задания

5.  

Параллельное программирование с использованием интерфейса передачи сообщений MPI

21

4

14

3

тестовые задания, самостоятельные задания

6.  

Основные понятия параллелизма алгоритмов

2

2

 

 

тестовые задания

7.  

Алгоритмы матричной алгебры и их распараллеливание

6

4

2

 

тестовые задания,

семестровое задание

 

Итого:

39

18

18

3

 

 

1.     Содержание дисциплины

3.1 Содержание теоретического курса

1.     Основные направления развития высокопроизводительных компьютеров

Пути достижения параллелизма: независимость функционирования отдельных функциональных устройств, избыточность элементов вычислительной системы, дублирование устройств. Векторная и конвейерная обработка данных. Многопроцессорная и многомашинная, параллельная обработка данных. Закон Мура, сдерживающие факторы наращивания количества транзисторов на кристалле и частоты процессоров. Привлекательность подхода параллельной обработки данных. Сдерживающие факторы повсеместного внедрения параллельных вычислений. Ведомственные, национальные и другие программы, направленные на развитие параллельных вычислений в России. Необходимость изучения дисциплины параллельного программирования. Перечень критических задач, решение которых без использования параллельных вычислений затруднено или вовсе невозможно. Содержание курса параллельного программирования – характеристика основных составляющих блоков лекционного курса, практических занятий. Список основной и дополнительной литературы.

 

2.     Оценки производительности вычислительных систем

Стандартные методики измерения производительности MIPS, MFLOPS и т.д. Производительность кластера – латентность, пропускная способность. Общепризнанные методики измерения производительности многопроцессорных вычислительных систем. TOP500 – мировой рейтинг суперкомпьютеров (краткая характеристика первых 5-и суперкомпьютеров мира). TOP50 – Российский рейтинг суперкомпьютеров (краткая характеристика первых 5-и суперкомпьютеров России). Перечень с характеристикой Сибирских суперкомпьютерных центров (Томск, Новосибирск, Красноярск, Омск). Состояние вопроса параллельных вычислений в Кемеровском государственном университете

 

3.     Классификация многопроцессорных вычислительных систем

Системы с распределенной, общей памятью, примеры систем. Массивно-параллельные системы (MPP). Симметричные мультипроцессорные системы (SMP). Параллельные векторные системы (PVP). Системы с неоднородным доступом к памяти (Numa), примеры систем. Компьютерные кластеры – специализированные и полнофункциональные. История возникновения компьютерных кластеров – проект Beowulf. Мета-компьютинг – примеры действующих проектов. Классификация Флинна, Шора и т.д. Организация межпроцессорных связей – коммуникационные топологии. Примеры сетевых решений для создания кластерных систем. Современные микропроцессоры, используемые при построении кластерных решений. Компания Т-платформы.

 

4.     Парадигмы, модели и технологии параллельного программирования

Функциональный параллелизм, параллелизм по данным. Парадигма master-slave. Парадигма SPMD. Парадигма конвейеризации. Парадигма “разделяй и властвуй”. Спекулятивный параллелизм. Важность выбора технологии для реализации алгоритма. Модель обмена сообщениями – MPI. Модель общей памяти – OPENMP. Концепция виртуальной, разделяемой памяти – Linda. Российские разработки – Т-система, система DVM. Проблемы создания средства автоматического распараллеливания программ.

 

5.     Параллельное программирование с использованием интерфейса передачи сообщений MPI

Библиотека MPI. Модель SIMD. Инициализация и завершение MPI-приложения. Точечные обмены данными между процессами MPI-программы. Режимы буферизации. Проблема deadlock’ов. Коллективные взаимодействия процессов в MPI. Управление группами и коммуникаторами в MPI.

 

6.     Основные понятия параллелизма алгоритмов

Степень параллелизма численного алгоритма. Средняя степень параллелизма численного алгоритма. Зернистость алгоритма. Ускорение и эффективность. Закон Амдала. Алгоритм исследования свойств параллельного алгоритма. Определение параллелизма: анализ задачи с целью выделить подзадачи, которые могут выполняться одновременно. Выявление параллелизма: изменение структуры задачи таким образом, чтобы можно было эффективно выполнять подзадачи. Для этого часто требуется найти зависимости между подзадачами и организовать исходный код так, чтобы ими можно было эффективно управлять. Выражение параллелизма: реализация параллельного алгоритма в исходном коде с помощью системы обозначений параллельного программирования.

 

7.     Алгоритмы матричной алгебры и их распараллеливание

Параллельный алгоритм умножения матрицы на вектор и его ускорение по сравнению с последовательным алгоритмом. Параллельный алгоритм умножения матрицы на матрицу и его ускорение по сравнению с последовательным алгоритмом. Параллельный алгоритм решения СЛАУ прямым методом Гаусса и его ускорение по сравнению с последовательным алгоритмом. Параллельный алгоритм решения СЛАУ итерационными методами Якоби, Гаусса - Зейделя и их ускорение по сравнению с последовательным алгоритмом.