Обновление содержания IT- образования на...

23
Совершенствование IT-подготовки студентов специальности 010503 Математическое обеспечение и администрирование информационных систем Нестеренко Максим Юрьевич, к.т.н., доцент Оренбургского государственного университета Май 2006

description

Совершенствование IT -подготовки студентов специальности 010503 Математическое обеспечение и администрирование информационных систем Нестеренко Максим Юрьевич, к.т.н., доцент Оренбургского государственного университета Май 2006. - PowerPoint PPT Presentation

Transcript of Обновление содержания IT- образования на...

Page 1: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

Совершенствование IT-подготовки студентов специальности 010503 Математическое обеспечение и

администрирование информационных систем

Нестеренко Максим Юрьевич, к.т.н., доцент Оренбургского государственного университета

Май 2006

Page 2: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

2

Обновление содержания IT-образования на математическом факультете (декан –

Т.П.Петухова) • пропедевтический этап - приобретение

студентами базовых знаний, умений и навыков в области параллельного программирования за счет обновления содержания дисциплин, читаемых на младших курсах (1 – 5 семестры);

• профессионально-ориентированный этап - использование обучающимися технологий параллельного программирования в прикладных задачах, т.е. обновление содержания дисциплин, изучаемых на старших курсах (6 – 8 семестры), и введение новых курсов по выбору студента (9 семестр)

Page 3: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

3

Обновляемые дисциплины

Page 4: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

4

Обновляемые дисциплины

Page 5: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

5

Обновляемые дисциплины

Page 6: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

6

Специальный курс по выбору студента «Параллельное программирование и

криптография»

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

• защита информации должна быть «невидима» для пользователя, т.е. осуществляться достаточно быстро;

• стойкость ко взлому криптографических методов защиты информации во многом определяется их вычислительной сложностью (или длиной ключа);

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

• развитие персональных ЭВМ с многопроцессорными и многоядерными архитектурами делает возможным применение параллельно выполняемых криптографических программных средств.

Page 7: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

7

Специальный курс по выбору студента «Параллельное программирование и

криптография»

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

Page 8: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

8

Содержание курса1. Введение (2 часа)

− Криптографические примитивы и криптографические протоколы по защите информации.− Вопросы стандартизации методов защиты информации. − Стандарты Интернет− Особенности выполнения криптографический алгоритмов в системах с общей памятью.

Задача безопасного распределения памяти между потоками.

2. Параллельное программирование в системах с общей памятью (SMP-системы) (5 ч.)− Библиотеки для параллельного программирования в системах с общей памятью.− Инструменты для разработки параллельных программ: отладчики, профилировщики.− Оптимизация параллельных программ.

3. Параллельная реализация криптографических алгоритмов с открытым ключом (5 ч.)− Основные принципы и схемы шифрования с открытым ключом.− Схема RSA и ее применение. Схема распараллеливания RSA.− Вероятностное шифрование− Схемы открытого шифрования Эль-Гамаля, МакЭлайса, Диффи-Хеллмана и пути их

распараллеливания.− Алгоритмы шифрования на основе эллиптических кривых− Функции хеширования. Стандарты функций хеширования. Оценка возможности их

распараллеливания.− Управление ключами. Генерация и хранение ключей. Протоколы распределения

криптографических ключей.

Page 9: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

9

Содержание курса

4. Параллельная реализация криптографических алгоритмов с открытым ключом (4 ч.)− Модель криптосистемы с секретным ключом− Блочные криптосистемы. Принципы построения. Принципы

распараллеливания− Российский стандарт криптозащиты. ГОСТ 28147-89. Режимы работы− Американский стандарт криптозащиты DES. Режимы работы− Поточные шифры

5. Реализация криптографических алгоритмов с использованием высокопроизводительной библиотеки Intel MKL, оптимизированной под архитектуры Intel (1 ч.)− Схемы открытого шифрования RSA, Эль-Гамаля.− Генераторы псевдослучайной последовательности из библиотеки

MKL в поточных криптоалгоритмах

6. Криптомодуль библиотеки Intel IPP(1 ч.)- Цели создания, краткое описание− Криптографические функции, реализованные в библиотеки IPP.

Page 10: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

10

Лабораторные работы

Page 11: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

11

Методическое обеспечение обновленного образования

• Лабораторный практикум «Технологии параллельного программирования в системах с общей памятью» (авторы: к.т.н. Нестеренко М.Ю., к.ф.м.н. Калинина А.П., к.т.н. Владова А.Ю.)

− Инструменты в технологиях параллельного программирования в системах с общей памятью

