1 / 23

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

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

marie
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

  6. Специальный курс по выбору студента «Параллельное программирование и криптография» Необходимость использования параллельных вычислений в криптографии обусловлена следующими факторами: • защита информации должна быть «невидима» для пользователя, т.е. осуществляться достаточно быстро; • стойкость ко взлому криптографических методов защиты информации во многом определяется их вычислительной сложностью (или длиной ключа); • значительное повышение производительности криптографических программных средств может быть достигнуто за счет распараллеливания криптографических алгоритмов, которые в большинстве случаев допускают эффективное распараллеливание в системах с общей памятью; • развитие персональных ЭВМ с многопроцессорными и многоядерными архитектурами делает возможным применение параллельно выполняемых криптографических программных средств.

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

  8. Содержание курса 1. Введение (2 часа) • Криптографические примитивы и криптографические протоколы по защите информации. • Вопросы стандартизации методов защиты информации. • Стандарты Интернет • Особенности выполнения криптографический алгоритмов в системах с общей памятью. Задача безопасного распределения памяти между потоками. 2. Параллельное программирование в системах с общей памятью (SMP-системы) (5 ч.) • Библиотеки для параллельного программирования в системах с общей памятью. • Инструменты для разработки параллельных программ: отладчики, профилировщики. • Оптимизация параллельных программ. 3. Параллельная реализация криптографических алгоритмов с открытым ключом (5 ч.) • Основные принципы и схемы шифрования с открытым ключом. • Схема RSA и ее применение. Схема распараллеливания RSA. • Вероятностное шифрование • Схемы открытого шифрования Эль-Гамаля, МакЭлайса, Диффи-Хеллмана и пути их распараллеливания. • Алгоритмы шифрования на основе эллиптических кривых • Функции хеширования. Стандарты функций хеширования. Оценка возможности их распараллеливания. • Управление ключами. Генерация и хранение ключей. Протоколы распределения криптографических ключей.

  9. Содержание курса 4. Параллельная реализация криптографических алгоритмов с открытым ключом (4 ч.) • Модель криптосистемы с секретным ключом • Блочные криптосистемы. Принципы построения. Принципы распараллеливания • Российский стандарт криптозащиты. ГОСТ 28147-89. Режимы работы • Американский стандарт криптозащиты DES. Режимы работы • Поточные шифры 5. Реализация криптографических алгоритмов с использованием высокопроизводительной библиотеки Intel MKL, оптимизированной под архитектуры Intel (1 ч.) • Схемы открытого шифрования RSA, Эль-Гамаля. • Генераторы псевдослучайной последовательности из библиотеки MKL в поточных криптоалгоритмах 6. Криптомодуль библиотеки Intel IPP(1 ч.) - Цели создания, краткое описание • Криптографические функции, реализованные в библиотеки IPP.

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

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

  12. Содержание 1 раздела «Инструменты в технологиях параллельного программирования в системах с общей памятью»лабораторного практикума • Создание и отладка параллельных программ в системах с общей памятью Цель лабораторной работы - изучить основы реализации многопоточности в задачах с регулярной вычислительной структурой с помощью OpenMP, MPI, Native Threads и ознакомиться с основными типами ошибок параллельных программ и способами их избежания • Анализ производительности программы (на примере Intel VTune) Цель лабораторной работы – получить навыки анализа производительности приложений с помощью инструмента Intel VTune™ Performance Analyzer. • Этапы и практические приемы оптимизации программ на примере умножения матриц Цель лабораторной работы – освоить основные техники оптимизации и анализа производительности программ с помощью инструментов Intel VTune и Threading Tools

  13. Примеры схем распараллеливания в лабораторной работе №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(); Схема распараллеливания №1 (неверная) Потоки одновременно используют переменные i, x, sum

  14. Схема распараллеливания №2 (верная) num_steps =1000000; #pragma omp parallel forprivate (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();

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

  16. Этап 1 Исследование приложения в течение всего времени его работы с помощью VTune 1. В таблице видно чистое время работы всех процессов 2. Кнопка позволит увидеть работу программы в хронологическом порядке

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

  18. Лабораторная работа №3Этапы и практические приемы оптимизации программ на примере умножения матриц • Цель - Освоить основные техники оптимизации и анализа производительности программ с помощью инструментов Intel VTuneи Threading Tools.

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

  20. Анализ эффективности работы с памятью Анализ промахов КЭШа с помощью Intel VTune

  21. Оценка масштабируемости многопоточных программ в системах с общей памятью • Лабораторная работа №1 Влияние пропускной способности шины данных на масштабируемость программ • Разработка многопоточного приложения, осуществляющего поворот снимков экрана в памяти (Visual C++, MFS, Win32) • Оптимизация приложения • Инструментированная оценка работы параллельной программы (Thread Profiler) • Теоретическая оценка ускорения и масштабируемости • Практическая оценка ускорения и масштабируемости • Инструментированный анализ загрузки шины (VTune Analyzer)

  22. Оценка масштабируемости многопоточных программ в системах с общей памятью • Лабораторная работа №2 Влияние размера пула потоков на масштабируемость программ • Разработка многопоточного приложения, осуществляющего поворот снимков экрана в памяти (Visual C++, MFS, Win32) • Оптимизация приложения • Инструментированная оценка работы параллельной программы (Thread Profiler) • Теоретическая оценка ускорения и масштабируемости • Практическая оценка ускорения и масштабируемости • Инструментированный анализ загрузки шины (VTune Analyzer)

  23. Вопросы?

More Related