Рекомендации по созданию переносимого прикладного программного обеспечения в вычислительной среде супер-ЭВМ 2. Проблема переносимости прикладных программ в вычислительной среде супер-ЭВМ Под переносимостью прикладной программы (ПП) понимается возможность использования ПП на различных аппаратных и операционных платформах, отличающихся по архитектуре и характеристикам, с сохранением или небольшим изменением функций ПП. Обеспечение переносимости, прежде всего, позволяет сохранить затраты, вложенные в реализацию и апробирование ПП [1, 2]. Методом решения проблемы переносимости являются принципы и технологии открытых систем [3, 4]. Открытая система - это система, реализующая открытые спецификации на интерфейсы, службы и форматы данных, достаточные для того, чтобы обеспечить:
Таким образом, для создания основы разработки переносимых ПП в вычислительной среде супер-ЭВМ необходимо определить общие черты суперкомпьютеров с различными аппаратной архитектурой и системным программным обеспечением. Эта работа была проведена специалистами IEEE и нашла отражение в группе стандартов POSIX. 2.1. Прикладные задачи, требующие больших компьютерных ресурсов. Существует целый ряд научных и инженерных задач, эффективное решение которых возможно только с использованием мощных вычислительных ресурсов, таких как объем оперативной памяти и быстродействие [7]. Краткий перечень областей науки и техники, в которых возможно использование больших вычислительных ресурсов, приведен в [8]. 2.2. Основные виды суперкомпьютерных сред Одним из критериев, используемых для классификации компьютеров, может выступать количество потоков и данных, обрабатываемых в один момент времени. Согласно систематике Флинна [9], выделяют четыре класса:
Большинство суперкомпьютеров разработаны по технологиям SIMD и MIMD. В настоящее время особенно быстро развивается направление MIMD архитектуры. Это обусловлено тем, что при использовании процессоров средней мощности, можно достичь высокой суммарной производительности машины. Кроме того, используя возможность создания фиксированной, оптимальной для конкретной прикладной задачи, топологи соединения процессоров, на базе MIMD технологии можно создавать высокоскоростные специализированные супер-ЭВМ. В качестве примера однопроцессорного векторного суперкомпьютера (SIMD) можно привести FACOM VP-200 (фирма Fujitsu). Общим для всех векторных суперкомпьютеров является наличие в системе команд векторных операций, например, сложение векторов, допускающих работу с векторами определенной длины. В свою очередь для компьютеров класса MIMD параметром классификации является наличие общей (SMP) [10] или распределенной памяти (MPP) [11]. Системы с общей памятью называют также сильно связанными, а с распределенной - слабо связанными. В архитектуре многопроцессорных векторных компьютеров (MIMD) можно отметить две важнейшие характеристики: симметричность (равноправность) всех процессоров системы и разделение всеми процессорами общего поля оперативной памяти. Как уже отмечалось выше, подобные компьютерные системы называются сильно связанными. Если в однопроцессорных векторных ЭВМ для создания эффективной программы ее надо векторизовать, то в многопроцессорных появляется задача распараллеливания программы для ее выполнения одновременно на нескольких процессорах. К системам класса MIMD относятся и кластеры [12]: набор из нескольких ЭВМ, соединенных через некоторую коммуникационную инфраструктуру. В качестве такой структуры может выступать как обычная компьютерная сеть, так и специализированные высокоскоростные соединения. Кластеры могут быть образованы как из различных компьютеров (гетерогенные кластеры), так и из одинаковых (гомогенные кластеры) [13]. Кластер является слабо связанной системой. 2.3. Стандартизованное описание суперкомпьютерной среды. При создании единообразного описания суперкомпьютерной вычислительной среды, необходимо определить то общее, что есть во всех перечисленных в п.2.2 видах процессорных систем. Согласно принятым за рубежом стандартам [14], под суперкомпьютером обычно понимают ЭВМ (или их объединение), удовлетворяющую следующим требованиям:
Разработанные к настоящему моменту нормативные документы, определяющие создание переносимых компьютерных операционных систем и прикладных программ (в частности, стандарты группы POSIX) не налагают никаких ограничений и специальных требований на архитектуру супер-ЭВМ, что, в свою очередь, позволяет рассматривать под супер-ЭВМ машины всех 4-х классов, перечисленных в п.2.2. На основе предложенной рабочей группой POSIX P1003.0 Института инженеров по электронике и электротехнике (IEEE) Эталонной Модели Среды Открытых Систем (OSE/RM), была разработана модель суперкомпьютерной среды, схема которой представлена на рис.1. Как того требует OSE/RM, взаимодействие между прикладной программой и программно-аппаратной платформой осуществляется через интерфейс прикладных программ (API). Для суперкомпьютерной среды введены дополнительные сервисы как со стороны программной, так и со стороны аппаратной части платформы. Так, интеграцию суперкомпьютера в сеть обеспечивает процесс (или процессы), контролирующие работу узла, а операционная система должна обеспечивать доступ к внешним компьютерным сетям, используя соответствующее оборудование. Основным отличием суперкомпьютерной среды является введение в API функций, обеспечивающих пакетный режим обработки процессов. Программно-аппаратная платформа супер-ЭВМ должна соответственно обеспечивать:
Особенности реализации пакетного режима зависят от архитектуры конкретной ЭВМ, однако для пользователя супер-ЭВМ, благодаря наличию API, эти особенности не видны. Рис.1. Модель суперкомпьютерной среды (согласно IEEE 1003.10)
2.4. Особенности функционирования программ на аппаратных платформах MIMD Супер-ЭВМ, основанные на архитектуре MIMD, могут одновременно выполнять несколько процессов. Это свойство используется для увеличения скорости счета прикладной программы, допускающей независимое выполнение отдельных своих частей: в прикладной программе образуется несколько параллельно протекающих потоков (процессов), взаимодействующих между собой для обмена данными. Методы написания таких программ являются объектом исследования целого направления в программировании - так называемого "параллельного программирования". Основными задачами при параллельных вычислениях являются:
Для решения этих задач широко используется парадигма обмена сообщений между работающими одновременно процессами. Она лежит в основе целого ряда средств разработки параллельных прикладных программ (ППП) [15] (см. Табл.1) и реализуется производителями программного обеспечения произвольным образом. Большинство специализированных библиотек реализованы на основе функций MPI (Message Passing Interface): это стандартизованный механизм для построения программ по модели обмена сообщениями. Стандарт MPI был создан в 1993 году и предназначался разработчикам переносимых ППП, реализованных на языках FORTRAN 77 и C. ППП, написанные с использованием функций, могут функционировать на самых разнообразных аппаратных платформах, среди которых:
В настоящее время существуют стандартные "привязки" MPI к языкам С, С++, Fortran 77, Fortran 90. Следует отметить, что MPI - наиболее широко используемый и динамично развивающийся интерфейс из своего класса. Ознакомиться с описанием стандартов MPI можно на интернет-странице [16] Таблица 1. Примеры библиотек и сред разработки, используемых в параллельных вычислениях
|
||||||||||||||||||||||||||||||
|