− Методика разработки многопоточных программ в системе с общей памятью с применением инструментов в примерах и задачах

− Оценка масштабируемости многопоточных программ в системах с общей памятью

• Лабораторный практикум представляет собой образовательный комплекс, содержащий учебное пособие «Технологии параллельного программирования в системах с общей памятью» и комплект презентаций к лекциям и семинарам

Page 12: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

12

Содержание 1 раздела «Инструменты в технологиях параллельного программирования в системах с общей памятью»

лабораторного практикума

1. Создание и отладка параллельных программ в системах с общей памятью

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

2. Анализ производительности программы (на примере Intel VTune)

Цель лабораторной работы – получить навыки анализа производительности приложений с помощью инструмента Intel VTune™ Performance Analyzer.

3. Этапы и практические приемы оптимизации программ на примере умножения матриц

Цель лабораторной работы – освоить основные техники оптимизации и анализа производительности программ с помощью инструментов Intel VTune и Threading Tools

Page 13: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

13

Примеры схем распараллеливания в лабораторной работе №1

Схема распараллеливания №1 (неверная)int num_steps = 1000000;

#pragma omp parallel for

for (i = 0; i < num_steps; i++)

{

x = (i + .5)*step;

sum = sum + 4.0 / (1.+ x*x);

}

pi = sum*step;

stop = clock();

Потоки одновременно используют переменные i, x, sum

Page 14: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

14

Схема распараллеливания №2 (верная)

num_steps = 1000000;#pragma omp parallel for private (i,x) reduction (+: sum)

for (i = 0; i < num_steps; i++){

x = (i + .5)*step;sum = sum + 4.0 / (1.+ x*x);

}pi = sum*step;

stop = clock();

Page 15: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

15

Лабораторная работа №2 Анализ производительности программ

• Этапы лабораторной работы

1.Исследование поведения приложения в течение всего времени его работы с помощью VTune;2.Определение функции, выполнение которой занимает самую большую часть времени, а также функции с наибольшим CPI.3.Анализ кода программы с точки зрения времени выполнения. (Выявить Hotspots).4.Выявление критических участков кода.5.Оценка эффективности работы с памятью.

Page 16: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

16

Этап 1 Исследование приложения в течение всего времени его работы с помощью VTune

1. В таблице видно чистое время работы всех процессов

2. Кнопка позволит увидеть работу программы в хронологическом порядке

Page 17: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

17

Выявление критических участков кода с помощью Call Graph

критический путь программы gzip: mainCRTStartup-> main-> treat_file-> zip-> deflate-> longest_match, а самой затратной функцией является функция longest_match (т.к. на ней заканчивается критический путь)

Page 18: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

18

Лабораторная работа №3Этапы и практические приемы оптимизации

программ на примере умножения матриц

• Цель - Освоить основные техники оптимизации и анализа производительности программ с помощью инструментов Intel VTune и Threading Tools.

Page 19: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

19

Этапы оптимизации для двухпроцессорного Xeon 3 Ггц, 2Гб

ОписаниеВремя выполнения

при размере матриц N=768,ms

Matrix 1последовательная

программа без оптимизации

9 735,00

Matrix 2

- правильный порядок циклов -развертывание

циклов (4)

2 266,00

Matrix 3паралельная

программа515,00

Page 20: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

20

Анализ эффективности работы с памятью

Анализ промахов КЭШа с помощью Intel VTune

Page 21: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

21

Оценка масштабируемости многопоточных программ в системах с общей памятью

• Лабораторная работа №1 Влияние пропускной способности шины данных на масштабируемость программ− Разработка многопоточного приложения,

осуществляющего поворот снимков экрана в памяти (Visual C++, MFS, Win32)

− Оптимизация приложения− Инструментированная оценка работы параллельной

программы (Thread Profiler)− Теоретическая оценка ускорения и масштабируемости− Практическая оценка ускорения и масштабируемости − Инструментированный анализ загрузки шины (VTune

Analyzer)

Page 22: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

22

Оценка масштабируемости многопоточных программ в системах с общей памятью

• Лабораторная работа №2 Влияние размера пула потоков на масштабируемость программ− Разработка многопоточного приложения,

осуществляющего поворот снимков экрана в памяти (Visual C++, MFS, Win32)

− Оптимизация приложения− Инструментированная оценка работы параллельной

программы (Thread Profiler)− Теоретическая оценка ускорения и масштабируемости− Практическая оценка ускорения и масштабируемости − Инструментированный анализ загрузки шины (VTune

Analyzer)

Page 23: Обновление содержания  IT- образования на математическом факультете  (декан – Т.П.Петухова)

23

• Вопросы?