Автор работы: Пользователь скрыл имя, 26 Марта 2012 в 23:27, лекция
Технологии высокопроизводительных вычислений сегодня переживают весьма резкие качественные изменения. Круг вопросов, подлежащих обсуждению при систематическом изложении предмета, не устоялся и стремительно меняется. По этой причине мы разделим настоящий текст на две части.
В первой части, озаглавленной «Освоенные технологии», изложим предмет так, как его надо было рассказывать, скажем, 2 – 3 года назад, не забывая, конечно, о линейном, количественном развитии, имевшем место за эти 2 – 3 года в рамках традиционных подходов.
Введение.
Часть 1. Освоенные технологии.
1. Таксономия суперкомпьютеров и применяемых в связи с ними программистских технологий.
1.1. Архитектура фон Неймана.
1.2. Три этапа развития суперкомпьютерных технологий и две суперкомпьютерных революции.
1.3. Способы объединения многих процессоров в единую систему.
1.4. Альтернативные архитектуры.
1.5. Простейшая модельная программа.
1.5.1. Решение двумерной краевой задачи для уравнения теплопроводности методом Якоби.
1.5.2. Параллельная реализация «на бумаге».
1.5.3. Что потребуется для параллельной реализации на практике.
1.6. Общий состав программного обеспечения вычислительного кластера
1.7. Некоторые основные определения.
1.8. Технологии параллельной обработки данных без использования суперкомпьютеров.
2. Некоторые основные понятия архитектуры процессоров и ОС.
2.1. Некоторые основные определения.
2.2. Пример системы команд: обработка данных в памяти.
2.3. Чего нам не хватает.
2.3.1. Общее представление об управлении внешними устройствами.
2.3.2. Программа – диспетчер.
2.3.3. Прерывания.
2.3.4. Защита памяти и многорежимность процессора.
2.3.5. Виртуальная память.
2.4. Еще несколько определений.
3. Критерии эффективности коммуникационной сети.
4. Обзор процессорных и сетевых решений, применяемых в современных кластерах.
4.1. Выбор процессора.
4.2. Выбор коммуникационной сети.
5. Суперкомпьютер МВС-1000 и метакластер МВС-900.
5.1. Основные принципы организации МВС – 1000.
5.2. Как работает и зачем нужен метакластер МВС – 900.
6. Модели и технологии параллельного программирования.
6.1. Два способа параллельной обработки данных.
6.2. Два лица программистской модели.
6.3. Модель: явный двусторонний обмен сообщениями.
6.4. Модель: односторонний обмен сообщениями.
6.5. Модель: NUMA.
6.6. Модели, производные от явного двустороннего обмена сообщениями.
6.6.1. Модель библиотек коллективных операций над распределенными массивами.
6.6.2. Модель параллельных трансляторов в стиле HPF.
6.6.3. Модель непроцедурных языков.
6.7. Парадокс неприятия новых технологий.
6.8. Немного о технике реализации MPI.
Часть 2. Технологии, появляющиеся сегодня.
7. Почему «эпоха кластеров» заканчивается.
Литература.
В стандарт MPI входит так называемый интерфейс профилирования. Он состоит в том, что каждая из функций MPI имеет свое каноническое имя в качестве слабого синонима, и имя, полученное приписыванием перед каноническим именем буквы “P”, в качестве основного имени. Так, функция MPI_Send «в действительности» называется PMPI_Send, а “MPI_Send” – лишь слабый синоним ее основного имени.
Пусть теперь мы хотим вставить «обертку» между прикладной программой и библиотекой MPI, не транслируя заново ни программу, ни библиотеку. В программе все функции MPI вызваны по «слабому» варианту, без “P”. Мы же написали, например, для MPI_Send «обертку» такого вида:
int MPI_Send( ……. )
{
…………….
rc = PMPI_Send( ……. );
…………….
return rc;
}
Если мы укажем в командной строке линкера объектный модуль нашей обертки до библиотеки MPI, то наш вариант MPI_Send скомпонуется вместо библиотечного. Он вызовет PMPI_Send уже из библиотеки. Доставая из библиотеки объектный модуль по имени PMPI_Send, линкер с негодованием обнаружит, что его синонимом является MPI_Send, а такое имя уже встречалось, как имя совсем другой функции (нашей «обертки»). Казалось бы, налицо повторное определение имени, надо ругаться и завершать работу. Однако, библиотечный синоним MPI_Send, к счастью, «слабый», и линкер просто проигнорирует его, скомпоновав функцию по альтернативному имени. Задача решена – мы «вклинились» со своим кодом между программой и библиотекой, не имея исходных текстов ни того, ни другого.
Именно на использовании интерфейса профилирования построена библиотека PACX – MPI [25] – набор программ построения «связок» нескольких библиотек MPI в одну без какого – либо вмешательства в связываемые библиотеки. PACX – MPI удобен для применения в GRID – системах. С его помощью, например, легко связать в единое вычислительное поле два суперкомпьютера, один из которых оснащен сетью Myrinet, а второй – сетью Infiniband, причем связь между этими двумя компьютерами осуществляется по спутниковому Internet – каналу. При работе PACX – MPI в рамках этого единого вычислительного поля передача данных внутри каждой из его частей будет происходить с использованием штатно установленной на этой части реализации MPI, и лишь при посылке сообщений из одной части в другую будет использоваться tcp/ip. Сам же PACX – MPI – всего лишь набор оберток.
MPICH – самая популярная свободно распространяемая реализация MPI – включает в себя очень удобный дополнительный сервис по использованию интерфейса профилирования. В составе MPICH поставляется программа wrappergen (генератор оберток) – специализированный транслятор со специально разработанного языка, на котором пишутся сценарии порождения полного комплекта оберток для данной реализации MPI. Программа на входном языке wrappergen пишется примерно в таких терминах: «Для всех функций, кроме MPI_Send и MPI_Recv, включить в обертку только измерение времени на входе и выходе, а для указанных функций – следующий код: ……». Что такое «для всех функций», транслятор решит самостоятельно, проанализировав файл “mpi.h”. Выходом wrappergen является текстовый файл с текстами оберток всех функций данной реализации MPI на языке C.
Часть 2. Технологии, появляющиеся сегодня.
7. Почему «эпоха кластеров» заканчивается.
Всякое утверждение о предстоящем в ближайшем будущем коренном технологическом перевороте надо серьезно обосновывать. Технологические перевороты не происходят от убеждения одного или нескольких специалистов в том, что все привычное устарело. А от чего они происходят? Что определяет облик суперкомпьютера?
Выше, в Разделе 1.2, мы кратко затрагивали эту тему. Теперь остановимся на ней несколько подробнее.
Господствующий в то или иное время облик «типичного суперкомпьютера» определяется в решающей мере лишь одним очень важным фактором, о котором незаслуженно часто забывают.
Сотни, в лучшем случае – тысячи разработчиков суперкомпьютеров во всем мире пытаются создавать вычислительные системы, гораздо более быстрые, чем компьютеры серийного выпуска. Над совершенствованием компьютеров серийного выпуска, между тем, работают сотни тысяч, если не миллионы, человек. Как первым обогнать вторых? Как добиться того, чтобы за время реализации новых суперкомпьютерных разработок – пусть даже совершенно гениальных – в магазине еще не успели появиться серийные компьютеры с еще большим быстродействием? Для этого разработчикам суперкомпьютеров надо работать очень быстро. Это возможно лишь в случае, если они будут максимально заимствовать решения, технологии и компоненты из компьютерной индустрии серийного выпуска, с тем, чтобы скомбинировать их по – новому, точечно вложить собственные силы в изготовление лишь недостающих фрагментов системы, и получить желанное новое качество – суперкомпьютер.
Но заимствуемые решения, компоненты и технологии очень быстро прогрессируют, и время от времени количество изменений переходит в качество – технически оправданные способы заимствования меняются. Вместе с ними очень быстро – буквально за 2 – 3 года – меняется и облик суперкомпьютеров, то есть происходит очередная суперкомпьютерная революция.
В Разделе 1.2 говорилось о ситуации конца 80-х годов. Тогда прогресс микроэлектроники привел к тому, что количество транзисторов, необходимое для получения действительно суперкомпьютерного быстродействия, перестало «умещаться» в рамки одного процессора, поскольку количество транзисторов, «умещающееся» в один процессор, «убралось» в одну микросхему и стало доступным в серийном выпуске. Необходимость придумать подходящую форму для организации такого количества транзисторов в единую систему привела к превращению суперкомпьютеров в многопроцессорные системы практически мгновенно. Весь мир начал изучать MPI, поскольку число транзисторов на кристалле перешло некоторый критический рубеж. Это и был момент вынужденного изменения способа заимствования решений из мира серийных компьютерных технологий, или суперкомпьютерная революция.
В конце 60-х, когда С. Крей еще только придумывал Cray-1 – одну из последних супер – машин «до – многопроцессорной» эпохи, в СССР был построен суперкомпьютер БЭСМ-6. В его процессоре было около 15 000 транзисторов. Примерно 20 лет спустя «до – многопроцессорная эпоха» кончилась, поскольку число транзисторов на кристалле, то есть в процессоре, перевалило за 1 000 000. Прошло еще 20 лет. Сегодня в не самом сложном, современном и быстром процессоре Itanium-2 транзисторов уже 1 000 000 000. Транзисторов на кристалле стало больше, чем во время первой суперкомпьютерной революции было в целой вычислительной системе. Очевидно, все предпосылки для очередного технологического переворота – третьей суперкомпьютерной революции – налицо.
Именно этим объясняется наблюдающийся в последние примерно 2 года бум новых процессорных архитектур. Простейшим выходом из положения было бы повторение первой суперкомпьютерной революции в масштабах одного кристалла, и этим, самым простым, путем промышленность, конечно же, идет – в кристалле IBM Cell, например, полноценных процессоров уже не 2 и не 4. Однако, самые интересные события, напрямую связанные с ростом числа транзисторов на кристалле, происходят в области технологий комплексирования кристаллов между собой. Об этом – в следующем разделе.
ПОСЛЕДУЮЩИЙ МАТЕРИАЛ НАХОДИТСЯ В ПРОЦЕССЕ РАЗРАБОТКИ, В НАСТОЯЩЕЕ ВРЕМЯ В ЭКЗАМЕНАЦИОННУЮ ПРОГРАММУ СПЕЦКУРСА НЕ ВХОДИТ.
Литература.
1. Лацис А. О. Как построить и использовать суперкомпьютер. М.:Бестселлер,2003. ISBN 5-98158-003-8. 240с.
2. Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. Санкт-Петербург: БХВ-Петербург,2002. ISBN 5-94157-160-7. 608с.
3. http://parallel.ru. Сетевой ресурс.
4. Лавров С. С. Введение в программирование. М.:Наука, 1973. 352с.
5. http://www.intel.com. Сетевой ресурс.
6. http://www.amd.com. Сетевой ресурс.
7. http://www.ibm.com. Сетевой ресурс.
8. http://www.myri.com. Сетевой ресурс.
9. http://www.dolphinics.com. Сетевой ресурс.
10. http://www.mellanox.com. Сетевой ресурс.
11. http://www.kiam.ru. Сетевой ресурс.
12. Лацис А. О. Из чего состоит барьер вхождения в мир параллельных технологий. В сб. «Системный анализ и информационные технологии», Междунар. Ун-т природы, общества и человека «Дубна», Дубна, 2004, ISBN5-89847-135-9.
13. Лацис А. О. МВС-900: вариант МВС-1000 на базе локальной сети Windows-машин. Препринт ИПМ им. М. В. Келдыша РАН №13, 2003г.
14. http://www.vmware.com. Сетевой ресурс.
15. http://www.emsl.pnl.gov/docs/g
16. http://www.cray.com. Сетевой ресурс.
17. http://upc.lbl.gov. Сетевой ресурс.
18. http://www.co-array.org. Сетевой ресурс.
19. http://www.netlib.org/scalapac
20. http://www.mcs.anl.gov/petsc. Сетевой ресурс.
21. http://planguages.cs.uchicago.
22. http://hpff.rice.edu. Сетевой ресурс.
23. http://www.keldysh.ru/dvm. Сетевой ресурс.
24. http://www.keldysh.ru/pages/no
25. http://www.hlrs.de/organizatio
Информация о работе Технологии высокопроизводительных вычислений