ЮЖНО-РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
(Новочеркасский политехнический институт)
Факультет: Информационных Технологий и Управления
Кафедра: Автоматики и Телемеханики
Специальность: Управление и информатика в технических системах
по информатике
Выполнил студент I - 1а Каширин В. В.
Ф.И.О.
Руководитель ассистент Малашенко Л.И.
Должность, звание Ф.И.О.
Консультант ассистент Малашенко Л.И.
Должность, звание Ф.И.О.
К защите Защита принята с оценкой
«______» ______________2000г. ____________________________
___________________________ «_____»________________2000г.
Подпись ____________________________
Подпись
ВВЕДЕНИЕ 3
1 ОСНОВНЫЕ ВИДЫ АРХИТЕКТУРЫ 4
1.1 Архитектура SMP 4
1.2 Архитектура MPP 4
2.1 Основные принципы архитектуры 5
a) Распределенная память 5
б) Межпроцессорная сеть 5
в) Высокий уровень интеграции 6
2.2 Суперкомпьютер nCube 2 7
2.3 Архитектура процессора nCube 8
а) Система ввода/вывода nCube 2 9
2.4 Программное обеспечение 10
2.5 Надежность системы nCube 2 10
3 СЕТЬ КАК СУПЕРКОМПЬЮТЕР 11
3.1 Параллельные программы - главный тормоз 11
3.2 MPI 11
3.3 Реализации MPI 12
3.4 Средства программирования высокого уровня 13
3.5 Попытка прогноза 14
4 ПИМЕРЫ ИСПОЛЬЗОВАНИЯ СУПЕРКОМПЬЮЮТЕРОВ 14
4.1 Моделирование построение белка 14
4.2 Виртуальная башня 14
С момента появления первых компьютеров одной из основных проблем, стоящих перед разработчиками, была производительность вычислительной системы. За время развития компьютерной индустрии производительность процессора стремительно возрастала, однако появление все более изощренного программного обеспечения, рост числа пользователей и расширение сферы приложения вычислительных систем предъявляют новые требования к мощности используемой техники, что и привело к появлению суперкомпьютеров. Что же такое суперкомпьютеры, и зачем они нужны?
В принципе, суперкомпьютер это обычная вычислительная система, позволяющая производить сложные расчеты за более короткие промежутки времени. О чем собственно и говорит приставка «Супер» (Super в переводе с английского означает: сверх, над). Любая компьютерная система состоит из трех основных компонентов - центрального процессора, то есть счетного устройства, блока памяти и вторичной системы хранения информации (к примеру, в виде дисков или лент). Ключевое значение имеют не только технические параметры каждого из этих элементов, но и пропускная способность каналов, связывающих их друг с другом и с терминалами потребителей. Одна из заповедей «Крей рисерч» гласит: «Быстродействие всей системы не превышает скорости самой медленнодействующей ее части». Важным показателем производительности компьютера является степень его быстродействия. Она измеряется так называемыми флопсами - от английского сокращения, обозначающего количество операций с числами, представленными в форме с плавающей запятой, в секунду. То есть за основу берется подсчет - сколько наиболее сложных расчетов машина может выполнить за один миг.
А зачем вообще нужны суперкомпьютеры? На этот вопрос дает ответ представитель компании «Крей рисерч» Вито Бонджорно: Раздвижение границ человеческого знания всегда опиралось на два краеугольных камня, которые не могут, существовать друг без друга, - теорию и опыт. Однако теперь ученые сталкиваются с тем, что многие испытания стали практически невозможными - в некоторых случаях из-за своих масштабов, в других - дороговизны или опасности для здоровья и жизни людей. Тут-то и приходят на помощь мощные компьютеры. Позволяя экспериментировать с электронными моделями реальной действительности, они становятся «третьей опорой» современной науки и производства.
Прошло время, когда создатели суперкомпьютеров стремились обеспечить максимальную производительность любой ценой. Специальные процессоры, дорогостоящая сверхбыстрая память, нестандартное периферийное оборудование - все это обходилось заказчикам в круглую сумму. Приобретали суперкомпьютеры либо предприятия ВПК, либо крупные университеты. И те, и другие делали это, как правило, за государственный счет. Окончание "холодной войны" и последовавшее за ним сокращение ассигнований на военные и околовоенные нужды нанесли серьезный удар по производителям суперкомпьютеров. Большинство из них были поглощены изготовителями менее производительной, но более доступной и ходовой вычислительной техники. Впрочем, у этих слияний были и технологические предпосылки - быстродействие серийно выпускаемых микропроцессоров постоянно росло, и производители суперкомпьютеров быстро переориентировались на них, что позволило существенно сократить общую стоимость разработки. Основной упор стал делаться на увеличение числа процессоров и повышение степени параллелизма программ.
1 ОСНОВНЫЕ ВИДЫ АРХИТЕКТУРЫ
Известно, что сегодня существуют две основные архитектуры параллельных компьютеров: симметричные мультипроцессорные системы с общей памятью (SMP) и мультипроцессорные системы с распределенной памятью (MPP).
1.1 Архитектура SMP
Основное преимущество SMP - относительная простота программирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой из процессоров какие вычисления будет выполнять, не столь принципиален, и значительная часть вычислительных алгоритмов, разработанных для последовательных компьютеров, может быть ускорена с помощью распараллеливающих и векторизирующих трансляторов. SMP-компьютеры - это наиболее распространенные сейчас параллельные вычислители, а 2-, 4-х процессорные ПК на основе Pentium и Pentium Pro стали уже массовым товаром. Однако общее число процессоров в SMP-системах, как правило, не превышает 16, а их дальнейшее увеличение не дает выигрыша из-за конфликтов при обращении к памяти. Применение технологий типа UPA, основанной на коммутации пакетов вместо общей шины и локальной кэш-памяти большого объема, способно частично решить проблему, подняв число процессоров до 32.
1.2 Архитектура MPP
Альтернатива SMP - архитектура MPP. Каждый процессор имеет доступ лишь к своей локальной памяти, а если программе нужно узнать значение переменной, расположенной в памяти другого процессора, то задействуется механизм передачи сообщений. Процессор, в памяти которого находятся нужные данные, посылает сообщение тому процессору, которому они требуются, а последний принимает его. Этот подход позволяет создавать компьютеры, включающие в себя тысячи процессоров. На нем основаны все машины, имеющие производительность в сотни миллиардов операций в секунду.
Познакомимся поближе с этой архитектурой и одним из представителей этой архитектуры, суперкомпьютером nCube.
2 СУПЕРКОМПЬЮТЕРЫ КОМПАНИИ nCube
Одним из пионеров в создании MPP-систем стала основанная в 1983 году компания nCube. В 1985 году появился первый ее MPP-компьютер, nCube 1. Система nCube 1, в основе которой, как и в основе всех последующих поколений компьютеров nCube, лежит гиперкубическая топология межпроцессорных соединений и высокий уровень интеграции на базе технологии VLSI, показала рекордные результаты по абсолютной производительности и в соотношении цена/производительность для научных вычислений.
В 1989 году компания nCube выпустила семейство суперкомпьютеров nCube 2. Большие вычислительные возможности, гибкая архитектура и мощное специализированное программное обеспечение позволяют применять системы nCube 2 в широком диапазоне областей - от сложнейших научных задач до управления информацией в бизнесе.
Семейство nCube 2 представляет собой масштабируемую серию систем, производительность которых может достигать 34 GigaFlops. Каждый суперкомпьютер этой серии содержит набор процессоров nCube, соединенных в гиперкубическую сеть. Наибольшую систему составляют 8192 процессора, и ее мощность более чем в 1000 раз превышает мощность наименьшей - с 8 процессорами. Возможности памяти и системы ввода/вывода возрастают вместе с ростом процессорной мощности.
Следующая цель компании nCube - разработка нового семейства Mpp-систем, суперкомпьютеров nCube 3. Новое поколение суперкомпьютеров nCube, следуя принципам высокой интегрируемости и масштабируемости, станет первой промышленно реализованной платформой с производительностью до нескольких TFlops, стопроцентно совместимой с предыдущими поколениями систем nCube.
2.1 Основные принципы архитектуры
a) Распределенная память
В суперкомпьютерах nCube используется архитектура распределенной памяти, позволяющая оптимизировать доступ к оперативной памяти, вероятно, наиболее критичному ресурсу вычислительной системы.
Традиционные архитектуры с разделенной памятью удобны для систем с небольшим числом процессоров, однако, они плохо масштабируются по мере добавления процессоров и памяти. Когда в системе с разделением памяти увеличивается число процессоров, возрастает конкуренция в использовании ограниченной пропускной способности системной шины, что снижает производительность соединения процессор-память. Кроме того, добавление процессоров в такую систему требует увеличения количества логики для управления памятью, снижая тем самым производительность системы и увеличивая ее цену.
Эти недостатки отсутствуют в системах с распределенной памятью. В такой системе каждый процессор имеет свою собственную локальную память. Потенциальные узкие места, связанные с шиной процессор-память и необходимостью разрабатывать системы управления кэшем, полностью исключаются. С добавлением процессоров добавляется память, пропускная способность соединения процессор-память масштабируется вместе с вычислительной мощностью.
б) Межпроцессорная сеть
Топология межпроцессорных соединений, обеспечивающая масштабирование до большого числа процессоров без снижения производительности коммуникаций или увеличения времени ожидания, является обязательной для MPP-систем. Суперкомпьютеры nCube используют сетевую топологию гиперкуба, которая отвечает этим требованиям. Соединения между процессорами nCube-системы образуют многомерный куб, называемый гиперкубом. По мере добавления процессоров увеличивается размерность гиперкуба. Соединение двух гиперкубов одинаковой размерности образует гиперкуб следующей размерности. N-мерный гиперкуб содержит 2€n процессоров. Двухмерный гиперкуб - это квадрат. Трехмерный гиперкуб образует обычный куб, а четырехмерный гиперкуб представляет собой куб в кубе. Для семейства суперкомпьютеров nCube 2 гиперкуб максимальной размерности 13 содержит 8192 процессора. В системе nCube 3 число процессоров может достигать 65536 (16-мерный гиперкуб).
Эффективность сетевой топологии измеряется, в частности, числом шагов для передачи данных между наиболее удаленными процессорами в системе. Для гиперкуба максимальное расстояние (число шагов) между процессорами совпадает с размерностью куба. Например, в наибольшем 13-мерном семейства nCube 2 сообщения между процессорами никогда не проходят более 13 шагов. Для сравнения, в 2-мерной конфигурации "mesh" (петля) с числом процессоров, вдвое меньшим числа процессоров в максимальной системе nCube 2, наибольшее расстояние между процессорами составляет 64 шага. Задержки коммуникаций в такой системе значительно увеличиваются. Таким образом, никакая другая топология соединения процессоров не может сравниться с гиперкубом по эффективности. Пользователь может удвоить число процессоров в системе, при этом увеличивая длину пути связи между наиболее удаленными процессорами только на один шаг.
Большое число соединений в гиперкубе создает высочайшую пропускную способность межпроцессорных соединений по сравнению с любой другой сетевой схемой. Большое количество путей передачи данных и компактный дизайн гиперкуба позволяют передавать данные с очень высокой скоростью. Кроме того, гиперкубическая схема характеризуется большой гибкостью, так как она позволяет эмулировать другие популярные топологии, включая деревья, кольца. Таким образом, пользователям nCube-систем гарантируется корректное выполнение приложений, зависящих от других топологий.
в) Высокий уровень интеграции
Многие преимущества nCube-систем, и, прежде всего высочайшие показатели - надежности и производительности, являются результатом использования технологии VLSI (Very Large Scale Integration - сверхвысокая степень интеграции). В большей степени, чем какие-либо другие факторы, на надежность компьютера влияет число используемых компонентов. Большее число компонентов неминуемо увеличивает вероятность сбоя системы. По этой причине nCube интегрирует все функции процессорного узла на одно VLSI-устройство. VLSI-интеграция также сокращает требуемое число соединений, которые могут оказывать решающее влияние на целостность всей системы.
Высокий уровень интеграции сокращает пути передачи данных, повышая тем самым производительность системы. Интеграция процессорного узла на один чип оставляет свободными для контроля только простые соединения с памятью и сетевые интерфейсы вместо сложных сигналов синхронизации, арбитража и управления. Эти простые соединения тестируются и корректируются с помощью методов контроля четности и ЕСС (Error Correction Code - код коррекции ошибок), упрощая процесс определения и изоляции ошибок.
2.2 Суперкомпьютер nCube 2
Суперкомпьютер nCube 2 масштабируется от 8-процессорных моделей до моделей с 8192 процессорами. Архитектура nCube 2 уравновешивает процессорную мощность, пропускную способность памяти и пропускную способность системы ввода/вывода. Добавление процессоров в систему не влечет за собой появление узких мест в пропускной способности памяти или системы ввода/вывода.
Семейство nCube 2 включает в себя две серии суперкомпьютеров:
— Серия nCube 2S базируется на процессоре nCube 2S с тактовой частотой 25 MHz; предельная производительность 33 MFLOPS - 34 GFLOPS; размер оперативной памяти 32 Мб - 32 Гб;
— Серия nCube 2 базируется на процессоре nCube 2 с тактовой частотой 20 MHz; предельная производительность 26 MFLOPS - 27 GFLOPS; размер оперативной памяти 32 Мб - 32 Гб.
Архитектура суперкомпьютера семейства nCube 2 базируется на гиперкубической сети VLSI - чипов, спаренных с независимыми друг от друга устройствами памяти. Чип, или процессор nCube 2, включает в себя:
- 64-разрядный центральный процессор;
- 64-разрядный модуль вычислений с плавающей точкой;
- удовлетворяющий стандарту IEEE (Institute of Electrical and Electronic Engineers - Институт инженеров по электротехнике и радиоэлектронике) интерфейс управления памятью с 39-разрядным путем данных 14 двунаправленных каналов DMA (Direct Memory Access - прямой доступ к памяти)
При тактовой частоте 25 МГц процессор имеет скорость 4.1 MFLOPS для вычислений с плавающей точкой одинарной и 3.0 MFLOPS двойной точности.
Каждый процессор nCube 2 конфигурируется с устройством динамической памяти емкостью от 4 до 64 МБайт.
Распределенная архитектура памяти фактически не налагает никаких ограничений на скорость операций с памятью. Процессоры не конкурируют в использовании пропускной способности соединения с памятью и не должны ждать подкачки данных. Добавление процессоров в систему увенчивает пропускную способность памяти и тем самым повышает производительность.
Каждый суперкомпьютер nCube 2 содержит компактную сеть процессоров. На одну процессорную плату nCube 2 может монтироваться до 64 процессоров. Процессорная стойка может содержать 16 плат с общим числом процессоров до 1024. Для построения систем большего размера стойки комбинируются. Использование недорогих строительных блоков обеспечивает низкую цену полной компьютерной системы в сочетании с феноменально высокой производительностью, достигнутой за счет комбинированной мощности процессорной сети.
Каждый процессор nCube 2 содержит 14 каналов DMA 13 для соединений в гиперкубе и 1 для ввода/вывода. Выделенный канал ввода/вывода уравновешивает вычислительную производительность процессора с производительностью его системы ввода/вывода. По мере добавления процессоров в систему пропускная способность системы ввода/вывода гиперкуба масштабируется вместе с процессорной мощностью и памятью. В состав процессора nCube 2 входит высокоскоростное устройство маршрутизации сообщений, которое управляет передачей сообщений между процессорами. Устройство маршрутизации обеспечивает прямую передачу сообщений без прерывания промежуточных процессоров или необходимости хранения данных сообщения в их памяти. Сообщения передаются со скоростью 2.75 МБ/сек на канал DMA. Специальные методы маршрутизации автоматически вычисляют кратчайший путь между процессорами и предотвращают взаимную блокировку сообщений, освобождая пользователей от необходимости планировать маршруты. Устройство маршрутизации передает сообщения настолько быстро, что число проходимых шагов влияет на производительность гораздо меньше, чем в других компьютерах. Высокая скорость передачи создает иллюзию, что каждый процессор связан непосредственно с любым другим в сети. Эффективность гиперкубической топологии в совокупности с высокоскоростным устройством маршрутизации создают высокопроизводительную систему межпроцессорных соединений с максимальной, по сравнению с другими процессорными сетями, скоростью межпроцессорных коммуникаций. Суперкомпьютер серии nCube 2 с 8192 процессорами имеет скорость межпроцессорной передачи 577 ГБ/сек.
Каждый процессор nCube 2 выполняет свою собственную программируемую последовательность команд и может функционировать независимо. Этот принцип позволяет выделять подмножества процессоров для параллельного выполнения различных операций. Такое разбиение гиперкуба превращает суперкомпьютер nCube 2 в многопользовательскую, многозадачную систему. Программное обеспечение nCube 2 выделяет набор процессоров - подкуб - для программы пользователя и загружает ее. В течение необходимого времени каждый такой подкуб функционирует как отдельный компьютер. Пользователи могут изменять размеры подкубов в соответствии с требованиями своих программ.
2.3 Архитектура процессора nCube
Процессор nCube, как и следует из общего назначения системы, ориентирован прежде всего на вещественные вычисления. За один такт генератора его вещественное арифметическое устройство выполняет две операции, в то время как целочисленное - одну. При этом вещественный конвейер состоит всего из двух ступеней (в других архитектурах число ступеней вещественного процессора от трех до семи). Высокая доступность кэша на кристалле процессора обеспечивает практически пиковые показатели эффективности даже при обработке длинных векторов, размещенных в памяти.
На кристалле расположены регистровый файл и два кэша по 16 КБайт каждый: разделенные кэш команд и кэш данных. Скорость доступа к внутреннему кэшу составляет 1.6 ГБайт/сек, а для большей эффективности обслуживает его специальный конвейер. Доступ к кэшу осуществляется по физическому адресу, чтобы избежать ненужных перемещений данных в случае переключения контекста.
Процессор nCube включает в себя полную поддержку виртуальной памяти. В основу архитектуры заложено 64-разрядное поле виртуального адреса, хотя в настоящее время реализован 48-разрядный виртуальный адрес, обеспечивающий адресацию 256 ТБайт. Размеры страниц могут иметь переменные размеры от 256 Байт до 64 МБайт.
а) Система ввода/вывода nCube 2
Высокопроизводительной вычислительной системе должна соответствовать мощная, быстрая и гибкая система ввода/вывода. В суперкомпьютере nCube 2 система ввода/вывода использует тот же самый VLSI- процессор, который функционирует как вычислительный элемент в гиперкубической сети. Каноны DMA в процессорах системы ввода/вывода используются как пути передачи данных. Наличие выделенных процессоров ввода/вывода позволяет осуществлять параллельную работу вычислительной сети и системы ввода/вывода.
Система ввода/вывода масштабируется вместе с процессорной сетью. Суперкомпьютер большого размера имеет не только больше вычислительных процессоров, но и большее количество процессоров ввода/вывода. nCube 2 поддерживают несколько интерфейсов ввода/вывода, обеспечивающих пользователей связью с необходимыми им устройствами.
Плата ввода/вывода nChannel осуществляет связь суперкомпьютера nCube 2 с устройствами вторичного хранения, дисками, магнитными лентами, сетями и другими устройствами. Плата nChannel имеет 16 независимых каналов ввода/вывода, каждый из которых управляется процессором nCube 2. К каждому каналу подключается модуль ввода/вывода, например, контроллер SCSI. Каждый канал передает данные со скоростью 20 МБ/сек. С помощью каналов платы nChannel система nCube 2 соединяется с хост-компьютером, сетью Ethernet, дисководами и накопителями на магнитной ленте, а также модулями преобразования сигналов и передачи видеообразов.
Плата HIPPI позволяет соединять суперкомпьютер nCube 2 с другими суперкомпьютерами, запоминающими устройствами и иными системами, поддерживающими интерфейс HIPPI (High Performance Parallel Interface Высокопроизводительный параллельный интерфейс). Плата HIPPI использует 16 процессоров nCube 2 для обработки сетевого трафика, обычно 8 процессоров для управления вводом и 8 для управления выводом. Скорость передачи данных достигает 100 МБ/сек.
Графическая подсистема реального времени nVision обеспечивает интегрированную подсистему графики и ввода/вывода, которая позволяет программистам отображать и взаимодействовать с большими объемами данных в реальном времени. На плате nVision размещены 16 процессоров nCube 2, 2 CRT-контроллера, специальный текстовый процессор, 16 МБайт памяти и 2 МБайт буфера.
Компьютер nCube 2 соединяется по сети с управляющим компьютером, с которого пользователи загружают nCube 2, разрабатывают и запускают параллельные программы, наблюдают за функционированием процессорной сети и системы ввода/вывода. Стандартным управляющим компьютером для nCube 2 является рабочая станция производства компании Silicon Graphics.
2.4 Программное обеспечение
На всех компьютерах семейства nCube 2 устанавливается специализированная программная среда PSE (Parallel Software Environment), включающая в себя следующие компоненты:
- операционная система nCX, построенная по микроядерной технологии и выполняющаяся на всех процессорах гиперкуба, она управляет системой ввода/вывода;
- драйвер хост-интерфейса, интерфейс ввода/вывода для соединения с управляющим компьютером; библиотека стандартных UNIX-функций;
- средства разработки для написания, компиляции, профилирования, отладки, запуска и контроля параллельных программ;
- утилиты системного администратора;
- подсистема интерактивной (on-line) документации.
Среда PSE обеспечивает согласованный для различных моделей семейства nCube 2 прикладной интерфейс. Программы, разработанные для компьютеров с небольшим числом процессоров, не требуют переделки при переносе на систему nCube 2 большего размера. Операционная среда nCube 2 интегрирована со средой управляющего компьютера, обеспечивая пользователей возможностью разрабатывать программы на привычной им платформе. С помощью PSE пользователи могут работать независимо, получая автономный контроль над выполнением своих программ. Множество пользователей могут одновременно выполнять программы.
Среда PSE базируется на nCX - высокооптимизированном, небольшом (до 128 КБ) и быстром микроядре (microkernel), который обеспечивает сервис операционной системы на каждом процессоре, как гиперкуба, так и системы ввода-вывода. nCX поддерживает управление процессами и управление памятью, многозадачность, интерфейс системных вызовов UNIX System V Release 4, а также высокопроизводительную систему передачи сообщений. Другие операционные средства, такие как драйверы ввода/вывода и сетевые соединения, распределяются между вычислительными узлами и процессорами ввода/вывода. Операционная система nCX обеспечивает единый интерфейс для параллельных программ и драйверов ввода/вывода.
На суперкомпьютерах nCube 2 поддерживаются два вида программирования:
SPMD (Single Program Multiple Data - Одна программа, Множество данных): в процессорную сеть загружается одна программа, каждый экземпляр программы обрабатывает свой собственный набор данных; процессоры могут обмениваться информацией.
MPMD (Multiple Program Multiple Data - Множество программ, Множество данных): в процессорную сеть загружается набор программ, каждый экземпляр каждой программы обрабатывает свои собственные данные; программы могут обмениваться информацией.
2.5 Надежность системы nCube 2
Суперкомпьютеры nCube 2 представляют наиболее надежные на сегодняшний день системы. Каждый аспект дизайна nCube 2 подразумевает надежность. Например, высокая интеграция - процессорный узел на одном чипе уменьшает число компонентов, в которых может произойти сбой. Быстрое, эффективное микроядро обеспечивает все необходимые для приложений функции, не перегружая систему более сложной, но менее надежной операционной средой.
Теоретически суперкомпьютер можно представить как объединение большого количества обычных компьютеров в один, единый блок. Иначе это можно представить, как локальную сеть, имеющую некоторое количество узлов в одном блоке. Следовательно, можно в качестве суперкомпьютера использовать и любую локальную (и не только локальную) сеть. Начиная с 1992 года по скорости роста производительности сетевое оборудование обгоняет процессоры. Для многих организаций перспектива использования сетей рабочих станций и ПК в качестве суперкомпьютеров весьма заманчива. Основные достоинства сетей - возможность постепенного расширения и модернизации, а также режим эксплуатации сети днем для обычных нужд разработки и проектирования, а ночью для расчетов. Сети не могут соревноваться по скорости вычисления с суперкомпьютерами-рекордсменами, но они на один-два порядка дешевле, их можно использовать там, где объемы расчетов велики, а суперкомпьютеры экономически не оправданы. Такие сетевые технологии будут способствовать использованию сетей в качестве параллельных вычислителей. В первую очередь это Fast Ethernet и Gigabit Ethernet. Далее идут технологии коммутации. И, наконец, новые сетевые протоколы, поддерживающие широковещание
3.1 Параллельные программы - главный тормоз
Главным препятствием к внедрению практически всех параллельных архитектур является отсутствие параллельных программ. У унаследованных от последовательного мира программ имеется недостаток - большой объем кода, принципиально не допускающий параллельного исполнения. Его нельзя преодолеть за счет усовершенствования техники компиляции. Так, если программа половину времени занимается действиями, которые требуется совершать строго последовательно, то параллельное выполнение оставшейся половины в предельном случае даст лишь двукратное ускорение. В результате, хотим мы этого или нет, последовательные вычислительные алгоритмы придется заменять параллельными.
3.2 MPI
Практически на всех параллельных системах имелись свои собственные библиотеки передачи сообщений. В простейшем случае они предусматривали передачу и прием отдельных пакетов между соседними процессорами. Более сложные поддерживали передачу сообщений произвольной длины, маршрутизацию сообщений и аппарат тегов, который позволяет принимающей стороне самой решать, в какой последовательности обрабатывать поступающие сообщения. Некоторые библиотеки допускали динамическое порождение и уничтожение процессов.
За последние годы в деле создания ПО для систем с распределенной памятью наметился серьезный прогресс. Самым крупным достижением была стандартизация интерфейса передачи сообщений MPI (message passing interface). Во-первых, MPI поддерживает несколько режимов передачи данных, важнейшие из которых: синхронная передача, не требующая выделения промежуточных буферов для данных и обеспечивающая надежную передачу данных сколь угодно большого размера, и асинхронная передача, при которой посылающий сообщение процесс не ждет начала приема, что позволяет эффективно передавать короткие сообщения. Во-вторых, MPI позволяет передавать данные не только от одного процесса к другому, но и поддерживает коллективные операции: широковещательную передачу, разборку-сборку, операции редукции. В-третьих, MPI предусматривает гетерогенные вычисления. Вычислительная система может включать разные процессоры, в том числе имеющие различные наборы команд и разное представление данных. Если у вас имеется суперкомпьютер, то это кажется излишним, но для организаций, эксплуатирующих сети рабочих станций с различными процессорами и версиями Unix, - это находка.
Синтаксис MPI облегчает создание приложений в модели SPMD (single program multiple data) - одна программа работает в разных процессах со своими данными. Одна и та же функция вызывается на узле-источнике и узлах-приемниках, а тип выполняемой операции (передача или прием) определяется с помощью параметра. Такой синтаксис вызовов делает SPMD-программы существенно компактнее, хотя и труднее для понимания.
Основное отличие стандарта MPI от его предшественников - понятие коммуникатора. Все операции синхронизации и передачи сообщений локализуются внутри коммуникатора. С коммуникатором связывается группа процессов. В частности, все коллективные операции вызываются одновременно на всех процессах, входящих в эту группу
Поддержка модульного программирования в сочетании с независимостью от аппаратуры дала мощный импульс к созданию библиотек. Одна из самых интересных разработок - пакет линейной алгебры ScaLAPACK, разработанный группой Дж. Донгарра.
3.3 Реализации MPI
Библиотеки MPI реализованы практически на всех современных суперкомпьютерах, к примеру, в университете Коимбра (Португалия) разработали библиотеку MPI для Windows 95 (http://pandora.uc.pt/w32mpi), которая особенно интересна для преподавателей и студентов, поскольку при отладке достаточно иметь обычный ПК, а запуск параллельных приложений в сети позволяет получить реальный выигрыш в производительности.
Практический опыт показывает, что идеально распараллеливаемые задачи, такие как параллельное умножение матриц, можно решать практически на любых сетях, и добавление даже относительно слабых вычислительных узлов дает выигрыш. Другие задачи, в частности решение систем линейных уравнений, более требовательны к коммуникационному оборудованию и качеству реализации передачи сообщений. Именно поэтому тесты для оценки реального быстродействия параллельных вычислительных систем базируются на параллельных аналогах известного пакета Linpack. Так, система линейных уравнений размером 800х800 решается на четырех компьютерах Sun SPARCstation 5, объединенных сетью Ethernet 10 Мбит/c, быстрее, чем на трех; на пяти - приблизительно за то же время, что и на четырех, а добавление шестого компьютера однозначно ухудшает производительность вычислительной системы. Если вместо Fast Ethernet 10 Мбит/c использовать Fast Ethernet 100 Мбит/с, что лишь незначительно увеличивает общую стоимость системы, время, затрачиваемое на коммуникацию, уменьшается почти в 10 раз, а для решения данной задачи можно будет эффективно применять уже десятки рабочих станций.
3.4 Средства программирования высокого уровня
Часто в сетях отдельные компьютеры неравноценны, и имеет смысл нагружать их по-разному, однако даже простейшая программа, учитывающая балансировку нагрузки, - если кодировать ее, используя лишь средства MPI, - становится необъятной, и отладка ее мало кому окажется по силам. Так, матрицы в пакете SсаLAPACK, независимо от решаемой задачи и мощностей вычислительных элементов, всегда распределяются по процессорам равномерно. В результате, при наличии хотя бы одного слабого компьютера в сети, вычисления затягиваются - все ждут отстающего. Динамическая балансировка нагрузки, практически бесплатно получающаяся на SMP-компьютерах, в распределенных системах чрезвычайно трудна, и даже простое распределение данных в соответствии с мощностями узлов и последующие пересылки кодируются весьма непросто.
Выходом из создавшегося положения стали языки программирования, основанные на параллелизме данных. Первый из них, Fortran-D, появился в 1992 г. На смену ему пришел High Performance Fortran (HPF), представляющий собой расширение языка Fortran 90 и требующий от пользователя лишь указать распределение данных по процессорам. В остальном программа имеет последовательный вид (это, впрочем, не означает, что, придумывая алгоритм, не следует задумываться о присущем ему параллелизме). Транслятор самостоятельно распределяет вычисления по процессорам, выбирая в качестве узла, на котором следует производить вычисления, тот процессор, на котором будет использован результат вычисления выражения. При необходимости транслятор генерирует обращения к библиотеке передачи сообщений, например MPI. От компилятора HPF требуется тщательный анализ программы. Пользователь практически не имеет рычагов управления количеством пересылок, а поскольку инициализация каждой пересылки, независимо от объема передаваемой информации, - это десятки тысяч машинных тактов, качество получаемой программы от него зависит слабо.
В языке программирования mpC (http://www.ispras.ru/) - расширении ANSI Cи - принят компромиссный подход. Здесь пользователь распределяет не только данные, но и вычисления. Переменные и массивы распределяются по виртуальным сетям (networks) и подсетям, при этом в описаниях сетей указываются относительные мощности узлов и скорости связей между ними. В процессе выполнения mpC-программы система поддержки языка стремится максимально эффективно отобразить виртуальные сети на группы процессоров. В результате пользователь получает возможность равномерно нагружать узлы
3.5 Попытка прогноза
Использование сетей компьютеров для вычислительных задач - уже сегодня дело вполне реальное. В этом направлении ведутся научные разработки и сделан ряд пилотных проектов. В качестве коммуникационной платформы сейчас наиболее экономически оправдано применение коммутируемых сетей Fast Ethernet. При этом себестоимость системы производительностью 1,5-6 операций с вещественными числами в секунду на задачах линейной алгебры будет ниже 100 тыс. долл. Через пару лет в качестве коммуникационной платформы можно будет использовать Gigabit Ethernet или ATM (Asynchronous Transfer Mode - асинхронный режим передачи), обеспечивающие на порядок более высокие скорости передачи данных. В течение одного-двух лет должны появиться общепризнанные широковещательные протоколы транспортного уровня и основанные на них реализации MPI. На уровне прикладных программ MPI использоваться не будет. На нем станут базироваться лишь некоторые библиотеки и системы поддержки языков, основанные на параллелизме данных.
4 ПИМЕРЫ ИСПОЛЬЗОВАНИЯ СУПЕРКОМПЬЮЮТЕРОВ
4.1 Моделирование построение белка
Корпорация IBM объявила о том, что планирует выделить 100 миллионов долларов на создание самого быстрого в мире суперкомпьютера, который будет использоваться для моделирования построения белка из аминокислот.
Новый суперкомпьютер, носящий название Blue Gene, будет способен совершать один квадриллион операций в секунду, то есть будет в тысячу раз мощнее знаменитого Deep Blue, с которым в 1997 году играл в шахматы чемпион мира Гарри Каспаров.
Blue Gene будет работать на основе более миллиона процессоров, каждый из которых способен совершать миллиард операций в секунду, сообщают представители IBM. Новый гигант будет в два миллиона раз быстрее, чем существующие сегодня мощнейшие персональные компьютеры.
Исследователи рассчитывают достигнуть этого уровня мощности в течение пяти лет, по истечении которых суперкомпьютер будет использоваться в генетическом моделировании. Если Blue Gene оправдает возложенные на него надежды, его создание станет огромным шагом вперед в области здравоохранения и биологии.
4.2 Виртуальная башня
По оценкам Федерального управления гражданской авиации США, в течение ближайших 20 лет количество самолетов, используемых для коммерческих полетов, увеличится вдвое. Это станет серьезным испытанием для авиадиспетчеров, которым придется внедрять новые технологии управления авиационными потоками как на земле, так и в воздухе.
НАСА решило внести свою скромную лепту в преодоление этой проблемы и создало симулятор настоящей башни авиадиспетчеров стоимостью в $110 миллионов. Башня FutureFlight Central расположена в Исследовательском центре Эймса НАСА. Она дает возможность симулировать работу крупнейших аэропортов мира, позволяя в реальном времени испытывать новые технологии управления перемещением самолетов. Это двухэтажное сооружение, в котором могут одновременно работать 12 операторов. Мозговым центром башни является 16-процессорный суперкомпьютер Reality Monster от SGI, обошедшийся НАСА в $1 миллион. Именно он обеспечивает вывод симуляции на 12 огромных видеоэкранов башни, имитирующих настоящие окна. Суперкомпьютер позволяет моделировать - помимо обстановки аэропорта - погодные эффекты и до 200 одновременно движущихся самолетов и машин наземного обслуживания. Первый этаж предназначен для "пилотов" и "обслуживающего персонала", которые будут вносить дополнительный элемент реалистичности, общаясь с авиадиспетчерами с помощью портативных радиостанций. Башня также может использоваться и в других симуляционных целях. В частности, планируется, что ее услугами смогут воспользоваться специалисты из Отделения автономных роботов НАСА для создания комнат управления межпланетными миссиями, состоящими из роботизированных машин.
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА:
Статья Андрея Шитова «Электронный супермозг», журнал «Эхо планеты» №4 1992г.
Статья Дмитрия Арапова «Можно ли превратить сеть в суперкомпьютер?», журнал «Открытые системы» №4 1997г.
Статья Н. Дубовой «Суперкомпьютеры nCube», журнал «Открытые системы»
Рубрика «Новости» из журналов КомпьюТерра
Контрольная: Тенденции развития Интернета В начале семидесятых годов отдел Министерства обороны США, известный под названием ARPA (Агентство исследовательских проектов особой сложности), занимался проблемами поддержки и сохранения коммуникационного контроля в случае потери основных систем связи при ядерном взрыве, произведенном Советским Союзом.
Реферат Создание сети Internet В 1961 году Defence Advanced Research Agensy (DARPA) по заданию министерства обороны США приступило к проекту по созданию экспериментальной сети передачи пакетов. Эта сеть, названная ARPANET, предназначалась первоначально для изучения методов обеспечения надежной связи между компьютерами различных типов. Многие методы передачи данных через модемы были разработаны в ARPANET.
Курсовая: Характеристика корпоративных компьютерных сетей В современную жизнь уверенно шагнули компьютерные сети. 1996 год был назван годом Интернета. Сегодня, любая, даже небольшая организация, имеющая несколько компьютеров не мыслит своего нормального функционирования без компьютерных сетей. В настоящее время ни у кого не вызывает удивления повсеместное использование компьютеров: в офисах крупных компаний, в высших и средних учебных заведениях, дома.
Реферат Кластерные системы Развитие традиционных архитектур построения вычислительных систем, таких как SMP, MPP, векторных параллельных систем идет достаточно быстрыми темпами. Повышается производительность, растет надежность и отказоустойчивость.
nreferat.ru
Введение
С момента появления первых компьютеров одной из основных проблем, стоящих перед разработчиками, была производительность вычислительной системы. За время развития компьютерной индустрии производительность процессора стремительно возрастала, однако появление все более изощренного программного обеспечения, рост числа пользователей и расширение сферы приложения вычислительных систем предъявляют новые требования к мощности используемой техники, что и привело к появлению суперкомпьютеров. Что же такое суперкомпьютеры, и зачем они нужны?
В принципе, суперкомпьютер это обычная вычислительная система, позволяющая производить сложные расчеты за более короткие промежутки времени. О чем собственно и говорит приставка «Супер» (Super в переводе с английского означает: сверх, над). Любая компьютерная система состоит из трех основных компонентов - центрального процессора, то есть счетного устройства, блока памяти и вторичной системы хранения информации (к примеру, в виде дисков или лент). Ключевое значение имеют не только технические параметры каждого из этих элементов, но и пропускная способность каналов, связывающих их друг с другом и с терминалами потребителей. Одна из заповедей «Крей рисерч» гласит: «Быстродействие всей системы не превышает скорости самой медленнодействующей ее части». Важным показателем производительности компьютера является степень его быстродействия. Она измеряется так называемыми флопсами - от английского сокращения, обозначающего количество операций с числами, представленными в форме с плавающей запятой, в секунду. То есть за основу берется подсчет - сколько наиболее сложных расчетов машина может выполнить за один миг.
А зачем вообще нужны суперкомпьютеры? Раздвижение границ человеческого знания всегда опиралось на два краеугольных камня, которые не могут, существовать друг без друга, - теорию и опыт. Однако теперь ученые сталкиваются с тем, что многие испытания стали практически невозможными - в некоторых случаях из-за своих масштабов, в других - дороговизны или опасности для здоровья и жизни людей. Тут-то и приходят на помощь мощные компьютеры. Позволяя экспериментировать с электронными моделями реальной действительности, они становятся «третьей опорой» современной науки и производства.
Прошло время, когда создатели суперкомпьютеров стремились обеспечить максимальную производительность любой ценой. Специальные процессоры, дорогостоящая сверхбыстрая память, нестандартное периферийное оборудование - все это обходилось заказчикам в круглую сумму. Приобретали суперкомпьютеры либо предприятия ВПК, либо крупные университеты. И те, и другие делали это, как правило, за государственный счет. Окончание "холодной войны" и последовавшее за ним сокращение ассигнований на военные и околовоенные нужды нанесли серьезный удар по производителям суперкомпьютеров. Большинство из них были поглощены изготовителями менее производительной, но более доступной и ходовой вычислительной техники. Впрочем, у этих слияний были и технологические предпосылки - быстродействие серийно выпускаемых микропроцессоров постоянно росло, и производители суперкомпьютеров быстро переориентировались на них, что позволило существенно сократить общую стоимость разработки. Основной упор стал делаться на увеличение числа процессоров и повышение степени параллелизма программ.
Первые суперкомпьютеры
Началом эры суперкомпьютеров можно, пожалуй, назвать 1976 год, когда появилась первая векторная система Cray 1. Работая с ограниченным в то время набором приложений, Cray 1 показала настолько впечатляющие по сравнению с обычными системами результаты, что заслуженно получила название “суперкомпьютер” и определяла развитие всей индустрии высокопроизводительных вычислений еще долгие годы. Но более чем за два десятилетия совместной эволюции архитектур и программного обеспечения на рынке появлялись системы с кардинально различающимися характеристиками, поэтому само понятие “суперкомпьютер” стало многозначным и пересматривать его пришлось неоднократно.
Попытки дать определение суперкомпьютеру опираясь только на производительность привели к необходимости постоянно поднимать планку, отделяющую его от рабочей станции или даже обычного настольного компьютера. Только за последние 15 лет нормы менялись несколько раз. По определению Оксфордского словаря вычислительной техники 1986 года, для того, чтобы получить это гордое название, нужно было иметь производительность в 10 мегафлоп (миллионов операций с плавающей запятой в секунду). В начале 90-х была преодолена отметка 200 мегафлоп, затем 1 гигафлоп.
Применение суперкомпьютеров
Для каких применений нужна столь дорогостоящая техника? Может показаться, что с ростом производительности настольных ПК и рабочих станций, а также серверов, сама потребность в суперЭВМ будет снижаться. Это не так. С одной стороны, целый ряд приложений может теперь успешно выполняться на рабочих станциях, но с другой стороны, время показало, что устойчивой тенденцией является появление все новых приложений, для которых необходимо использовать суперЭВМ.
Традиционной сферой применения суперкомпьютеров всегда были научные исследования: физика плазмы и статистическая механика, физика конденсированных сред, молекулярная и атомная физика, теория элементарных частиц, газовая динамика и теория турбулентности, астрофизика. В химии - различные области вычислительной химии: квантовая химия (включая расчеты электронной структуры для целей конструирования новых материалов, например, катализаторов и сверхпроводников), молекулярная динамика, химическая кинетика, теория поверхностных явлений и химия твердого тела,конструирование лекарств. Естественно, что ряд областей применения находится на стыках соответствующих наук, например, химии и биологии, и перекрывается с техническими приложениями. Так, задачи метеорологии, изучение атмосферных явлений и, в первую очередь, задача долгосрочного прогноза погоды, для решения которой постоянно не хватает мощностей современных суперЭВМ, тесно связаны с решением ряда перечисленных выше проблем физики. Среди технических проблем, для решения которых используются суперкомпьютеры, укажем на задачи аэрокосмической и автомобильной промышленности, ядерной энергетики, предсказания и разработки месторождений полезных ископаемых, нефтедобывающей и газовой промышленности (в том числе проблемы эффективной эксплуатации месторождений, особенно трехмерные задачи их исследования), и, наконец, конструирование новых микропроцессоров и компьютеров, в первую очередь самих суперЭВМ.
Суперкомпьютеры традиционно применяются для военных целей. Кроме очевидных задач разработки оружия массового уничтожения и конструирования самолетов и ракет, можно упомянуть, например, конструирование бесшумных подводных лодок и др. Самый знаменитый пример - это американская программа СОИ. Уже упоминавшийся MPP-компьютер Министерства энергетики США будет применяться для моделирования ядерного оружия, что позволит вообще отменить ядерные испытания в этой стране.
Суперкомпьютеры в России
Во всемирный процесс активизации рынка высокопроизводительных вычислений (HPC) все активнее включается и Россия. В 2003 году компании Arbyte и Kraftway при поддержке корпорации Intel объявили о создании своих Центров компетенции на базе платформы Intel, деятельность которых, в том числе, будет направлена и на построение НРС-систем. Кроме того, компании Intel и IBM сообщили о том, что компания Paradigm, ведущий поставщик технологий для обработки геолого-геофизических данных и проектирования бурения для нефтегазовой отрасли, модернизировала свой расположенный в Москве центр обработки сейсмических данных, установив серверный кластер IBM из 34 двухпроцессорных серверов на базе процессоров Intel Xeon. Новая система ускорила работу ресурсоемких вычислительных приложений Paradigm за счет применения кластерных технологий на базе ОС Linux. Новые возможности проведения более точных расчетов, несомненно, увеличат конкурентоспособность российских нефтяных компаний на мировом рынке.
В июне 2004 г. представители компании «Т-Платформы», Института программных систем (ИПС) РАН и корпорации Intel объявили о создании четырехузлового кластера T-Bridge8i на базе процессоров Intel Itanium 2 и технологии InfiniBand, а также рассказали о перспективах использования данного решения в рамках программы «СКИФ». Кластер T-Bridge8i стал первой в России системой на основе процессоров Intel Itanium 2, двухпроцессорные узлы которой выполнены в конструктиве высотой 1U. Объединив в T-Bridge8i передовые достижения в области 64-разрядной процессорной архитектуры и кластерных коммуникаций, инженеры «Т-Платформы» построили уникальное по концентрации вычислительной мощности решение, обладающее широкими возможностями для масштабирования. Этот кластер предназначен для решения задач, требующих максимальной производительности вычислений с плавающей точкой, и может эффективно использоваться в различных отраслях промышленности и для научных расчетов. В рамках программы «СКИФ» T-Bridge8i будет применяться с целью адаптации для архитектуры Intel Itanium программного обеспечения, разработанного в рамках программы, а также для исследований в области GRID-технологий.
2005 год оказался довольно богатым на события в области суперкомпьютерных технологий. В России были завершены два крупных проекта, на очереди - еще один.
Двумя важнейшими из них стала установка суперкомпьютера МВС-15000BM отечественной разработки в Межведомственном Суперкомпьютерном Центре РАН (МСЦ) и установка на НПО <Сатурн> кластера IBM eServer Cluster 1350, включающего 64 двухпроцессорных сервера IBM eServer xSeries 336. Последний является крупнейшей в России супер-ЭВМ используемой в промышленности и четвертым в совокупном рейтинге суперкомпьютеров на территории СНГ. НПО <Сатурн> собирается использовать его в проектировании авиационных газотурбинных двигателей для самолетов гражданской авиации. На очереди - еще один крупный проект суперкомпьютера для Росгидромета, тендер на строительство которого выиграл системный интегратор i-Teco.
В частном секторе суперкомпьютеры используются для моделирования нефтяных скважин, краш-тестов, сложных аэродинамических и гидродинамических расчетов. Основными заказчиками выступают автомобильная, судостроительная, авиационная и нефтегазовая промышленность. По мнению экспертов, совокупный объем рынка больших вычислительных систем в России составляет $100-150 млн., причем видное место принадлежит отечественным разработчикам. В год устанавливается 3-4 суперкомпьютера с производительностью, близкой к 1 Терафлоп.
На сегодняшний день крупнейшими отечественными проектами в области суперкомпьютеров являются российский проект МВС и российско-белорусский СКИФ. Разработка СуперЭВМ проекта МВС финансировалась за счет средств Минпромнауки России, РАН, Минобразования России, РФФИ, Российского фонда технологического развития. В настоящее время машины этой серии установлены в МСЦ РАН и ряде региональных научных центров РАН (Казань, Екатеринбург, Новосибирск) и используются преимущественно для научных расчетов.
В настоящее время одним из разработчиков ПО для МВС является фирма InterProgma, работающая в Черноголовке в рамках уже существующего ИТ-парка. Компания в тесном сотрудничестве с ИПХФ РАН ведет разработку как базового программного обеспечения для крупномасштабного моделирования на суперкомпьютерных системах, т.е. программного обеспечения, позволяющего упростить и автоматизировать процесс распараллеливания, так и специального инженерного программного обеспечения для моделирования различных высокоэнергетических процессов в химической, атомной и аэрокосмической промышленности. Так, пакет IP-3D предназначен для численного моделирования газодинамических процессов в условиях экстремально высоких температур и давлений, невоспроизводимых в лабораторных условиях. Опыт работы на MBC1000M показали очень хорошую масштабируемость и высокую скорость вычисления данного пакета
Проект СКИФ финансировался за счет бюджетов России и Белоруссии в рамках союзной программы на паритетных началах. В настоящее время российско-белорусская программа СКИФ, объемом $10 млн., уже завершена, и в ходе ее реализации были созданы суперкомпьютеры СКИФ К-500 и СКИФ К-1000. Cтоимость СКИФ К-1000 составила $1,7 млн., что на порядок ниже стоимости иностранного аналога ($4 млн.). На сегодняшний день, основным пользователем данной разработки является белорусская сторона. СКИФ К-1000, установлен в Объединенном институте проблем информатики НАН Белоруссии, и уже сейчас используется не только учеными, но и крупнейшими предприятиями-экспортерами: МАЗом, БелАЗом, Белорусским тракторным заводом, Заводом карданных валов. Столь успешное внедрение суперкомпьютерных технологий в реальный сектор во многом объясняется тем, что доступ белорусских предприятий к СКИФу координируется государством и оплачивается из бюджета, поскольку сами предприятия находятся в государсвенной собственности.
В России же СКИФ и МВС пока воспринимаются лишь как академические проекты. Причина этого в том, что крупные российские машиностроительные корпорации, такие как НПО <Сатурн>, предпочитают зарубежные суперЭВМ, поскольку отработанные прикладные решения от мировых лидеров, таких как IBM и HP уже снабжены готовым целевым ПО и средствами разработки, имеют лучший сервис. Сделать МВС и СКИФ востребованными для российской промышленности поможет создание общего вычислительного центра ориентированного на промышленный сектор, с распределенным доступом к машинному времени. Создание Центра резко удешевит затраты на обслуживание суперкомпьютера, а также ускорит процесс создания и систематизации ПО (написание драйверов, библиотек, стандартных приложений).
Продвижению отечественных суперкомпьютерных технологий в промышленной сектор России и за ее пределы будет способствовать рост отечественных компаний, способных конкурировать в данной сфере с транснациональными корпорациями. Такой компанией уже является <Т-Платформы>, которая выступала в роли главного исполнителя СКИФ. Наряду с государственными и академическими структурами, клиентами компании являются <Комстар Объединенные Телесистемы>, Rambler, рекрутинговая компания HeadHunter.ru, <Саровские Лаборатории>. <Т-Платформы> были призаны лучшей компанией VI Венчурной Ярмарки в октябре 2005 года в Санкт-Петербурге.
Заключение
Еще 10–15 лет назад суперкомпьютеры были чем-то вроде элитарного штучного инструмента, доступного в основном ученым из засекреченных ядерных центров и криптоаналитикам спецслужб. Однако развитие аппаратных и программных средств сверхвысокой производительности позволило освоить промышленный выпуск этих машин, а число их пользователей в настоящее время достигает десятков тысяч. Фактически, в наши дни весь мир переживает подлинный бум суперкомпьютерных проектов, результатами которых активно пользуются не только такие традиционные потребители высоких технологий, как аэрокосмическая, автомобильная, судостроительная и радиоэлектронная отрасли промышленности, но и важнейшие области современных научных знаний.
topref.ru
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ
ЮЖНО-РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
(Новочеркасский политехнический институт)
Факультет: Информационных Технологий и Управления
Кафедра: Автоматики и Телемеханики
Специальность: Управление и информатика в технических системах
РЕФЕРАТ
по информатике
На тему: Суперкомпьютеры
Выполнил студент I - 1а Каширин В. В.
Ф.И.О.
Руководитель ассистент Малашенко Л.И.
Должность, звание Ф.И.О.
Консультант ассистент Малашенко Л.И.
Должность, звание Ф.И.О.
К защите Защита принята с оценкой
«______» ______________2000г. ____________________________
___________________________ «_____»________________2000г.
Подпись ____________________________
Подпись
Новочеркасск 2000
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
1 ОСНОВНЫЕ ВИДЫ АРХИТЕКТУРЫ 4
1.1 Архитектура SMP 4
1.2 Архитектура MPP 4
2 СУПЕРКОМПЬЮТЕРЫ КОМПАНИИ nCube 4
2.1 Основные принципы архитектуры 5
a) Распределенная память 5
б) Межпроцессорная сеть 5
в) Высокий уровень интеграции 6
2.2 Суперкомпьютер nCube 2 7
2.3 Архитектура процессора nCube 8
а) Система ввода/вывода nCube 2 9
2.4 Программное обеспечение 10
2.5 Надежность системы nCube 2 10
3 СЕТЬ КАК СУПЕРКОМПЬЮТЕР 11
3.1 Параллельные программы - главный тормоз 11
3.2 MPI 11
3.3 Реализации MPI 12
3.4 Средства программирования высокого уровня 13
3.5 Попытка прогноза 14
4 ПИМЕРЫ ИСПОЛЬЗОВАНИЯ СУПЕРКОМПЬЮЮТЕРОВ 14
4.1 Моделирование построение белка 14
4.2 Виртуальная башня 14
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА 16
ВВЕДЕНИЕ
С момента появления первых компьютеров одной из основных проблем, стоящих перед разработчиками, была производительность вычислительной системы. За время развития компьютерной индустрии производительность процессора стремительно возрастала, однако появление все более изощренного программного обеспечения, рост числа пользователей и расширение сферы приложения вычислительных систем предъявляют новые требования к мощности используемой техники, что и привело к появлению суперкомпьютеров. Что же такое суперкомпьютеры, и зачем они нужны?
В принципе, суперкомпьютер это обычная вычислительная система, позволяющая производить сложные расчеты за более короткие промежутки времени. О чем собственно и говорит приставка «Супер» (Super в переводе с английского означает: сверх, над). Любая компьютерная система состоит из трех основных компонентов - центрального процессора, то есть счетного устройства, блока памяти и вторичной системы хранения информации (к примеру, в виде дисков или лент). Ключевое значение имеют не только технические параметры каждого из этих элементов, но и пропускная способность каналов, связывающих их друг с другом и с терминалами потребителей. Одна из заповедей «Крей рисерч» гласит: «Быстродействие всей системы не превышает скорости самой медленнодействующей ее части». Важным показателем производительности компьютера является степень его быстродействия. Она измеряется так называемыми флопсами - от английского сокращения, обозначающего количество операций с числами, представленными в форме с плавающей запятой, в секунду. То есть за основу берется подсчет - сколько наиболее сложных расчетов машина может выполнить за один миг.
А зачем вообще нужны суперкомпьютеры? На этот вопрос дает ответ представитель компании «Крей рисерч» Вито Бонджорно: Раздвижение границ человеческого знания всегда опиралось на два краеугольных камня, которые не могут, существовать друг без друга, - теорию и опыт. Однако теперь ученые сталкиваются с тем, что многие испытания стали практически невозможными - в некоторых случаях из-за своих масштабов, в других - дороговизны или опасности для здоровья и жизни людей. Тут-то и приходят на помощь мощные компьютеры. Позволяя экспериментировать с электронными моделями реальной действительности, они становятся «третьей опорой» современной науки и производства.
Прошло время, когда создатели суперкомпьютеров стремились обеспечить максимальную производительность любой ценой. Специальные процессоры, дорогостоящая сверхбыстрая память, нестандартное периферийное оборудование - все это обходилось заказчикам в круглую сумму. Приобретали суперкомпьютеры либо предприятия ВПК, либо крупные университеты. И те, и другие делали это, как правило, за государственный счет. Окончание "холодной войны" и последовавшее за ним сокращение ассигнований на военные и околовоенные нужды нанесли серьезный удар по производителям суперкомпьютеров. Большинство из них были поглощены изготовителями менее производительной, но более доступной и ходовой вычислительной техники. Впрочем, у этих слияний были и технологические предпосылки - быстродействие серийно выпускаемых микропроцессоров постоянно росло, и производители суперкомпьютеров быстро переориентировались на них, что позволило существенно сократить общую стоимость разработки. Основной упор стал делаться на увеличение числа процессоров и повышение степени параллелизма программ.
1 ОСНОВНЫЕ ВИДЫ АРХИТЕКТУРЫ
Известно, что сегодня существуют две основные архитектуры параллельных компьютеров: симметричные мультипроцессорные системы с общей памятью (SMP) и мультипроцессорные системы с распределенной памятью (MPP).
1.1 Архитектура SMP
Основное преимущество SMP - относительная простота программирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой из процессоров какие вычисления будет выполнять, не столь принципиален, и значительная часть вычислительных алгоритмов, разработанных для последовательных компьютеров, может быть ускорена с помощью распараллеливающих и векторизирующих трансляторов. SMP-компьютеры - это наиболее распространенные сейчас параллельные вычислители, а 2-, 4-х процессорные ПК на основе Pentium и Pentium Pro стали уже массовым товаром. Однако общее число процессоров в SMP-системах, как правило, не превышает 16, а их дальнейшее увеличение не дает выигрыша из-за конфликтов при обращении к памяти. Применение технологий типа UPA, основанной на коммутации пакетов вместо общей шины и локальной кэш-памяти большого объема, способно частично решить проблему, подняв число процессоров до 32.
1.2 Архитектура MPP
Альтернатива SMP - архитектура MPP. Каждый процессор имеет доступ лишь к своей локальной памяти, а если программе нужно узнать значение переменной, расположенной в памяти другого процессора, то задействуется механизм передачи сообщений. Процессор, в памяти которого находятся нужные данные, посылает сообщение тому процессору, которому они требуются, а последний принимает его. Этот подход позволяет создавать компьютеры, включающие в себя тысячи процессоров. На нем основаны все машины, имеющие производительность в сотни миллиардов операций в секунду.
Познакомимся поближе с этой архитектурой и одним из представителей этой архитектуры, суперкомпьютером nCube.
2 СУПЕРКОМПЬЮТЕРЫ КОМПАНИИ nCube
Одним из пионеров в создании MPP-систем стала основанная в 1983 году компания nCube. В 1985 году появился первый ее MPP-компьютер, nCube 1. Система nCube 1, в основе которой, как и в основе всех последующих поколений компьютеров nCube, лежит гиперкубическая топология межпроцессорных соединений и высокий уровень интеграции на базе технологии VLSI, показала рекордные результаты по абсолютной производительности и в соотношении цена/производительность для научных вычислений.
В 1989 году компания nCube выпустила семейство суперкомпьютеров nCube 2. Большие вычислительные возможности, гибкая архитектура и мощное специализированное программное обеспечение позволяют применять системы nCube 2 в широком диапазоне областей - от сложнейших научных задач до управления информацией в бизнесе.
Семейство nCube 2 представляет собой масштабируемую серию систем, производительность которых может достигать 34 GigaFlops. Каждый суперкомпьютер этой серии содержит набор процессоров nCube, соединенных в гиперкубическую сеть. Наибольшую систему составляют 8192 процессора, и ее мощность более чем в 1000 раз превышает мощность наименьшей - с 8 процессорами. Возможности памяти и системы ввода/вывода возрастают вместе с ростом процессорной мощности.
Следующая цель компании nCube - разработка нового семейства Mpp-систем, суперкомпьютеров nCube 3. Новое поколение суперкомпьютеров nCube, следуя принципам высокой интегрируемости и масштабируемости, станет первой промышленно реализованной платформой с производительностью до нескольких TFlops, стопроцентно совместимой с предыдущими поколениями систем nCube.
2.1 Основные принципы архитектуры
a) Распределенная память
В суперкомпьютерах nCube используется архитектура распределенной памяти, позволяющая оптимизировать доступ к оперативной памяти, вероятно, наиболее критичному ресурсу вычислительной системы.
Традиционные архитектуры с разделенной памятью удобны для систем с небольшим числом процессоров, однако, они плохо масштабируются по мере добавления процессоров и памяти. Когда в системе с разделением памяти увеличивается число процессоров, возрастает конкуренция в использовании ограниченной пропускной способности системной шины, что снижает производительность соединения процессор-память. Кроме того, добавление процессоров в такую систему требует увеличения количества логики для управления памятью, снижая тем самым производительность системы и увеличивая ее цену.
Эти недостатки отсутствуют в системах с распределенной памятью. В такой системе каждый процессор имеет свою собственную локальную память. Потенциальные узкие места, связанные с шиной процессор-память и необходимостью разрабатывать системы управления кэшем, полностью исключаются. С добавлением процессоров добавляется память, пропускная способность соединения процессор-память масштабируется вместе с вычислительной мощностью.
б) Межпроцессорная сеть
Топология межпроцессорных соединений, обеспечивающая масштабирование до большого числа процессоров без снижения производительности коммуникаций или увеличения времени ожидания, является обязательной для MPP-систем. Суперкомпьютеры nCube используют сетевую топологию гиперкуба, которая отвечает этим требованиям. Соединения между процессорами nCube-системы образуют многомерный куб, называемый гиперкубом. По мере добавления процессоров увеличивается размерность гиперкуба. Соединение двух гиперкубов одинаковой размерности образует гиперкуб следующей размерности. N-мерный гиперкуб содержит 2€n процессоров. Двухмерный гиперкуб - это квадрат. Трехмерный гиперкуб образует обычный куб, а четырехмерный гиперкуб представляет собой куб в кубе. Для семейства суперкомпьютеров nCube 2 гиперкуб максимальной размерности 13 содержит 8192 процессора. В системе nCube 3 число процессоров может достигать 65536 (16-мерный гиперкуб).
Эффективность сетевой топологии измеряется, в частности, числом шагов для передачи данных между наиболее удаленными процессорами в системе. Для гиперкуба максимальное расстояние (число шагов) между процессорами совпадает с размерностью куба. Например, в наибольшем 13-мерном семейства nCube 2 сообщения между процессорами никогда не проходят более 13 шагов. Для сравнения, в 2-мерной конфигурации "mesh" (петля) с числом процессоров, вдвое меньшим числа процессоров в максимальной системе nCube 2, наибольшее расстояние между процессорами составляет 64 шага. Задержки коммуникаций в такой системе значительно увеличиваются. Таким образом, никакая другая топология соединения процессоров не может сравниться с гиперкубом по эффективности. Пользователь может удвоить число процессоров в системе, при этом увеличивая длину пути связи между наиболее удаленными процессорами только на один шаг.
Большое число соединений в гиперкубе создает высочайшую пропускную способность межпроцессорных соединений по сравнению с любой другой сетевой схемой. Большое количество путей передачи данных и компактный дизайн гиперкуба позволяют передавать данные с очень высокой скоростью. Кроме того, гиперкубическая схема характеризуется большой гибкостью, так как она позволяет эмулировать другие популярные топологии, включая деревья, кольца. Таким образом, пользователям nCube-систем гарантируется корректное выполнение приложений, зависящих от других топологий.
в) Высокий уровень интеграции
Многие преимущества nCube-систем, и, прежде всего высочайшие показатели - надежности и производительности, являются результатом использования технологии VLSI (Very Large Scale Integration - сверхвысокая степень интеграции). В большей степени, чем какие-либо другие факторы, на надежность компьютера влияет число используемых компонентов. Большее число компонентов неминуемо увеличивает вероятность сбоя системы. По этой причине nCube интегрирует все функции процессорного узла на одно VLSI-устройство. VLSI-интеграция также сокращает требуемое число соединений, которые могут оказывать решающее влияние на целостность всей системы.
Высокий уровень интеграции сокращает пути передачи данных, повышая тем самым производительность системы. Интеграция процессорного узла на один чип оставляет свободными для контроля только простые соединения с памятью и сетевые интерфейсы вместо сложных сигналов синхронизации, арбитража и управления. Эти простые соединения тестируются и корректируются с помощью методов контроля четности и ЕСС (Error Correction Code - код коррекции ошибок), упрощая процесс определения и изоляции ошибок.
2.2 Суперкомпьютер nCube 2
Суперкомпьютер nCube 2 масштабируется от 8-процессорных моделей до моделей с 8192 процессорами. Архитектура nCube 2 уравновешивает процессорную мощность, пропускную способность памяти и пропускную способность системы ввода/вывода. Добавление процессоров в систему не влечет за собой появление узких мест в пропускной способности памяти или системы ввода/вывода.
Семейство nCube 2 включает в себя две серии суперкомпьютеров:
— Серия nCube 2S базируется на процессоре nCube 2S с тактовой частотой 25 MHz; предельная производительность 33 MFLOPS - 34 GFLOPS; размер оперативной памяти 32 Мб - 32 Гб;
— Серия nCube 2 базируется на процессоре nCube 2 с тактовой частотой 20 MHz; предельная производительность 26 MFLOPS - 27 GFLOPS; размер оперативной памяти 32 Мб - 32 Гб.
Архитектура суперкомпьютера семейства nCube 2 базируется на гиперкубической сети VLSI - чипов, спаренных с независимыми друг от друга устройствами памяти. Чип, или процессор nCube 2, включает в себя:
- 64-разрядный центральный процессор;
- 64-разрядный модуль вычислений с плавающей точкой;
- удовлетворяющий стандарту IEEE (Institute of Electrical and Electronic Engineers - Институт инженеров по электротехнике и радиоэлектронике) интерфейс управления памятью с 39-разрядным путем данных 14 двунаправленных каналов DMA (Direct Memory Access - прямой доступ к памяти)
При тактовой частоте 25 МГц процессор имеет скорость 4.1 MFLOPS для вычислений с плавающей точкой одинарной и 3.0 MFLOPS двойной точности.
Каждый процессор nCube 2 конфигурируется с устройством динамической памяти емкостью от 4 до 64 МБайт.
Распределенная архитектура памяти фактически не налагает никаких ограничений на скорость операций с памятью. Процессоры не конкурируют в использовании пропускной способности соединения с памятью и не должны ждать подкачки данных. Добавление процессоров в систему увенчивает пропускную способность памяти и тем самым повышает производительность.
Каждый суперкомпьютер nCube 2 содержит компактную сеть процессоров. На одну процессорную плату nCube 2 может монтироваться до 64 процессоров. Процессорная стойка может содержать 16 плат с общим числом процессоров до 1024. Для построения систем большего размера стойки комбинируются. Использование недорогих строительных блоков обеспечивает низкую цену полной компьютерной системы в сочетании с феноменально высокой производительностью, достигнутой за счет комбинированной мощности процессорной сети.
Каждый процессор nCube 2 содержит 14 каналов DMA 13 для соединений в гиперкубе и 1 для ввода/вывода. Выделенный канал ввода/вывода уравновешивает вычислительную производительность процессора с производительностью его системы ввода/вывода. По мере добавления процессоров в систему пропускная способность системы ввода/вывода гиперкуба масштабируется вместе с процессорной мощностью и памятью. В состав процессора nCube 2 входит высокоскоростное устройство маршрутизации сообщений, которое управляет передачей сообщений между процессорами. Устройство маршрутизации обеспечивает прямую передачу сообщений без прерывания промежуточных процессоров или необходимости хранения данных сообщения в их памяти. Сообщения передаются со скоростью 2.75 МБ/сек на канал DMA. Специальные методы маршрутизации автоматически вычисляют кратчайший путь между процессорами и предотвращают взаимную блокировку сообщений, освобождая пользователей от необходимости планировать маршруты. Устройство маршрутизации передает сообщения настолько быстро, что число проходимых шагов влияет на производительность гораздо меньше, чем в других компьютерах. Высокая скорость передачи создает иллюзию, что каждый процессор связан непосредственно с любым другим в сети. Эффективность гиперкубической топологии в совокупности с высокоскоростным устройством маршрутизации создают высокопроизводительную систему межпроцессорных соединений с максимальной, по сравнению с другими процессорными сетями, скоростью межпроцессорных коммуникаций. Суперкомпьютер серии nCube 2 с 8192 процессорами имеет скорость межпроцессорной передачи 577 ГБ/сек.
Каждый процессор nCube 2 выполняет свою собственную программируемую последовательность команд и может функционировать независимо. Этот принцип позволяет выделять подмножества процессоров для параллельного выполнения различных операций. Такое разбиение гиперкуба превращает суперкомпьютер nCube 2 в многопользовательскую, многозадачную систему. Программное обеспечение nCube 2 выделяет набор процессоров - подкуб - для программы пользователя и загружает ее. В течение необходимого времени каждый такой подкуб функционирует как отдельный компьютер. Пользователи могут изменять размеры подкубов в соответствии с требованиями своих программ.
2.3 Архитектура процессора nCube
Процессор nCube, как и следует из общего назначения системы, ориентирован прежде всего на вещественные вычисления. За один такт генератора его вещественное арифметическое устройство выполняет две операции, в то время как целочисленное - одну. При этом вещественный конвейер состоит всего из двух ступеней (в других архитектурах число ступеней вещественного процессора от трех до семи). Высокая доступность кэша на кристалле процессора обеспечивает практически пиковые показатели эффективности даже при обработке длинных векторов, размещенных в памяти.
На кристалле расположены регистровый файл и два кэша по 16 КБайт каждый: разделенные кэш команд и кэш данных. Скорость доступа к внутреннему кэшу составляет 1.6 ГБайт/сек, а для большей эффективности обслуживает его специальный конвейер. Доступ к кэшу осуществляется по физическому адресу, чтобы избежать ненужных перемещений данных в случае переключения контекста.
Процессор nCube включает в себя полную поддержку виртуальной памяти. В основу архитектуры заложено 64-разрядное поле виртуального адреса, хотя в настоящее время реализован 48-разрядный виртуальный адрес, обеспечивающий адресацию 256 ТБайт. Размеры страниц могут иметь переменные размеры от 256 Байт до 64 МБайт.
а) Система ввода/вывода nCube 2
Высокопроизводительной вычислительной системе должна соответствовать мощная, быстрая и гибкая система ввода/вывода. В суперкомпьютере nCube 2 система ввода/вывода использует тот же самый VLSI- процессор, который функционирует как вычислительный элемент в гиперкубической сети. Каноны DMA в процессорах системы ввода/вывода используются как пути передачи данных. Наличие выделенных процессоров ввода/вывода позволяет осуществлять параллельную работу вычислительной сети и системы ввода/вывода.
Система ввода/вывода масштабируется вместе с процессорной сетью. Суперкомпьютер большого размера имеет не только больше вычислительных процессоров, но и большее количество процессоров ввода/вывода. nCube 2 поддерживают несколько интерфейсов ввода/вывода, обеспечивающих пользователей связью с необходимыми им устройствами.
Плата ввода/вывода nChannel осуществляет связь суперкомпьютера nCube 2 с устройствами вторичного хранения, дисками, магнитными лентами, сетями и другими устройствами. Плата nChannel имеет 16 независимых каналов ввода/вывода, каждый из которых управляется процессором nCube 2. К каждому каналу подключается модуль ввода/вывода, например, контроллер SCSI. Каждый канал передает данные со скоростью 20 МБ/сек. С помощью каналов платы nChannel система nCube 2 соединяется с хост-компьютером, сетью Ethernet, дисководами и накопителями на магнитной ленте, а также модулями преобразования сигналов и передачи видеообразов.
Плата HIPPI позволяет соединять суперкомпьютер nCube 2 с другими суперкомпьютерами, запоминающими устройствами и иными системами, поддерживающими интерфейс HIPPI (High Performance Parallel Interface Высокопроизводительный параллельный интерфейс). Плата HIPPI использует 16 процессоров nCube 2 для обработки сетевого трафика, обычно 8 процессоров для управления вводом и 8 для управления выводом. Скорость передачи данных достигает 100 МБ/сек.
Графическая подсистема реального времени nVision обеспечивает интегрированную подсистему графики и ввода/вывода, которая позволяет программистам отображать и взаимодействовать с большими объемами данных в реальном времени. На плате nVision размещены 16 процессоров nCube 2, 2 CRT-контроллера, специальный текстовый процессор, 16 МБайт памяти и 2 МБайт буфера.
Компьютер nCube 2 соединяется по сети с управляющим компьютером, с которого пользователи загружают nCube 2, разрабатывают и запускают параллельные программы, наблюдают за функционированием процессорной сети и системы ввода/вывода. Стандартным управляющим компьютером для nCube 2 является рабочая станция производства компании Silicon Graphics.
2.4 Программное обеспечение
На всех компьютерах семейства nCube 2 устанавливается специализированная программная среда PSE (Parallel Software Environment), включающая в себя следующие компоненты:
- операционная система nCX, построенная по микроядерной технологии и выполняющаяся на всех процессорах гиперкуба, она управляет системой ввода/вывода;
- драйвер хост-интерфейса, интерфейс ввода/вывода для соединения с управляющим компьютером; библиотека стандартных UNIX-функций;
- средства разработки для написания, компиляции, профилирования, отладки, запуска и контроля параллельных программ;
- утилиты системного администратора;
- подсистема интерактивной (on-line) документации.
Среда PSE обеспечивает согласованный для различных моделей семейства nCube 2 прикладной интерфейс. Программы, разработанные для компьютеров с небольшим числом процессоров, не требуют переделки при переносе на систему nCube 2 большего размера. Операционная среда nCube 2 интегрирована со средой управляющего компьютера, обеспечивая пользователей возможностью разрабатывать программы на привычной им платформе. С помощью PSE пользователи могут работать независимо, получая автономный контроль над выполнением своих программ. Множество пользователей могут одновременно выполнять программы.
Среда PSE базируется на nCX - высокооптимизированном, небольшом (до 128 КБ) и быстром микроядре (microkernel), который обеспечивает сервис операционной системы на каждом процессоре, как гиперкуба, так и системы ввода-вывода. nCX поддерживает управление процессами и управление памятью, многозадачность, интерфейс системных вызовов UNIX System V Release 4, а также высокопроизводительную систему передачи сообщений. Другие операционные средства, такие как драйверы ввода/вывода и сетевые соединения, распределяются между вычислительными узлами и процессорами ввода/вывода. Операционная система nCX обеспечивает единый интерфейс для параллельных программ и драйверов ввода/вывода.
На суперкомпьютерах nCube 2 поддерживаются два вида программирования:
SPMD (Single Program Multiple Data - Одна программа, Множество данных): в процессорную сеть загружается одна программа, каждый экземпляр программы обрабатывает свой собственный набор данных; процессоры могут обмениваться информацией.
MPMD (Multiple Program Multiple Data - Множество программ, Множество данных): в процессорную сеть загружается набор программ, каждый экземпляр каждой программы обрабатывает свои собственные данные; программы могут обмениваться информацией.
2.5 Надежность системы nCube 2
Суперкомпьютеры nCube 2 представляют наиболее надежные на сегодняшний день системы. Каждый аспект дизайна nCube 2 подразумевает надежность. Например, высокая интеграция - процессорный узел на одном чипе уменьшает число компонентов, в которых может произойти сбой. Быстрое, эффективное микроядро обеспечивает все необходимые для приложений функции, не перегружая систему более сложной, но менее надежной операционной средой.
3 СЕТЬ КАК СУПЕРКОМПЬЮТЕР
Теоретически суперкомпьютер можно представить как объединение большого количества обычных компьютеров в один, единый блок. Иначе это можно представить, как локальную сеть, имеющую некоторое количество узлов в одном блоке. Следовательно, можно в качестве суперкомпьютера использовать и любую локальную (и не только локальную) сеть. Начиная с 1992 года по скорости роста производительности сетевое оборудование обгоняет процессоры. Для многих организаций перспектива использования сетей рабочих станций и ПК в качестве суперкомпьютеров весьма заманчива. Основные достоинства сетей - возможность постепенного расширения и модернизации, а также режим эксплуатации сети днем для обычных нужд разработки и проектирования, а ночью для расчетов. Сети не могут соревноваться по скорости вычисления с суперкомпьютерами-рекордсменами, но они на один-два порядка дешевле, их можно использовать там, где объемы расчетов велики, а суперкомпьютеры экономически не оправданы. Такие сетевые технологии будут способствовать использованию сетей в качестве параллельных вычислителей. В первую очередь это Fast Ethernet и Gigabit Ethernet. Далее идут технологии коммутации. И, наконец, новые сетевые протоколы, поддерживающие широковещание
3.1 Параллельные программы - главный тормоз
Главным препятствием к внедрению практически всех параллельных архитектур является отсутствие параллельных программ. У унаследованных от последовательного мира программ имеется недостаток - большой объем кода, принципиально не допускающий параллельного исполнения. Его нельзя преодолеть за счет усовершенствования техники компиляции. Так, если программа половину времени занимается действиями, которые требуется совершать строго последовательно, то параллельное выполнение оставшейся половины в предельном случае даст лишь двукратное ускорение. В результате, хотим мы этого или нет, последовательные вычислительные алгоритмы придется заменять параллельными.
3.2 MPI
Практически на всех параллельных системах имелись свои собственные библиотеки передачи сообщений. В простейшем случае они предусматривали передачу и прием отдельных пакетов между соседними процессорами. Более сложные поддерживали передачу сообщений произвольной длины, маршрутизацию сообщений и аппарат тегов, который позволяет принимающей стороне самой решать, в какой последовательности обрабатывать поступающие сообщения. Некоторые библиотеки допускали динамическое порождение и уничтожение процессов.
За последние годы в деле создания ПО для систем с распределенной памятью наметился серьезный прогресс. Самым крупным достижением была стандартизация интерфейса передачи сообщений MPI (message passing interface). Во-первых, MPI поддерживает несколько режимов передачи данных, важнейшие из которых: синхронная передача, не требующая выделения промежуточных буферов для данных и обеспечивающая надежную передачу данных сколь угодно большого размера, и асинхронная передача, при которой посылающий сообщение процесс не ждет начала приема, что позволяет эффективно передавать короткие сообщения. Во-вторых, MPI позволяет передавать данные не только от одного процесса к другому, но и поддерживает коллективные операции: широковещательную передачу, разборку-сборку, операции редукции. В-третьих, MPI предусматривает гетерогенные вычисления. Вычислительная система может включать разные процессоры, в том числе имеющие различные наборы команд и разное представление данных. Если у вас имеется суперкомпьютер, то это кажется излишним, но для организаций, эксплуатирующих сети рабочих станций с различными процессорами и версиями Unix, - это находка.
Синтаксис MPI облегчает создание приложений в модели SPMD (single program multiple data) - одна программа работает в разных процессах со своими данными. Одна и та же функция вызывается на узле-источнике и узлах-приемниках, а тип выполняемой операции (передача или прием) определяется с помощью параметра. Такой синтаксис вызовов делает SPMD-программы существенно компактнее, хотя и труднее для понимания.
Основное отличие стандарта MPI от его предшественников - понятие коммуникатора. Все операции синхронизации и передачи сообщений локализуются внутри коммуникатора. С коммуникатором связывается группа процессов. В частности, все коллективные операции вызываются одновременно на всех процессах, входящих в эту группу
Поддержка модульного программирования в сочетании с независимостью от аппаратуры дала мощный импульс к созданию библиотек. Одна из самых интересных разработок - пакет линейной алгебры ScaLAPACK, разработанный группой Дж. Донгарра.
3.3 Реализации MPI
Библиотеки MPI реализованы практически на всех современных суперкомпьютерах, к примеру, в университете Коимбра (Португалия) разработали библиотеку MPI для Windows 95 (http://pandora.uc.pt/w32mpi), которая особенно интересна для преподавателей и студентов, поскольку при отладке достаточно иметь обычный ПК, а запуск параллельных приложений в сети позволяет получить реальный выигрыш в производительности.
Практический опыт показывает, что идеально распараллеливаемые задачи, такие как параллельное умножение матриц, можно решать практически на любых сетях, и добавление даже относительно слабых вычислительных узлов дает выигрыш. Другие задачи, в частности решение систем линейных уравнений, более требовательны к коммуникационному оборудованию и качеству реализации передачи сообщений. Именно поэтому тесты для оценки реального быстродействия параллельных вычислительных систем базируются на параллельных аналогах известного пакета Linpack. Так, система линейных уравнений размером 800х800 решается на четырех компьютерах Sun SPARCstation 5, объединенных сетью Ethernet 10 Мбит/c, быстрее, чем на трех; на пяти - приблизительно за то же время, что и на четырех, а добавление шестого компьютера однозначно ухудшает производительность вычислительной системы. Если вместо Fast Ethernet 10 Мбит/c использовать Fast Ethernet 100 Мбит/с, что лишь незначительно увеличивает общую стоимость системы, время, затрачиваемое на коммуникацию, уменьшается почти в 10 раз, а для решения данной задачи можно будет эффективно применять уже десятки рабочих станций.
3.4 Средства программирования высокого уровня
Часто в сетях отдельные компьютеры неравноценны, и имеет смысл нагружать их по-разному, однако даже простейшая программа, учитывающая балансировку нагрузки, - если кодировать ее, используя лишь средства MPI, - становится необъятной, и отладка ее мало кому окажется по силам. Так, матрицы в пакете SсаLAPACK, независимо от решаемой задачи и мощностей вычислительных элементов, всегда распределяются по процессорам равномерно. В результате, при наличии хотя бы одного слабого компьютера в сети, вычисления затягиваются - все ждут отстающего. Динамическая балансировка нагрузки, практически бесплатно получающаяся на SMP-компьютерах, в распределенных системах чрезвычайно трудна, и даже простое распределение данных в соответствии с мощностями узлов и последующие пересылки кодируются весьма непросто.
Выходом из создавшегося положения стали языки программирования, основанные на параллелизме данных. Первый из них, Fortran-D, появился в 1992 г. На смену ему пришел High Performance Fortran (HPF), представляющий собой расширение языка Fortran 90 и требующий от пользователя лишь указать распределение данных по процессорам. В остальном программа имеет последовательный вид (это, впрочем, не означает, что, придумывая алгоритм, не следует задумываться о присущем ему параллелизме). Транслятор самостоятельно распределяет вычисления по процессорам, выбирая в качестве узла, на котором следует производить вычисления, тот процессор, на котором будет использован результат вычисления выражения. При необходимости транслятор генерирует обращения к библиотеке передачи сообщений, например MPI. От компилятора HPF требуется тщательный анализ программы. Пользователь практически не имеет рычагов управления количеством пересылок, а поскольку инициализация каждой пересылки, независимо от объема передаваемой информации, - это десятки тысяч машинных тактов, качество получаемой программы от него зависит слабо.
В языке программирования mpC (http://www.ispras.ru/) - расширении ANSI Cи - принят компромиссный подход. Здесь пользователь распределяет не только данные, но и вычисления. Переменные и массивы распределяются по виртуальным сетям (networks) и подсетям, при этом в описаниях сетей указываются относительные мощности узлов и скорости связей между ними. В процессе выполнения mpC-программы система поддержки языка стремится максимально эффективно отобразить виртуальные сети на группы процессоров. В результате пользователь получает возможность равномерно нагружать узлы
3.5 Попытка прогноза
Использование сетей компьютеров для вычислительных задач - уже сегодня дело вполне реальное. В этом направлении ведутся научные разработки и сделан ряд пилотных проектов. В качестве коммуникационной платформы сейчас наиболее экономически оправдано применение коммутируемых сетей Fast Ethernet. При этом себестоимость системы производительностью 1,5-6 операций с вещественными числами в секунду на задачах линейной алгебры будет ниже 100 тыс. долл. Через пару лет в качестве коммуникационной платформы можно будет использовать Gigabit Ethernet или ATM (Asynchronous Transfer Mode - асинхронный режим передачи), обеспечивающие на порядок более высокие скорости передачи данных. В течение одного-двух лет должны появиться общепризнанные широковещательные протоколы транспортного уровня и основанные на них реализации MPI. На уровне прикладных программ MPI использоваться не будет. На нем станут базироваться лишь некоторые библиотеки и системы поддержки языков, основанные на параллелизме данных.
4 ПИМЕРЫ ИСПОЛЬЗОВАНИЯ СУПЕРКОМПЬЮЮТЕРОВ
4.1 Моделирование построение белка
Корпорация IBM объявила о том, что планирует выделить 100 миллионов долларов на создание самого быстрого в мире суперкомпьютера, который будет использоваться для моделирования построения белка из аминокислот.
Новый суперкомпьютер, носящий название Blue Gene, будет способен совершать один квадриллион операций в секунду, то есть будет в тысячу раз мощнее знаменитого Deep Blue, с которым в 1997 году играл в шахматы чемпион мира Гарри Каспаров.
Blue Gene будет работать на основе более миллиона процессоров, каждый из которых способен совершать миллиард операций в секунду, сообщают представители IBM. Новый гигант будет в два миллиона раз быстрее, чем существующие сегодня мощнейшие персональные компьютеры.
Исследователи рассчитывают достигнуть этого уровня мощности в течение пяти лет, по истечении которых суперкомпьютер будет использоваться в генетическом моделировании. Если Blue Gene оправдает возложенные на него надежды, его создание станет огромным шагом вперед в области здравоохранения и биологии.
4.2 Виртуальная башня
По оценкам Федерального управления гражданской авиации США, в течение ближайших 20 лет количество самолетов, используемых для коммерческих полетов, увеличится вдвое. Это станет серьезным испытанием для авиадиспетчеров, которым придется внедрять новые технологии управления авиационными потоками как на земле, так и в воздухе.
НАСА решило внести свою скромную лепту в преодоление этой проблемы и создало симулятор настоящей башни авиадиспетчеров стоимостью в $110 миллионов. Башня FutureFlight Central расположена в Исследовательском центре Эймса НАСА. Она дает возможность симулировать работу крупнейших аэропортов мира, позволяя в реальном времени испытывать новые технологии управления перемещением самолетов. Это двухэтажное сооружение, в котором могут одновременно работать 12 операторов. Мозговым центром башни является 16-процессорный суперкомпьютер Reality Monster от SGI, обошедшийся НАСА в $1 миллион. Именно он обеспечивает вывод симуляции на 12 огромных видеоэкранов башни, имитирующих настоящие окна. Суперкомпьютер позволяет моделировать - помимо обстановки аэропорта - погодные эффекты и до 200 одновременно движущихся самолетов и машин наземного обслуживания. Первый этаж предназначен для "пилотов" и "обслуживающего персонала", которые будут вносить дополнительный элемент реалистичности, общаясь с авиадиспетчерами с помощью портативных радиостанций. Башня также может использоваться и в других симуляционных целях. В частности, планируется, что ее услугами смогут воспользоваться специалисты из Отделения автономных роботов НАСА для создания комнат управления межпланетными миссиями, состоящими из роботизированных машин.
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА:
Статья Андрея Шитова «Электронный супермозг», журнал «Эхо планеты» №4 1992г.
Статья Дмитрия Арапова «Можно ли превратить сеть в суперкомпьютер?», журнал «Открытые системы» №4 1997г.
Статья Н. Дубовой «Суперкомпьютеры nCube», журнал «Открытые системы»
Рубрика «Новости» из журналов КомпьюТерра
referat.store