(Продолжение. Начало см. PC Week/RE, №1/96, с.1)
ЗАЧЕМ ОН ТАКОЙ ?
В реальных применениях i860 благодаря своей удачной архитектуре, во многом подобной той, которая используется в компьютерах фирмы Cray, достигает результатов, близких к своим пиковым показателям. Фирмой Microway проводились исследования способов оптимизации кодов программ для достижения максимальной производительности процессора Pentium на различных стандартных тестах с использованием компилятора NDP Fortran 4.5. В процессе тестирования, которое проводилось с использованием одной из самых быстродействующих на тот момент системных плат - 66-МГц Intel Express c процессором Pentium-60, было проведено сравнение его производительности на тестах DAXPY и LINPACK с процессором i860XP-50, работающим в акселераторе ArrayPRO/XP фирмы Microway. Производительность на тестах DAXPY и LINPACK в различных пропорциях для каждого из них является функцией от вычислительной мощности, размера массивов, пропускной способности внешней памяти и способности операционной системы управлять кэшированием массивов. Выяснилось, что, имея большую пиковую скорость доступа к памяти (480Мб/с), Pentium не может реализовать свои предельные возможности. Оптимально согласованный с памятью процессор i860XP-50, имеющий пиковую скорость доступа к памяти 400 Мб/с, выигрывает у него по производительности. На тестах DAXPY и LINPACK, показатели которых считаются ключевыми для приложений типа: решение линейных систем, быстрое преобразование Фурье, трехмерная графика, визуализация и т. п., 50 МГц XP превосходил при длине вектора до 1000 элементов показатели 60 МГц Pentium в соотношении от 3 : 1 до 6 : 1.
ЧЕМ БОЛЬШЕ, ТЕМ ЛУЧШЕ
Как уже говорилось, i860 нашел применение и в системах с массовым параллелизмом. Это связано с тем, что областью применения этих систем являются научные вычисления и специализированные приложения, в которых определяющим является получение наивысшего быстродействия на операциях с плавающей точкой. Кроме того, из-за большого количества одинаковых процессорных элементов в многопроцессорных системах имеют значение и аппаратные затраты, необходимые для поддержки работы того или иного микропроцессора. Чем проще внешний интерфейс микропроцессора, тем они меньше.
Использование i860 в мультипроцессорных системах шло в двух направлениях. Первое - с помощью i860 пытались модернизировать существующие системы, для того чтобы увеличить вычислительную мощность, но сохранить совместимость с существующим программным обеспечением. Второе - это создание параллельных систем на основе оригинальной конструкции и оригинального программного обеспечения.
ОПЫТЫ СИМБИОЗА (МИЧУРИНЦЫ РАЗНЫХ СТРАН, СОЕДИНЯЙТЕСЬ!)
К моменту появления i860 имелось немало транспьютерных систем с большим количеством транспьютерных вычислительных модулей на транспьютерах типа Т80х. Вычислительные возможности этого типа транспьютеров весьма слабы. Поэтому были разработаны транспьютерные модули, заменяющие существующие и содержащие в качестве вычислительных процессоров i860, а в качестве интерфейсных - Т80х, при этом системные программы выполнялись транспьютером, а вычислительные программы - i860. Появилась возможность использовать имеющееся программное обеспечение, в частности ОС, и улучшить соотношение стоимость/производительность для этих систем.
Типичным представителем этого направления является фирма Transtech Parallel Systems, которая разработала широкую гамму интерфейсных и вычислительных модулей для параллельных транспьютерных систем. На основе своего вычислительного модуля ТТМ200 с пиковой производительностью 100 MFLOPS, содержащего 50 МГц i860XP в качестве центрального процессора, 16 Мб общей памяти и 30 МГц InmosT805 с 4 Мб локальной памяти в качестве сопроцессора ввода-вывода, ею разработана параллельная система PARAMID, содержащая до 16 модулей TTM200 с пиковой производительностью 1600 MFLOPS.
Система межмодульных связей транспьютера включает всего 4 последовательных дуплексных канала связи (линка) с пиковой пропускной способностью 3 Мб/с каждый. Она наиболее эффективна при двухточечных обменах с соседними вычислительными модулями, поэтому наиболее часто используемая структура связи для транспьютерных систем - двумерная решетка. Дополнительные аппаратные средства - коммутаторы линков, позволяющие перестраивать структуру связей между транспьютерами в соответствии с типом решаемой задачи, не решают проблемы, так как удорожают конструкцию и имеют низкое быстродействие. Для многих часто решаемых научных задач требуется более гибкая и гораздо более быстродействующая система связи. Поэтому круг задач, эффективно решаемых системой PARAMID, ограничен.
Архитектуру, похожую на архитектуру фирмы Transtech Parallel Systems, предлагает фирма PARSYTEC. Ею разработаны параллельные системы PowerXplorer и GC/PowerPlus на базе RISC-процессора PowerPC и транспьютера InmosT805. Для устранения узких мест архитектуры и повышения производительности в параллельной системе GC/PowerPlus каждый вычислительный узел состоит из двух вычислительных процессоров PowerPC-601-80 и четырех коммуникационных IMS Т805-30. Объем оперативной памяти узла может наращиваться до 128 Мб, а общее число узлов в системе достигает 1024. Система функционирует под ОС PARIX, соответствующей стандарту POSIX, - собственной разработкой фирмы PARSYTEC и имеет широкий набор инструментальных средств для разработки параллельных программ.
МЫ ПОЙДЕМ СВОИМ ПУТЕМ
Примером второго подхода является мультипроцессорная система Intel Paragon XP/S Supercomputer. Фирмой Intel давно ведутся работы по созданию параллельных систем оригинальной конструкции. Можно вспомнить iPSC/2 и iPSC/860, на которых отрабатывалась архитектура таких систем. Система Paragon XP/S представляет собой жесткую блочную конструкцию, состоит из вычислительных узлов общего назначения (1 вычислительный процессор на узел) и мультипроцессорных вычислительных узлов (4 вычислительных процессора на узел) и может иметь до 1024 мультипроцессорных вычислительных узлов. Каждый вычислительный узел общего назначения включает в себя два микропроцессора i860XP-50, один из которых используется в качестве вычислительного, а второй управляет процессом передачи сообщений между процессорами. Кроме того, в его состав входит оперативная память, наращиваемая до 128 Мб, подсистема межпроцессорного обмена и порт расширения для подключения модуля высокоскоростного периферийного интерфейса (HiPPI, SCSI). В качестве маршрутизатора сообщений в подсистеме межпроцессорного обмена используется заказная СБИС, в паре с которой и работает процессор сообщений. Структура связей Paragon XP/S - двумерная решетка с пиковой пропускной способностью 200 Мб/с на канал, при этом аппаратно поддерживаются два механизма маршрутизации для связи с удаленными вычислительными узлами. Мультипроцессор работает под управлением распределенной операционной системы, соответствующей индустриальному стандарту OSF/1.
На Paragon XP/S были достигнуты рекордные показатели производительности. На системе, представляющей собой объединение двух систем Paragon XP/S с 6768 процессорами, была получена пиковая производительность в 338 GFLOPS, а система Paragon XP/S, установленная в национальной лаборатории Sandia (США) и имеющая около 500 мультипроцессорных вычислительных узлов, на стандартном промышленном тесте MP Linpack достигла средней производительности 143,3 GFLOPS.
Система Paragon XP/S - одна из немногих массово-параллельных систем, добившихся заметного успеха на рынке суперкомпьютеров. Компанией Intel продано около 400 параллельных систем Paragon XP/S на процессоре i860. В 1995 г. Intel получила контракт в рамках программы ASCI (Accelerated Strategic Computer Initiative) Министерства энергетики США на поставку компьютера для Национальной лаборатории Sandia с ожидаемой производительностью 1,8 TFLOPS. Предполагается, что он будет построен на микропроцессорах P6, связанных между собой через двумерную сеть посредством специальных маршрутизаторов (аналогично Paragon).
А ВОТ И НАШИ...
В России несколько коллективов практически одновременно начали работы по созданию вычислителей на базе i860. На сегодняшний день известно о законченных работах двух коллективов - НИИ “КВАНТ” и Российского федерального ядерного центра - Всероссийского научно-исследовательского института экспериментальной физики (РФЯЦ - ВНИИЭФ).
Разработки НИИ “КВАНТ” по своим характеристикам и архитектурным принципам аналогичны продукции фирмы Transtech Parallel Systems, и с ними может быть использовано ее программное обеспечение.
В РФЯЦ - ВНИИЭФ работы ведутся в направлении разработки мультипроцессорных систем с архитектурой MIMD на основе гиперкубической структуры межпроцессорных связей.
В рамках этих работ в 1993 г. на основе микропроцессора i860XR-40 разработан вычислительный модуль - акселератор МП-0 для ПЭВМ типа PC AT с шиной ISA. Конструктивно он реализован в виде двухплатной конструкции. На одной плате находятся микропроцессор, оперативная память, системный контроллер и блок интерфейса с адаптером, а на другой - реализован собственно адаптер интерфейса с шиной ISA. Плата вычислителя имеет пиковую производительность 120 MIPS (80 MFLOPS при одинарной точности), содержит 8/16 Мб ОЗУ и работает на частоте 40 МГц. Платы соединены при помощи гибкого соединителя. Такое техническое решение позволяет разрабатывать платы адаптеров под различные типы системных шин, сохраняя вычислительную часть, и более гибко приспосабливаться к потребностям пользователей. Программное обеспечение позволяет модулю функционировать в средах DOS, OS/2 и Unix. При тестировании на различных научных задачах он показал производительность, сравнимую с производительностью систем на Pentium-66. Эти модули-акселераторы эксплуатируются в настоящее время в различных научных учреждениях: ВНИИЭФ, ВНИИТФ и др.
В 1994 г. закончена разработка мультипроцессорной системы МП-3. Вычислительная система МП-3 - параллельный мультипроцессорный ускоритель к ЭВМ среднего и высокого быстродействия - является функциональным модулем класса MIMD с пиковой суммарной производительностью 960 MIPS и 640 MFLOPS. Мультипроцессорная система комплексируется с управляющей ЭВМ типа РС АТ, которая осуществляет функции управления и взаимодействия МП-3 с внешней вычислительной средой. Комплексирование осуществляется посредством высокоскоростного адаптера связи с ПЭВМ типа PC AT.
Процессорные элементы в МП-3 соединены дуплексными каналами по топологии гиперкуб, что обеспечивает адаптируемость структуры мультипроцессора к алгоритмам решаемых задач. Аппаратно-программная реализация большого класса алгоритмов обмена информацией обеспечивает высокую эффективность параллельной обработки.
МП-3 содержит 8 вычислительных процессорных элементов (процессорных элементов первого уровня) и один управляющий процессорный элемент (процессорный элемент второго уровня). Для систем с повышенной надежностью предусмотрена установка двух резервных процессорных элементов первого уровня (ПЭ1), которые автоматически в процессе счета могут заменить любой вышедший из строя основной ПЭ1.
Процессорный элемент первого уровня состоит из двух параллельно работающих подсистем: центральной и межпроцессорного обмена. Центральная подсистема построена на основе i860XR и имеет емкость оперативной памяти (ОП) 8/16 Мб и интерфейс общей шины, который обеспечивает связь с процессорным элементом второго уровня (ПЭ2) с пропускной способностью до 30 Мб/с, а также последовательный порт для выдачи диагностической информации.
Подсистема межпроцессорного обмена построена на основе контроллера прямого доступа к памяти (ПДП) i82380 и БИС системы межпроцессорного обмена (СМПО). Связь между подсистемами осуществляется через быстродействующую двухпортовую память, обеспечивающую бесконфликтную работу подсистем.
Сотрудники РФЯЦ-ВНИИЭФ демонстрируют свои
передовые разработки
БИС СМПО - БИС реализации обменов в мультипроцессорной системе. Она содержит 8 независимых каналов: 4 входных и 4 выходных, работающих одновременно, и универсальный 32-разрядный интерфейс с центральной подсистемой. Коммутация каналов программируемая и осуществляется под управлением счетного процессора. В БИС СМПО реализована аппаратная поддержка передачи транзитных сообщений и групповых обменов и осуществляется контроль передачи информации по линиям связи. Эта БИС является полностью оригинальной разработкой и реализована на БМК “Титул-30” ( производитель - НИИЭТ, г. Воронеж). Максимальная пропускная способность каждого канала 14,8 Мб/с, максимальная суммарная пропускная способность сети межпроцессорной связи не менее 300 Мб/с.
Процессорный элемент второго уровня также построен на основе i860XR, объем оперативной памяти центральной подсистемы - 8/16 Мб. Центральная подсистема содержит интерфейс общей шины, который обеспечивает связь с процессорным элементом первого уровня с пропускной способностью до 30 Мб/с и байтовый порт со скоростью обмена до 20 Мб/с. Вместо подсистемы межпроцессорного обмена в состав ПЭ2 включается подсистема для комплексирования с хост-машиной. Конструктивно она реализована в виде двух блоков, связанных между собой гибким кабелем. Первый блок - основной - находится на плате ПЭ2 и содержит высокоскоростной двунаправленный буфер FIFO с управляющей и стыковочной логикой. Этот блок не зависит от типа хост-машины и реализует, с одной стороны, 32-разрядный интерфейс с центральной подсистемой, а с другой - скоростной 16-разрядный канал связи с хост-машиной. Второй блок является адаптером под конкретный тип системной шины расширения хост-машины. На данный момент реализованы адаптеры для шин ISA и EISA (максимальная скорость обмена 16 Мбайт/с) для ПЭВМ типа PC AT. Программное обеспечение обеспечивает функционирование МП-3 в средах DOS, OS/2 и UNIX.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Существующая технология использования мультипроцессора МП-3 ориентирована на модель распределенной операционной системы. На управляющей хост-машине, функционирующей в среде DOS или UNIX (возможен переход и в другие среды), запускается обрабатывающий процесс - файловый сервер. Данный процесс служит для загрузки микроядерной операционной системы и программ пользователей на процессорные элементы 1-го и 2-го уровней. Кроме того, файловый сервер поддерживает взаимодействие программ пользователей через микроядерную ОС с внешней файловой средой (DOS или UNIX) на хост-машине таким образом, что не требуется модификации существующих текстов программ для обеспечения ввода-вывода.
ЯДРО ОПЕРАЦИОННОЙ СИСТЕМЫ
Распределенная микроядерная операционная система для мультипроцессора МП-3 предоставляет возможности (минимально необходимые для счета) на восьми процессорных элементах первого уровня ПЭ1 и процессорном элементе второго уровня ПЭ2. Ее возможности во многом аналогичны возможностям операционной системы APX UNIX SYSTEM V/i860, но разработанная нами микроядерная ОС аппаратно ориентирована на мультипроцессор МП-3 и позволяет достигать эффективности и легкости выполнения программ в предлагаемой гетерогенной вычислительной среде. Основные функции, выполняемые микроядром операционной системы, заключаются в поддержке минимальной исполнительной среды для выполнения прикладных и системных программ на процессорных элементах. Это прежде всего функции сохранения и восстановления контекста по прерываниям и ловушкам, затем - обеспечение программного интерфейса между прикладными программами и библиотекой времени выполнения, а также поддержка возможностей обменов в рамках коммуникационной системы СМПО и отладки программ на узлах мультипроцессора.
Использование технологии, предоставляемой данной операционной системой, позволяет достигать мобильности пользовательских программ ( на уровне текста исходной программы ) и быстрой их адаптации к другим однородным вычислительным системам, о чем будет сказано далее. В частности, библиотека подпрограмм, используемая для межпроцессорного обмена, совместима по пользовательскому интерфейсу с библиотекой NX/2 семейства машин Intel iPSC.
Для управления высокопроизводительной вычислительной системой PARAGON XP/S ( количество вычислительных узлов от 32 до 1024 ) используется UNIX-подобная операционная система OSF/1, которая базируется на оптимизированной многопоточной операционной системе MACH 3.0.
КОМПИЛЯТОРЫ И ВЕКТОРИЗАТОРЫ
Программисту для работы с микропроцессором i860 предоставляется широкий спектр компиляторов и систем программирования. Это прежде всего оптимизирующие и векторизирующие кросс-компиляторы фирмы Portland Group для Фортрана и для Си (версии 2.0, 2.0a, 2.1, 2.1b и 3.0 ), выполняемые в средах DOS и UNIX. Фортран-компилятор этой системы поддерживает стандартный Fortran-77 с VAX/VMS и IBM/VS расширениями. С платами фирмы Microway или отдельно поставляются неплохие компиляторы NDP Фортран и NDP C/C++. Это также кросс-компиляторы, различные версии которых могут выполняться в операционных средах DOS, OS/2 и UNIX. Данные компиляторы допускают межъязыковой интерфейс на уровне вызова подпрограмм.
Программисты, разделяющие идеи Фонда свободного программного обеспечения (Free Software Foundation), и не только они, могут воспользоваться широко распространенными компиляторами GNU C для языка С и конвертером F2C для преобразования программ с языка Фортран на Си. Ограниченное распространение имеет компилятор High C фирмы Meta Ware.
Возможность организации конвейеризации вычислений, а также наличие трех независимо работающих арифметических устройств в микропроцессоре i860 требуют включения средств векторизации в состав программного обеспечения для организации оптимальной работы микропроцессора. Используемый в системе Portland Group встроенный векторизатор анализирует исходный код с целью поиска циклов - кандидатов на выполнение векторизующих преобразований. К таким преобразованиям относятся: выделение циклов, переупорядочивание циклов и реорганизация потоков данных в циклах. Когда векторизатор находит векторизуемые последовательности, он перестраивает или заменяет части циклов. Кроме этих преобразований циклов, векторизатор определяет общие конструкции, которые могут быть заменены вызовом эффективных подпрограмм из библиотеки высокопроизводительных функций (так называемая библиотека векторных встроенных функций). Векторизатор также обнаруживает интенсивные зависимости между данными в циклах и выдает об этом информацию, полезную при программной конвейеризации. Векторизатор, как правило, ускоряет работу программы, если программа содержит “хорошо ведущие себя” циклы и циклы, оперирующие большими массивами данных типа Real*4, Real*8 или Integer*4.
Кроме встроенного векторизатора системы Portland Group может быть использован независимый векторизатор для программ на Фортране VAST-2 фирмы Pasific-Sierra Research Corporation. Он преобразует исходный текст программ на Фортране, реорганизуя последовательные циклы DO и IF в последовательности вызовов векторных функций. Векторизатор является компиляторо-независимым (в рамках языка Фортран-77). На выходе векторизатора создаются два файла. Один содержит листинг исходной программы с вставленными диагностическими сообщениями о том, какие циклы и почему не векторизуемы. Другой файл содержит модернизированный текст программы. Затем полученный текст программы транслируется доступным Фортран-компилятором, и с полученным объектным файлом линкуется библиотека векторных примитивов VPL, поставляемая с векторизатором VAST-2.
Описанные компиляторы и векторизаторы служат для ускорения работы программ пользователей на одном процессорном элементе i860 при программировании в SIMD-стиле. Для улучшения работы в MIMD-стиле системой PARAGON предоставляются высокопроизводительный Фортран HPF (High Performance Fortran) и средство параллелизации программ FORGE-90. Компилятор HPF поддерживает Фортран-90 и содержит средства генерации кода для параллельных вычислений. Система FORGE-90 конвертирует исходную последовательную программу в набор эффективных параллельных программ. Система FORGE-90 анализирует зависимости кода и определяет возможности для выполнения высокоуровневой параллелизации в MIMD-стиле.
СРЕДСТВА ОТЛАДКИ И ПРОФИЛИРОВАНИЯ ПРОГРАММ
На сегодняшний день средства отладки и профилирования являются обязательными для эффективной разработки программ. Символьный отладчик Debug860, входящий в состав общесистемного программного обеспечения МП-3, позволяет выполнять интерактивную отладку прикладных программ. Отладчик Debug860 реализован по схеме агент - сервер: на вычислительном узле находится “нижний” модуль отладчика (агент), выполняющий с помощью операционной среды процессорного элемента управление процессами программы и производящий первичную обработку возникающих событий; агент взаимодействует с процессом, выполняющимся на хост-машине (сервере) и обеспечивающим интерфейс с пользователем и управление агентом. Профилировщик PROF860 позволяет получить временной профиль выполнения пользовательской программы. Завершаются работы по обеспечению интерфейсного взаимодействия с данными средствами через графический пакет Xlib и по поддержке параллельного режима выполнения данных средств на нескольких (больше чем одном) процессорных элементах.
БИБЛИОТЕКИ
В настоящее время в состав базового системного программного обеспечения для мультипроцессора МП-3 входят обширные библиотеки межпроцессорных обменов, глобальных операций, математических и графических подпрограмм.
Библиотека межпроцессорных обменов используется для организации обменов между процессорными элементами вычислительного модуля МП-3. Подпрограммы, входящие в библиотеку, позволяют выполнять как синхронные, так и асинхронные обмены между любыми процессорными элементами. Интерфейс взаимодействия пользователя с подпрограммами организован в соответствии со стандартом NX/2. В стадии завершения находится реализация интерфейса в соответствии со стандартом MPI.
Библиотека глобальных операций поддерживает глобальные операции (сложение, умножение, максимум, минимум, логические и побитовые AND и OR) над массивами данных, находящимися на различных процессорных элементах. Пользователям доступны широко известные математические библиотеки BLAS и библиотека обработки сигналов (SEGlib), а также предоставляются средства визуализации из графических пакетов Xlib и BGI/860. Предполагается адаптировать графические пакеты SoftPower 860 и ГРАФОР 860 для мультипроцессора МП-3.
СРАВНИТЕЛЬНОЕ ТЕСТИРОВАНИЕ
Авторам известны результаты сравнения различных машин на одних и тех же задачах пользователей. Эти результаты, выраженные в единицах относительной стоимости расчетов, представлены на диаграмме. Из абсолютных значений укажем, например, что одна из задач считалась на 8-процессорных элементах Cray T3D 128 с, а на МП-3 - 132 с.
Несколько экземпляров МП-3 эксплуатируются в России. Один в 1995 г. продан ливерморской Национальной лаборатории США.
А. ЛЯКИШЕВ, Е. МОНАХОВА, В. НОВИЧИХИН, С. СТЕПАНЕНКО
Оптимально согласованный с памятью процессор i860XP-50 выигрывает у Pentium по производительности