| 07.04.2009 22:00 | |
Данные материалы разработаны экспертами Интел в области программных продуктов, технологий и инициатив компании в рамках программы Intel® Multi-Core Curriculum Initiative. Они разбиты на несколько тематических курсов, содержащих презентации лекций, лабораторные работы и справочные материалы, которые вы можете скачать и включить в свой учебный план. Курсы не являются тренингами по продуктам Интел или сертификационной программой Интел. Содержание может быть использовано целиком для создания новых курсов или частично в качестве дополнения к уже существующим курсам. В первую очередь материалы адресованы преподавателям ВУЗов, студенты и остальные посетители этого раздела могут обратиться к ним в целях самообучения. Если у вас есть желание обсудить другие курсы, а также в случае отсутствия интересующего Вас материала, пожалуйста, обращайтесь по адресу: academic.community@intel.com
Обзор обучающих курсов
1.а.1 Программная транзакционная память
1.а.2 Библиотека производительности: применение Intel® Integrated Performance Primitives (IPP) для параллелизации приложений
1.а.3 Примеры проектирования с использованием параллелизма
1.b.1 Многоядерная архитектура и основные инструменты (Compiler & VTune)
1.b.2 Шаблоны параллельного программирования
1.b.3 Threading Building Blocks и библиотека Intel TBB
2.а Библиотека производительности: Intel® Math Kernel Library (MKL)
3.а Параллелизация игр с целью повышения производительности
3.b Введение в параллельное программирование
3.c Разработка приложений под многоядерные процессоры Intel(среда Microsoft .NET)
4.а Курс “Программирование под многоядерные компьютерные системы для ВУЗов”
Подробное описание
Полные версии материалов доступны только для зарегистрированных пользователей академического сообщества. Пройти регистрацию можно здесь.
1.a.1 Программная транзакционная память (ссылка на страницу с более полной информацией, англ.)
Данный курс является кратким одночасовым введением в технологию транзакционной памяти (Transactional Memory, TM) и предназначен для тех, кто уже имеет опыт параллельного/многопоточного программирования и желает ознакомиться с другими механизмами синхронизации в дополнение к механизму блокировок (lock).
В этом курсе вводится понятие ТМ и объясняются ключевые принципы ее работы. Рассматривается программная транзакционная память (STM), её реализация, технические инструменты (компилятор и библиотеки), расширения языка (ключевые слова) и примеры их использования в коде.
В результате освоения материала проясняется взаимосвязь ТМ и многопоточного программирования, слушатель приобретает навыки работы с набором расширений языка для программной транзакционной памяти (STM).
1.a.2 Библиотека производительности: применение Intel® Integrated Performance Primitives (IPP) для параллелизации приложений (ссылка на страницу с более полной информацией, англ.)
Курс описывает пример использования библиотеки Intel Performance Primitives (IPP) при разработке конкретного многопоточного приложения. Он нацелен главным образом на разработчиков, которые хотели бы получить быстрый прирост производительности многопоточного приложения. Предлагается краткий обзор базовой архитектуры, API- интерфейсов и демонстрация использования IPP в случае многопоточного приложения на примере параллелизации декодирования мультимедиа. Освоение приведённого материала может явиться для студентов стимулом к использованию библиотеки IPP и интерфейсов IPP. Кроме того, IPP также может служить тестом производительности или образцом для оптимизации производительности.
1.a.3 Примеры проектирования с использованием параллелизма (ссылка на страницу с более полной информацией, англ.)
Курс представлен в виде лекции, в ходе которой демонстрируются и обсуждаются примеры распараллеленных решений. Лекция охватывает методы программной параллелизации циклов, вызовов функций, а также параллелизацию на уровне заданий. В качестве демонстрационных примеров предлагаются известные численные алгоритмы: оценка по методу наименьших квадратов, алгоритм декодирования Хаффмана и одна из реализаций программы для проверки орфографии (Spell Checker). Они дополняют стандартные примеры многопоточного/параллельного программирования, описываемые в настоящее время в учебных курсах.
1.b.1 Многоядерная архитектура и основные инструменты (Compiler & VTune) (ссылка на страницу с более полной информацией, англ.)
Курс состоит из нескольких лабораторных работ и демонстрирует возможности параллелизации архитектуры Intel core, включая использование нескольких ядер и архитектуры SIMD. Примеры использования VTune и компилятора Intel демонстрируют способы преодоления проблем использования кэша (cache effects).
1.b.2 Шаблоны параллельного программирования (ссылка на страницу с более полной информацией, англ.)
Содержание курса основано на книге “Паттерны параллельного программирования” Тимоти Маттсона (“Patterns for Parallel Programming ”, Timothy G. Mattson), в которой архитектура параллельной программы рассматривается как структура языка шаблонов. Основными задачами курса являются: обсуждение вопросов, для обмена знаниями между студентами, и наглядное рассмотрение различных шаблонов с использованием примеров.
Основные темы: – Базовые параллельные алгоритмы (2 л.р.) – Планировщик задач (1 л.р.) – Параллельные контейнеры (1 л.р.) – Примитивы синхронизации низкого уровня – Масштабируемость распределения памяти (1 л.р.).
Требования к аппаратному и программному обеспечению:
• Ноутбук с 2 и более ядрами
• Соответствующий компилятор (Windows, Linux)
• Библиотека Intel Threading Building Blocks
1.b.3 Threading Building Blocks и библиотека Intel TBB (ссылка на страницу с более полной информацией, англ.)
Полностью готовый учебный курс из лекций и практических занятий, представляющий краткое введение в использование библиотеки Intel® Threading Building Blocks.
Основные темы: – Базовые параллельные алгоритмы (2 л.р.) – Планировщик задач (1 л.р.) – Параллельные контейнеры (1 л.р.) – Примитивы синхронизации низкого уровня – Масштабируемость распределения памяти (1 л.р.).
Требования к аппаратному и программному обеспечению:
• Ноутбук с 2 и более ядрами
• Соответствующий компилятор (Windows, Linux)
2.a Библиотека производительности: Intel® Math Kernel Library (MKL) (ссылка на страницу с более полной информацией)
Курс представляет собой краткое введение в библиотеку Intel Math Kernel Library, охватывающее основные компоненты MKL и способы использования библиотеки. Предполагаются 2 лабораторные работы с использованием библиотеки BLAS и Vector Statistical Library.
3.a Параллелизация игр с целью повышения производительности (ссылка на страницу с более полной информацией, англ.)
В однодневном курсе рассматривается пример распараллеливания игры Destroy the Castle. Проводится поиск оптимальных решений для параллелизации компонентов физики, AI и рендеринга.
Рассматриваются средства разработки Интел для обнаружения “горячих” участков кода (hotspots), анализа производительность и выявления ошибок параллелизации, такие, как конкурентная модификация данных (race conditions).
3.b Введение в параллельное программирование (ссылка на страницу с более полной информацией, англ.)
Курс содержит информацию о концепциях и подходах, общих для всех реализаций параллельного программирования систем с общей памятью.
Лекции дополнены теоретическими и практическими задачами. Лабораторные работы реализованы на С с использованием OpenMP*, но данные концепции также применимы к любой другой модели распараллеливания.
3.c Разработка приложений под многоядерные процессоры Intel (среда Microsoft .NET) (ссылка на страницу с более полной информацией, англ.)
Содержание курса (лекции и практические задания) является введением в архитектуру Intel® Multi-Core и раскрывает понятие параллелизма, его концепции и принципы распараллеливания в Microsoft.NET. Курс также включает обзор результатов тестирования производительности многоядерных платформ с помощью Intel® VTune(TM) Performance Analyzer Callgraph и технологии Sampling.
4.a Курс “Программирование под многоядерные компьютерные системы для ВУЗов” (ссылка на страницу с более полной информацией, англ.)
Данный курс лекций предусматривает выполнение теоретических и практических заданий. Курс является введением в архитектуру Intel® Multi-Core и и раскрывает понятие параллелизма, его концепции и принципы распараллеливания, многопоточные технологии и программирование с использованием потоков (Windows*, OpenMP*, Pthreads*). Также предполагается обзор результатов тестирования производительности многоядерных платформ с помощью средств параллелизации и отладки Intel.
Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.

