понедельник, 6 января 2014 г.

Слайды по курсу "Архитектура и программное обеспечение высокопроизводительных вычислительных систем"  лежат тут .
Программа экзамена по курсу
Архитектура и программное обеспечение высокопроизводительных вычислительных систем

1.  Список задач для высокопроизводительных систем. Основные определения. МВС. Суперкомпьютер. Кластер. Грид-система. HPC(eng). и др.
2.      Классификации архитектур вычислительных систем. Классификации Флинна, Ванга-Бриггса, Фенга, Шора, Хендлера, Хокни, Скилликорна.
3.      Архитектуры SMP, MPP, PVP. Кластерная архитектура.
4.      Особенности организации памяти в современных персональных компьютерах и МВС. Различные виды памяти. Различные архитектуры МВС по типу доступа к памяти. (UMA. NUMA, NORMA и т.д.) Классификация архитектур. Общая схема.
5.      Иерархия памяти. Уровни иерархии. Времена доступа и размеры памяти на каждом уровне. Алгоритм миграции данных между различными уровнями кэш-памяти.
6.      Графические ускорители. Особенности организации памяти и вычислений. Шейдеры.
7.      Способы организации высокопроизводительных процессоров: Ассоциативные процессоры. Клеточные и ДНК-процессоры. Нейронные процессоры. Процессоры с нечеткой логикой. Основные принципы функционирования, предпосылки развития альтернативных способов организации МВС, текущие трудности в реализации.
8.      Специализированные процессоры. Коммуникационные процессоры. Конвейерные процессоры. Матричные процессоры. Применение. Основные принципы функционирования.
9.      Топологии сетей МВС. Сферы применения. Свойства. Характеристики. Примеры использования.
10.  Коммутаторы для МВС. Простые коммутаторы. Алгоритмы арбитража. Составные коммутаторы. Коммутатор Клоза. Баньян-сети.
11.  Способы оценки производительности МВС. Методы оценки. Виды оценок.  Принципы формирования top 500 и .др. top.
12.  Надежность отказоустойчивость и другие характеристики МВС. Требования к компонентам МВС.
13. Ускорение и эффективность параллельных программ. Информационные зависимости по данным. Закон Амдала.
14. Многопоточное программирование: обзор технологий POSIX Threads, функции для создания и завершения потоков.
15. Проблема недетерминизма в многопоточных программах. Поддержка синхронизации потоков в POSIX Threads. Критические секции.
16. Общая характеристика пакета OpenMP. Последовательные и параллельные участки. Директивы распараллеливания.
17. Директивы распределения работы в OpenMP на примере распараллеливания циклов.
18. Устранение информационных зависимостей в циклах средствами OpenMP, директива reduction.
15. Общая характеристика библиотеки MPI. Функции инициализации и завершения MPI-программы.
16. Определение номер процесса в MPI. Функции попарной пересылки.
17. Применение шаблонов MPI_ANY_SOURCE, MPI_ANY_TAG, вычисления по типу «управляющий-рабочие».
18. Концепция грид-вычислений, понятие виртуальной организации. Область применения, виды и примеры грид-систем, классы грид-приложений.
19. Технологии построения грид-систем, ключевые функции промежуточного программного обеспечения и принципы реализации.
20. Структура ППО gLite, основные сервисы. Обеспечение безопасности. Запуск грид-задания.
21. Феномен Big Data, проблемы хранения и обработки больших объемов данных. Модель программирования MapReduce. Инвертированный индекс. Параллельная обработка и агрегация результатов. Назначение, преимущества и недостатки MapReduce.
22. Реализация модели MapReduce на вычислительном кластере. Требования к реализации. Общая схема реализации.
23. Основные функции системы Google Map Reduce. Спекулятивное выполнение. Отказоустойчивость.
24. Реализация MapReduce в системе Hadoop. Архитектура Hadoop кластера. Особенности файловой системы Hadoop.
25. Грид-системы из персональных компьютеров. Основные реализации.
26. Система BOINC. Принцип работы инфраструктуры. BOINC-менеджер, BOINC-клиент, сервер, серверная и клиентская части распределённого приложения.
27. Система BOINC. Основные понятия. Приложение, версия приложения, расчётный блок, результат, физические и логические имена файлов. Master-URL. Начисляемые баллы.
28. Архитектура BOINC-сервера. Apache. MySQL, PHP. Демоны.
29. Основы работы с ОС Linux. Основные команды (touch, cp, mkdir, ssh). Обозначение пути к файлу. Пользователь root. Использование репозиториев.
30. Основные этапы установки BOINC-сервера и создания проекта.
31. Основные этапы развёртывания распределённого приложения в инфраструктуре BOINC.
32. Основные функции DC-API.
33.Концепция облачных вычислений. Характерные черты облачных систем. Модели и примеры облачных сервисов. Отличие облачных систем от грид-систем.