- •Многопроцессорные системы – общая характеристика, актуальность. Области применения. История развития. Виды параллелизма – расслоение памяти, векторно-конвейерная обработка, множественные фу.
- •2 Класса архитектур. Общая память – достоинства, недостатки.
- •Классификация Флинна. Примеры.
- •2 Варианта локальной памяти:
- •5. Иерархия памяти в современных компьютерах. Кэш. Терминология. 3 типа кэш-памяти. Стратегии поиска и замещения блоков. Сквозная и обратная запись. Достоинства и недостатки.
- •6. Проблема когерентности кэшей. Кэш с наблюдением (snooping) . Алгоритм mesi.
- •7. Уровни состоятельности. Строгая состоятельность – проблема поиска и проблема синхронизации записи. Владельцы и менеджеры данных. Write-broadcast и write-invalidate схемы записи.
- •Модели с ослаблением состоятельности.
- •Схемы, основанные на каталогах.
- •Виды коммуникационных сред. Составные части. Коммутаторы – простые и составные, с временным и пространственным разделением.
- •Классификация сетей. Терминология. Представление в виде графов. Топологии – решетка, тор, гиперкуб, челнок, дерево и др.
- •Массово-параллельные компьютеры – определение, основные понятия, история. Mpp. Asci Red и Cray t3e.
- •Измерение производительности. Терминология. Время отклика, время цп, таковая частота. Виды тестов. Фирменные тесты. Mips и mflops.
- •Тесты linpack. Ливерморские циклы. Spec. Тесты tpc.
- •Проектирование параллельных алгоритмов. 4 этапа. Характеристика этапов.
- •Декомпозиция – основная задача. 2 метода. Контрольные вопросы.
- •Определение коммуникаций. Варианты. Связь с 1 этапом.
- •Локальные и глобальные коммуникации. Контрольные вопросы.
- •Укрупнение. Цели. Методы. Контрольные вопросы.
- •Время простоя. Пример общей модели.
- •Эффективность и ускорение. Анализ масштабируемости – при фиксированном размере задачи, при переменном размере задачи.
- •Экспериментальные исследования – задачи, характеристика. Сравнение теоретических и экспериментальных данных. Возможные причины отклонений.
- •Модульность в параллельных программах. Виды композиции. Проблема перераспределения данных. Последовательная композиция – spmd. ScaLapack.
- •Параллельная композиция. Конкурентная композиция. Примеры. Правила применения.
- •Анализ производительности программы в целом. Усложняющие факторы. Пример.
- •Средства разработки параллельных программ. Классификация. Pvm – характеристика и идеология. Основные функции.
- •Нити. Синхронизация. Асинхронные коммуникации. Проблема детерминизма. Распределение по процессорам. – 2 фазы. Производительность.
- •Fortran 90 и hpf. Параллельные расширения f90. Основные понятия и директивы hpf. Примеры.
- •OpenMp – идея, технология, основные понятия. Основные директивы. Пример программы.
- •Linda – основные понятия. Функции. Пример – реализация барьерной синхронизации.
Массово-параллельные компьютеры – определение, основные понятия, история. Mpp. Asci Red и Cray t3e.
. SIMD машины с 100 или более процессоров считают массово-параллельными.
В таких системах исключены аппаратные механизмы, обеспечивающие когерентность кэша, а основное внимание сосредоточено на создании масштабируемой системы памяти. Вся память распределена между процессорами, связь – с помощью сети. Преимущество – минимальная поддержка со стороны аппаратуры. Недостаток – длина коммуникаций. Очень важное значение имеет топология.
MPP. Первая система матрица из 64 процессорных элементов.
Процессорная матрица 128х128, каждый элемент - разрядно-последовательный процессор и память 1024 бита. Переходная память – для буферизации и перекомпоновки данных.
Идея – набор параллельных плоскостей 128х128 – 1024 плоскости памяти, 35 обрабатывающих и плоскость ввода-вывода. Ввод из переходной памяти в плоскость ввода-вывода – 1 колонка за такт. Потом за 1 такт – на любую плоскость памяти или обрабатывающую.
В команде – несколько операций.
Производительность – 2000 MIPS
ASCI Red. Пиковая производительность – 3 Tflops. MIMD, распределнная память, передача сообщений. 9632 Pentium-III Xeon. 4 раздела – служебный (1024, администрирование, разработка программ, интерфейс пользователя), ввода-вывода (170), системный (4, обслуживание и отказоустойчивость), вычислительный (9020). Топология сети – решетка.
Cray – T3E. MIMD с аппаратной поддержкой SIMD. Топология – 3D тор. Alpha 21164 675 MHz, от 40 до 2176.
Hitachi SR8000 – 1152 процессора, пиковая производительность – 2 Tflops, заявлено до 7.3. Сеть – практически любая, от Ethernet до ATM и HIPPI. ОС – HI-UX/MPP
Кластеры – основные особенности. История – VAX. Современные высокопроизводительные кластеры. Составные части – процессоры, память, сеть. ПО – ОС, служебное, вычислительное. Понятие и характеристика SSI. OSCAR.
Кластеры - локальная компьютерная система, состоящая из независимых компьютеров и соединяющей их сети (при этом подчеркивается, что соединяющая сеть, вообще говоря, отдельна от других сетей, к которым может быть подключен кластер как целое).
Достоинства – удобство обслуживания, расширяемость, высокая пропускная способность. Сейчас – во всех суперкомпьютерных центрах. Sandia – CPlant (628 Alpha 21264 500 Mhz, 628 Mflops, Myrinet, Linux). LLNL – Compaq Tera Cluster, Compaq Linux Cluster (64 Alpha, 2x667 Mflops, Linux - Red Hat 7.1).
Locus Discovery - Locus Supercluster (2048 Pentium III, 2 Tflops)
Серийные процессоры (Intel PII / III / IV, Alpha, IBM Power PC, Sun SuperSPARC и др.). Серийная оперативная память. Серийные SCSI-2 (и даже EIDE) диски, а также ленты и прочая периферия. Сеть – часто тоже стандартная (Ethernet). Для наиболее производительных – специализированные высокоскоростные.
VIA – передача данных между узлами без копирования в локальную ОС, полоса пропускания – Гб, латентность – менеее 10 мс; Infiniband – полностью искючает понятие интерфеса ввода-вывода, связывает сетевой интерфей непосредственно с памятью, заявлено – до 10 Гб и задержка около 1 мс.
Протоколы – особенно важна совместимость. IP – UDP, TCP. На высоких скоростях – велики накладные расходы. Предложен ряд усовершенстовованных протоколов - Active Messages, Fast Messages, VMMC, BIP и другие.
Протокол Active Messages. Обмен ведется короткими синхронными сообщениями по принципу запрос-ответ. Основная идея - сообщение содержит адрес обработчика с единым образом кода. Принимающая сторона выделяет буфер в памяти и посылает запрос передающей. Последняя отвечает, передавая данные в сеть. Сетевая аппаратура передает данные прямо в приемный буфер. Этот процесс требует, чтобы буферы и приемника и передатчика на время обмена были зафиксированы в физической памяти. Не тратится время на копирование из пользовательской в системную память.
Fast Messages. Он развивает некоторые концепции Active Messages, но главное достоинство - обеспечение надежности в смысле гарантии доставки сообщений в неизменном порядке, даже если аппаратура не поддерживает эти возможности – в отличие от AM. Программный интерфейс - 3 функции: FM_send_4 – для отправки коротких сообщений (4б), FM_send – для более длинных и FM_extract – для обработки принятых. Здесь нет концепции запрос-ответ. Используется во многих кластерах
VMMC, расширенный позже до VMMC-2. Эта система обеспечивает программиста парадигмой общей памяти, отображая пользовательскую виртуальную память в страницы физической памяти и устанавливая соответствие между страницами передатчика и приемника. Система использует специально спроектированную аппаратуру, обеспечивающую “snooping”.
BIP представляет собой нижний уровень для обеспечения услугами верхнего уровня, такого как MPI.
Для всех параллельных систем очень важен выбор программного обеспечения. Хотя в случае кластеров используются стандартные ОС и ряд служебного ПО, необходимы минимум 2 группы специального ПО – для управления кластером и собственно для вычислений. Вычислительное – системы передачи сообщений, особенно MPI. Используют также BSP и HPF – data parallel, Split-C, UPC и другие.
Управление кластерами – обычно middleware. ОС редко модифицируют – большие сложности. Примеры – Intel Paragon OS, Sun Solaris MC, Puma (только обслуживание вычислений - в ASCI Red). Чаще всего ОС стандартная. Используют Solaris, Win NT, но чаще всего – Linux.
Ключевое понятие в кластерном ПО - SSI. Этот термин означает свойство системы, которое скрывает неоднородную и распределенную природу кластера и представляет ресурсы кластера как принадлежащие единому компьютеру. Основные сервисы SSI:
- единая точка входа, т.е. пользователь подключается к кластеру как к единому хосту;
- единый пользовательский интерфейс – пользователь работает с кластером как с 1 компьютером, используя известный интерфейс;
- ед пространство процессов – каждый процесс обладает единым ID в масштабах кластера;
- единое пространство памяти; эта зад еще не решена окончательно;
- единое пространство в/в – диски и проч ресурсы доступны с любого узла прозрачно для пользователя;
- единая файловая иерархия – подключившийся пользователь видит файловые системы всех узлов как единую иерархию;
- единая виртуальная сеть – пользователь видит внешние сетевые соединения всего кластера, а не 1 узла;
- единое управление заданиями
- единая точка контроля и управления;
SSI может быть реализован на 1 или нескольких уровнях – аппаратном, ОС, middleware и прикладном.
Разработан ряд систем, обеспечивающих SSI на прикладном уровне.
В связи с растущей популярностью кластеров на рынке имеется целый ряд продуктов, обеспечивающих SSI (на нескольких уровнях). В качестве примера можно привести OSCAR. Это набор ПО, позиционируемый как “все, что необходимо для построения среднеразмерного кластера”. Каноническая конфигурация включает следующие компоненты:
- сервера – компьютеры, обеспечивающие необходимые кластеру сервисы;
- шлюз, обеспечивающий разделение внутренней сети кластера и внешней сети;
- узлы – компьютеры, непосредственно выполняющие вычисления;
- сеть – в настоящее время в качестве внутренней сети кластера используется Ethernet;
Программные компоненты OSCAR обеспечивают:
- установку Linux на каждом узле;
- создание БД кластера и полуавтоматическую установку OSCAR;
- безопасность;
- управление кластером;
- установку библиотек и средств разработки программ;
- средства управления заданиями, планирование, балансировку нагрузки, мониториг;
- документирование.