автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Система параллельного программирования для крупноблочных вычислительных комплексов

кандидата технических наук
Анисимов, Валерий Алексеевич
город
Новосибирск
год
1992
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Система параллельного программирования для крупноблочных вычислительных комплексов»

Автореферат диссертации по теме "Система параллельного программирования для крупноблочных вычислительных комплексов"

РОССИЙСКАЯ АКАДЕМИЯ НАУК ОРДЕНА ЛЕНИНА СИБИРСКОЕ ОТДЕЛЕНИЕ Институт систем информатики

На правах рукописи

Анисимов Валерий Алексеевич

СИСТЕМА ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ ДЛЯ КРУПНОБЛОЧНЫХ ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСОВ

05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Новосибирск - 1992

Работа выполнена в Вычислительном центре СО РАН

Научные руководители: доктор физико-математических наук,

Ведущая организация: Институт математики СО РАН

Защита состоится "15 " января 1993 г. в 14.30 ч. на заседании специализированного совета К 003.93.01 по присуждению степени кандидата наук при Институте систем информатики СО РАН по адресу: 630090, Новосибирск, 90, пр. академика Лаврентьева, 6.

С диссертацией можно ознакомиться в читальном зале Вычислительного центра СО РАН (пр. ак. Лаврентьева, 6).

Автореферат разослан 1992 года

профессор Н.Н. Миренков, кадцидат физико-математических наук В.Э. Малышкин

Официальные оппоненты: доктор технических наук,

профессор Г.Д.Чинин, кандидат физико-математических наук В.И. Константинов

Ученый секретарь Специализированного Совета К 003.93.01 к.ф.-м. н

М.А. Бульонков

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность теш. Разработка и эффективная эксплуатация принципиально новых технологий получения научных знаний требуют наличия ЭВМ, быстродействие которых позволяет отнести их к классу суперЭВМ, а также специального системного и прикладного математического обеспечения (СМО).

Один из путей создания таких высокопроизводительных систем- использование крупноблочного подхода, который позволяет:

- в сжатые сроки строить проблемно-ориентированные иерархические распределенные комплексы из модулей., представляющих, собой специализированные процессоры (СП), блоки многопортовой памяти, малые машины и даже универсальные ЭВМ;

- благодаря преимущественному использовнию серийно выпускаемых модулей, достигать для этих систем высоких экономических показателей,

- иметь возможность для аккумулирования и интегрированного использования СМО, разработанного для различных модулей.

Примеры таких систем - высокопроизводительный геофизический комплекс ЕС-1068.17, параллельная машина ЕС-8710 (НРБ), многопроцессорные комплексы ИКИ РАН и ЕС-1766 (Украина), высокопроизводительная вычислительная система (ВВС) "Сибирь", разработанная в ВЦ СО РАН, -Ссар и ьерюб (США) и другие. Крупноблочный подход разрешает наращивать вычислительную мощность путем введения дополнительных уровней иерархии и формирования мультикластеров.

Среди проблем, которые'возникают при работе таких комплексов, принципиальной является использование совокупности параллельно действующих модулей для решения одной сложной задачи в условиях разнородности модулей и межмодульных интерфейсов, в условиях динамически изменяемого числа доступных модулей и "естественного" выхода их из строя. При этом весьма важной является, с одной стороны, проблема приемственности существующих методов и средств программирования, а с другой -проблема "прозрачности", "упрятывания" внутренней архитектуры комплекса при сохранении достаточной эффективности использования его ресурсов.

Целью работы является создание системы- параллельного программирования (СПП) для крупноблочных многопроцессорных.вычислительных комплексов (МВК), собранных . из серийных -средств ■ вычислительной техники. Достижение этой цели предполагает:

- разработку языка параллельного программииования как . средства описания больших, и сложных задач в виде системы, параллельно протекающих и взаимодействующих процессов;

- создание алгоритмов исполнения новых операторов языка, обеспечивающих порождение, синхронизацию и обменные взаимодействия процессов, их взаимное исключение на общих ■ ресурсах, а так же специальную разметку процессов;;- реализацию на ВВС "Сибирь" средств автоматизации

параллельного программирования на базе этого языка.

Научная новизна диссертационной работы состоит в создании системы автоматизации параллельного программирования, обладающей следующими свойствами:

- адаптируемостью параллельных программ к доступным ресурсам системы путем изменения'числа порождаемых процессов и/или порядка их исполнения;

- распределением параллельных процессов по нескольким уровням иерархии, соответствующим многоуровневой структуре базового МВК, и предопределяющим, таким образом, в целом поэтапный и иерархический стиль сборочного программирования, параллельной и макроконвейерной обработки данных;

-,возможностью варьирования временем решения задачи путем изменения степени ее параллелизма, то есть числа порождаемых подчиненных процессов, специальной разметки этих процессов' и выбора средств их взаимодействий;

- управлением разнородными процессорными элементами, межпроцессорными интерфейсами и системами программирования, входящими в состав вычислительного комплекса.

Практическая ценность работы состоит:

- в разработке системы параллельного программирования "Иня" для МВК ЕС-1068.17 и ВВС "Сибирь";

- в обеспечении определенной мобильности системы, позволяющей использовать идеи и фрагменты программного комплекса в МВК, базирующихся на другие вычислители, например, ПЭВМ;

- в предоставлении пользователю средств, позволяющих из-

менять степень детализации программирования, - использование внутренних особенностей спецпроцессоров и МВК в целом для достижения максимальной эффективности вычислений;

- в организации эволюционного перехода от методов традиционного последовательного' программирования к идеологии и методам параллельного программирования.

Реализация результатов исследования. Разработанная СПП внедрена и используется для разработки параллельных программ в КЦИИТ (София, Болгария), ЦГЭ Миннефтепрома (Москва).

Публикации и апробация работы. По теме диссертации опубликовано 10 работ. Основные результаты докладывались на Всесою-. зном научно-техническом семинаре "Программное обеспечение многопроцессорных систем" (Калинин, 1988), 8-м Всесоюзном семинаре "Параллельное программирование и высокопроизводительные структуры" (Киев, 1988), на 19-й Региональной СевероКавказской школе по системному программированию "Современные супер-ЭВМ: Архитектура и программное обеспечение" (Ростов-на-Дону, 1988), Всесоюзном семинаре "Методы и инструментальные средства генерации программ" (Киев,1989), 8-й Сибирской школе по пакетам прикладных программ (Иркутск, 1989), на Всесоюзной конференции "Высокопроизводительные вычислительные системы для КЦММ" (Новосибирск, 1989), на 22-й Региональной СевероКавказской школе по системному программированию "Сборочное программирование" (Ростов-На-Дону1990), Всесоюзной школе-семинаре "Многоуровневое структурное проектирование программных систем" (Киев, 1991), на Международной конференции "Параллельные компьютерные технологии" (Новосибирск, 1991), на 23-й региональной Северо-Кавказской школе■ по системному программированию "Параллельное программирование и автоматическое распараллеливание программ" (Ростов-на-Дону, 1991).

Структура и объем работы. Диссертация .состоит. из введения, трех глав, заключения, приложений и списка литературы из 83 наименований. Общий объем работы 126 страниц.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обосновывается актуальность разработки интегрированной СПП для крупноблочных МВК, созданных на основе серийных вычислительных модулей, определяются основные цели, научная новизна и практическая ценность диссертации.

В первой главе описываются концепция крупноблочного конструирования МВК и разработанные на ее базе комплексы ЕС-1068.17 и "Сибирь", модель организации параллельных вычислений и язык параллельного программирования "Иня".

Комплекс ЕС-1068.17 был разработан НИЦЭВТ, ЦГЭ Миннефте-прома и ВЦ СО РАН при участии специалистов Болгарии и по ре-, зультатам типовых испытаний был рекомендован к серийному производству. Его основу составляют центральная двухпроцессорная ЭВМ (ЦВМ) с общим полем памяти ЕС-1068 и векторно-конвейерная подсистема, которая объединяет восемь матричных СП ЕС-2706, подключенных к ЦВМ по радиальной схеме и позволяющих использовать векторную, макроконвейерную и параллельную обработку данных с пиковой производительностью 96 Мфлопс.

ВВС "Сибирь" была разработана в ВЦ СО РАН. Она является развитием ЕС-1068.17 и включает дополнительные подсистемы нижнего уровня иерархии: векторно-параллельную - на базе машин серии ПС и ассоциативную - на базе БЪагап-подобных процессорных модулей ЕС-2720. ВВС "Сибирь" открыта для включения любого из доступных процессорных элементов, подсистем СП, а также быстрых каналов межпроцессорной связи, общих шин и блоков общей электронной памяти (ОЭП), которые повышают эффективность и удобство доступа к ресурсам, и дают дополнительные возможности для интеграции разнородного оборудования.

Проект мультикластерной системы был разработан в Болгарии. В его реализации принимал участие ВЦ СО РАН. В этом проекте система объединяет кластеры - подсистемы СП ЕС-2706 или ЕС-2709 под управлением ЕС-1037. Четыре кластера над макро-кластерной ОЭП формируют макрокластер, а четыре макрокластера над общей интеркластерной памятью - интеркластер под управлением ЕС-1068.

Для обоснования новых программных конструкций и способов

организации программ в качестве основной модели параллельных вычислений принято объединение моделей "ведущий-ведомый" и "взаимодействующих процессов". Процесс определяется как исполняющаяся программа для некоторого вычислителя, входящего в состав МВК, и данные, которые обрабатываются этой программой. Ведущий (старший) процесс выполняется на ЦВМ и порождает ведомые (подчиненные) процессы (ПП), функционирующие на СП, В каждый конкретный момент времени старший процесс формирует один, 1-й процесс, ПП.....ПП1 в это время или уже выполнились, или выполняются, а ПП и остальные еще не создавались. Каждый ПП может взаимодействовать как со старшим процессом, так и с процессами своего уровня иерархии и может быть старшим для порождаемых им процессов нижних уровней.

Организация параллельных вычислений рассматривается с точки зрения наличия ресурсов, выделенных одной задаче. Старший процесс является собственником всех ресурсов: входных и выходных буферов ОП ЦВМ, СП, блоков ОЭП и т.д. и распределяет их между ПП.

Вычисления по схеме одновременно протекающих процессов организуются в тех случаях, когда все ПП одновременно могут иметь необходимые ресурсы в требуемом количестве и бесконфликтно взаимодействовать (синхронизоваться или обмениваться данными) со старшим процессом или между собой.

Вычисления по схеме слабосвязанных процессов организуются в тех случаях, когда ресурсов не хватает всем процессам, и они, за исключением той части, которая одновременно получает однотипный ресурс, должны выполняться без взаимодействия, чтобы избежать тупиковых ситуаций.

Особое внимание уделяется решению проблемы взаимного исключения, т.е. такой синхронизации ПП, которая запрещает одновременное использование общих ресурсов.

В случае дефицита памяти данных и/или памяти программ СП выполнение ПП организуется по схеме конвейера данных (макроконвейера): исходная программа распределяется по ступеням конвейера, каждая из которых автоматически помещается на отдельный СП, входные данные делятся на линейно упорядоченные блоки, и результат получается после последовательной обработки каждого блока на всех ступенях.

При такой модели вычислений параллельная программа представляет собой последовательную программу старшего процесса, в теле которой явно определена в укрупненном (крупнозернистом) виде схема, формирования подчиненных процессов из наиболее времяемких фрагментов, как правило, внешних циклов или слабосвязанных блоков.

Унифицированные языковые конструкции при этом должны обеспечивать равномерную загрузку ресурсов, порождение и завершение процессов, синхронизацию, обмен и разделение общих ресурсов МВК на всех уровнях иерархии. Подчиненные процессы программируются заранее средствами СМО спецпроцессоров.

СПП "Иня" включает в себя удовлетворяющий этим требованиям язык параллельного программирования - расширенный Фортран, обеспечивающий явное описание взаимодействующих паралельных процессов. Кроме того, в состав системы входят средства обработки ошибок, конвертор, преобразующий текст Иня-программы в текст на Фортране и справочно-информационная подсистема.

Поскольку стандарт параллельного Фортрана, который должен унифицировать процесс программирования для иерархических МВК, окончательно не принят, а такие диалекты, как pcf Fortran, HPF Fortran И Fortran D, ТОЛЬКО пробивают себе Дорогу, В "Ине" предложены оригинальные операторы.

Тип, количество и алгоритм захвата процессорных элементов (линейка, кольцо и т.д.) определяются оператором set, освобождение СП- оператором releas.

Для порождения ПП фрагмент программы старшего процесса заключается в операторные скобки pardo-parend, которые являются верхней и нижней границей цикла по числу ПП. С выходом на pardo начинается создание nn4, оператор parend запускает его на выполнение и происходит переход к формированию nnitl.

Оператор pexit обеспечивает принудительное завершение формирования процессов. Оператор exec отмечает точку, после которой прекращается создание текущего. ПП и сформированная часть запускается на выполнение в СП. Дальнейшее порождение прерванного ПП продолжится только после окончания запущенной части. Оператор exec необходим, когда старшему процессу требуется обработка промежуточных результатов счета в ПП.

Оператор wait реализует два типа синхронизации: для ПП и

для старшего и подчиненных процессов. Оператор pass обеспечивает обмен данными между старшим и подчиненными процессами, между ПП или пересылку внутри памяти данных одного ПЛ. Операторы sect и post являются операторами взаимного исключения, позволяющими процессам использовать общие ресурсы МВК.

Оператор snip обеспечивает однородное распределение данных между ПП путем разрезания массивов на -полосы различного вида: горизонтальные, вертикальные, циклические-горизонтальные или циклические-вертикальные, горизонтальные или вертикальные с дублированием и, наконец, скошенные. Функция iblock определяет размер полос, распределенных отдельному процессу. Оператор scroll позволяет заменить фактическую передачу данных при пересылках, обменах и сдвигах перекомпоновкой элементов таблицы, хранящей адреса и размеры подготовленных для перемещения полос.

Память данных СП резервируется оператором local. Для использования общей памяти кластера и макрокластера предлагаются операторы описания массивов cluster и global.

Функция istage вычисляет текущий номер ступени конвейера.

Во второй главе описаны алгоритмы, организующие вычисления в соответствии с принятой моделью. Для того, чтобы поддержать мобильность прикладных программ и выбор средств программирования в зависимости от алгоритма задачи и наличия ресурсов, разработаны унифицированные процедуры порождения и взаимодействия процессов для всех подсистем спецпроцессоров при любом способе связи между ними.

Порождение процесса представляется в виде следующей последовательности шагов: выделение ресурсов, подготовка исходных данных, формирование программы для СП и запуск ее на выполнение, после чего происходит ожидание, прием и обработка результатов и завершение процесса.

Захват и освобождение СП любого типа происходит либо неявно, либо явно с указанием алгоритма захвата (освобождения). Переход на уровень макро- или интеркластера осуществляется, если не хватает ресурсов нижнего уровня.

В ■ качестве стратегии управления памятью выбрано простое непрерывное распределение для памяти данных СП и страничное распределение для ОЭП всех уровней, при котором задача

получает память, пропорциональную числу выделенных СП.

Для оптимальной загрузки ресурсов в "Ине" реализовано несколько, способов динамического распределения данных по ПЛ.

Назначение процессов на процессоры осуществляется также динамически с учетом доступных СП и в соответствии с принципом линеаризации, согласно которому линейно упорядоченная система процессов распределяется на линейку (кольцо) СП таким образом, чтобы очередному ПП выделялся только следующий по порядку процессор. При полной загрузке процесс ждет освобождения первого СП и т.д. Однако, если в качестве интерфейса используется прямая межпроцессорная, связь (через шину или ОЭП), то очередной процесс может захватить любой свободный спецпроцессор.

Приоритет процессов определяется порядком их порождения,' заданным в линейном алгоритме. Если инициируются неоднородные процессы, то пользователь может упорядочить процессы по уменьшению времени счета, определив наиболее времяемкие, либо эмпирически, либо интуитивно, для того чтобы эти процессы были первыми сформированы и отправлены на счет.

Взаимодействуют параллельные процессы при синхронизации, обмене, взаимном исключении и макроконвейерной обработке.

Язык "Иня" интегрирует процедуры синхронизации всех подсистем спецпроцессоров, дополняя их синхронизацией старшего процесса не только, со всеми, но и с группой выделенных ПП, и децентрализованной синхронизацией.

Потребность в средствах программирования высокого уровня, а также, отсутствие аппаратно-программной поддержи неделимых семафорных операций обусловили использование программ-мониторов в качестве основного механизма управления взаимодействием.

Список синхронизуемых процессов задается как параметр оператора wait, на этапе формирования номера этих ПП помещаются в те элементы системной таблицы монитора, которые соответствуют логическим номерам выделенных СП. Участок ПП от pardo до wait запускается на выполнение, и завершив заданную часть работы, процесс сам себя вычеркивает из списка. Обнуление таблицы и совпадение счетчика синхронизуемых ПП с размером списка являются признаком выхода всех необходимых процессов в

точку синхронизации.

Оператор обмена реализует поименованное взаимодействие "из точки в точку"- от процесса-источника к процессу-приемнику.

Передача данных в многопроцессорной векторно-конвейерной подсистеме происходит в зависимости от наличия доступных средств коммуникации: радиальных связей, быстрых каналов связи между СП, общих шин и блоков общей электронной памяти.

При обмене между ПП через ОП ЦВМ или ОЭП и транзитном межпроцессорном обмене через каналы связи программист обязан позаботиться о подготовке, сохранности и своевременном освобождении буферов для хранения транзитной информации.

Использование одной или нескольких параллельных шин позволяет организовать прямой синхронный обмен между любыми процессами. Однако в этом случае необходимо учитывать возможность возникновения очереди на пересылку, снижения производительности и появления взаимоблокировок.

Переход на уровень мультикластера происходит без особых проблем за счет использования тех же операторов обмена.

Обмен между неоднородными подсистемами осуществляется только через явно выделенные буферы ОП ЦВМ или ОЭП из-за отсутствия прямых каналов связи .

Общими ресурсами для 1111, как правило, являются ресурсы старшего процесса, поэтому проблема взаимного исключения актуальна только для многопроцессорных однородных подсистем (ЕС-2706, ЕС-270Э и др.), т.к. только там возникает потребность в исключении влияния запущенных ПП, обменивающихся со старшим процессом, на формирование новых 1111.

При совместном использовании ь каких-либо однородных ресурсов, Первые ь конкурирующих процессов захватывают их в точке бест^ и выполняются без помех. Каждый к-й процесс (к- порядковый номер в списке конкурирующих процессов), начиная с (ь+1)-го, задерживается в точке ЗЕСТк , до освобождения (к-ь)-м процессом ресурса в точке Розткь> а затем сам задерживает (к+ь)-й процесс. Пользователь явно задает количество и программирует' загрузку и освобождение ресурсов.

Реализация монитора обеспечивает как централизованное, так и децентрализованное использование разделяемых ресурсов при различной конфигурации МВК. Корректировка служебной информа-

ции осуществляется либо старшим процессом на этапе формирования, либо одним из пары конкурирующих ГШ, поэтому одновременный захват ресурсов несколькими процессами исключен.

Макроконвейерная обработка состоит из трех этапов: загрузки конвейера, которая осуществляется за n-i такт, где n- это число ступеней конвейера, а под тактом понимается процедура обработки блока данных на одной ступени; параллельной работы всех ступеней, которая выполняется за m-n+i тактов (м- общее число блоков), и разгрузки конвейера, которая также выполняется за n-i такт.

В этом случае количество процессов определяется не числом итераций цикла pardo, а произведением количества ступеней на число тактов, которые в явном виде задаются пользователем. Основными проблемами при организации макроконвейерных вычислений являются определение номера ступени в зависимости от номера текущего ПП и пересылка со ступени на ступень, требующая прямой синхронной межпроцессорной связи.

Проблема диспетчеризации, связанна с созданием и последующим управлением очередью порождаемых процессов, которая возникает потому что синхронизация, взаимная блокировка и использование оператора exec приводят к прерыванию формирования ПП, запуску готовой части на выполнение и к переходу на создание новых процессов для исключения простоев и обеспечения равномерной загрузки ресурсов.

Управление процессами осуществляется программой-диспетчером, которая включается при завершении порождения' ПП, освобождении СП или при прерывании формирования в точках взаимодействия ПП.

Поскольку управление вычислительным процессом осуществляется в момент работы старшего процесса, то за основу выбрано централизованное диспетчирование, которое осуществляется следующим образом.

I. При порождении ПП формируется блок управления процессом, содержащий информацию необходимую для его функционирования: идентификатор (номер) процесса; логический номер захваченного СП; контекст, описывающий взаимодействия с другими ПП; указатели выделенных ресурсов; адрес области сохранения регистров ЦВМ.

2. На этапе выполнения создается таблица состояний процессов, значения ячеек которой изменяются, если процесс: закончен (СП свободен), выполняется, готов к доформированию, формирование заблокировано операторами sect или wait.

Основная задача диспетчера состоит в обнаружении свободных цля загрузки СП и готовых для дальнейшего формирования ПЛ. Диспетчер последовательно в порядке старшинства проЁеряет состояние процессов и

а) если есть свободные СП и еще не порожденные ПП, передает управление на соответствующий оператор pardo;

б) если есть ПП, находящиеся в состоянии готовности, то диспетчер востанавливает состояние процесса и передает управление прерванной программе формирования;

в) если ПП находится в состоянии ожидания момента синхронизации или освобождения ресурса, то диспетчер проверяет список синхронизующихся процессов или состояние процесса-конкурента и, в зависимости от ситуации, переводит ЦВМ в состояние ожидания события или продолжает просмотр таблицы состояний;

г) если все процессы находятся в состоянии выполнения или блокировки, то диспетчер переводит ЦВМ в ожидание первого из освободившихся СП, чтобы продолжить проверку на готовность или на полное завершение порождения всех процессов.

Чтобы исключить бесконечное откладывание ПП, при каждом обращении к диспетчеру проверка состояний начинается не с начала таблицы, а с ячейки, следупцей за той, от которой произошло последнее обращение к программе формирования; что обеспечивает циклический контроль состояний всех процессов.

В третьей главе описаны общезначимые приемы реализации СПП "Иня", которые могут использоваться при разработке новых операторов, языков более высокого (непроцедурного) уровня и СПП для МВК на более современной элементной базе, а также некоторые приемы программирования на языке "Иня" и итоги его эксплуатации.

Стартовая версия СПП содержит 56 программных модулей на Ассемблере и Фортране ОС ЕС ЭВМ, а также на языке apal СП ЕС-2706. Обсуждаемые особенности программной реализации Иня-операторов связаны с проблемами расширения и модификации межмодульных связей по управлению и по данным, а также с про-

блемой обмена управляющей информацией между ЦВМ и СП, защищенного от исполняющей системы и пользователей.

Конвертор, входящий в состав системы, во-первых, поддерживает привычный для пользователя стиль программирования на Фортране, во-вторых, осуществляет предварительную проверку правильности Иня-программ, в-третьих, обеспечивает мобильность СПП, так как дает возможность работать в различных операционных средах, с разнообразными версиями последовательного Фортрана, в-четвертых, позволяет использовать апробированную технологию для последующих версий языка, в том числе, для включения параллельных конструкций в другие последовательные языки, например, Паскаль или Си.

Для реализации конвертора выбрана двухпроходная схема: на первом проходе выполняется сканирование и предварительная обработка текста Пня-программы в промежуточном файле; на втором проходе промежуточный файл переписывается в выходной, при этом в текст- Фортран-программы осуществляется вставка общих блоков, необходимых . для обмена служебной информацией, и операторов, опущенных по умолчанию.

Выявление синтаксических ошибок в Иня-программе распределяется между двумя этапами подготовки объектного кода: конвертированием Иня-программы и компиляцией Фортран-программы.

На этапе формирования ПП фиксируются семантические ошибки, связанные с неверным использованием операторов и операндов, а также аварийные ситуации, возникающие при распределении ресурсов.

На этапе выполнения в СП аварийные ситуации обрабатываются средствами нижнего уровня - операционной среды "Обь". Для того, чтобы пользователь получил представление о ходе порождения и выполнения ПП в момент аварийного завершения, управление перехватывается исполняющей системой языка "Иня" и распечатывается информация о состоянии подчиненных процессов.

Заключительный раздел содержит обобщение опыта эксплуатации ВВС "Сибирь", а также отечественных и зарубежных высокопроизводительных ЭВМ. Это позволило выделить некоторые характерные черты параллельного программирования на разнородных иерархических МВК, сформулировать общие принципы создания параллельных алгоритмов и программ, а также предоставить про-

граммисту набор правил и технологических приемов, облегчапцих адаптацию ранее созданных последовательных программ и реализацию оригинальных параллельных алгоритмов на языке "Иня".

Система "Иня" была апробирована на задаче фильтрации аэрокосмических изображений, по схеме которой могут решаться многие задачи цифровой обработки данных. Иня-программа сравнивалась с программой аналогичного назначения, в которой захват ресурсов осуществлялся 'средствами монитора "Обь", а синхронизация и использование общих ресурсов программировались на стандартном Фортране,

Вычислительные эксперименты позволили сделать следующие выводы:

I ) при увеличении числа захваченных СП производительность растет относительно линейно, так, коэффициент ускорения для 880x1310 отсчетов по сравнению со счетом на EC-I066 составил 3,69 на одном СП ЕС-2706, 6,55 - на двух и 10,66- на четырех СП. Снижение быстродействия при переходе с Фортрана на "Иню" является незначительным: от 2.5$ в лучшем и до 15% в худшем случае;

2) повышение скорости, наглядности и надежности программирования за счет использования унифицированных средств, предлагаемых в языке "Иня", компенсируют неизбежное сниженние быстродействия, связанное с переходом на более высокий уровень программирования;

3) производительность растет стабильно, если число захваченных СП будет кратно числу входных и выходных буферов.

Достоинства ВВС "Сибирь" и СПП "Иня" были подтверждены при решении задачи, трехмерного моделирования потоков плазмы в самосогласованных электромагнитных полях,. широко известной также под названием задачи моделирования плазмы методом "частиц В ячейке" (PIC - particle-in-cell ).

Потребность в МВК для решения этой задачи обусловлена тем, что точность вычислений повышается с увеличением количества частиц. Ни оперативной памяти, ни быстродействия серийных ЭВМ, например, EC-I066 не хватает, потому что для достижения требуемой точности необходима обработка 2,7 млн. частиц, каждая из которых характеризуется 7-ю показателями, на 400600 шагах по времени, что требует для обработки - 30 MB опе-

ративной памяти, 'в то ■ время как пользователь ЕС-1066 может претендовать в реальных условиях об/куб в лучшем случае на один раздел 0П- 8 МБ, а.время счета одного шага по времени равно 7 мин.

Использование ВВС "Сибирь" дает возможность решения задачи моделирования плазмы в полном объеме, т.к. совокупная память СП позволяет хранить все исходные и промежуточные данные, а также результаты счета. Высокое быстродействие СП ЕС-2706 сокращает время счета одного шага до 4,5 мин, а распараллеливание обеспечивает относительно линейный рост скорости обработки. Эксперимент, проведенный на 3-х СП, обеспечил ускорение примерно в 5 раз на каждом шаге по времени.

Важным для нас результатом решения задачи моделирования плазмы -.является вывод о том, что система параллельного программирования '?Иня" является удобной, для промышленной эксплуатации, т.к. обеспечивает создание высокоэффективных программ без посредничества разработчиков языка.

■ ОСНОВШЕ РЕЗУЛЬТАТЫ РАБОТЫ '

1. Разработан язык параллельного программирования, позволяющий' описывать большие и сложные задачи в виде системы параллельно протекающих и взаимодействующих процессов и обеспечивающий разным пользователям выбор разных параллельных архитектур, адекватных решаемым задачам; по существу, предоставляющий доступ к виртуальной параллельной вычислительной системе разнородного типа с разнообразными видами параллелизма.

2. Предложены алгоритмы исполнения операторов языка, обеспечивающих порождение, синхронизацию и.обменные взаимодействия процессов, их взаимное исключение на общих ресурсах, а также специальную разметку процессов, что обеспечивает создание универсальных параллельных программ, настраиващихся на число процессов как на параметр и сохраняющих при этом высокую производительность.

3. Разработана и внедрена в ряде организаций страны, а также за рубежом промышленная версия системы параллельного программирования "Иня" для высокопроизводительной вычислительной

системы "Сибирь".

4. Применение СПП "Иня" для-решения прикладных крупномасштабных задач показало, что при соблюдении основных принципов и .

правил параллельного программирования,- система в состоянии

«

существенно облегчить процесс ■ программирования, давая проблемным программистам возможность эволюционного перехода' от методов традиционного последовательного программирования к идеологии и методам параллельного программирования. При-этом, сохраняется производительность, близкая к достигаемой при применении средств нижнего уровня,

5. Эффективность и универсальность языка "Иня"'позволяют использовать его в качестве базового языка программирования при разработке языковых .средств для МВК, расширенных за .счет включения новых подсистем спецпроцессоров или базирующихся на более современной элементной базе, а - также при создании проблемно-ориентированных языков программирования, освобождающих пользователя от посредничества программистов- профессионалов . При этом сроки модификации системы параллельного программирования не превышают сроков сборки.самого МВК.

ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

1. Анисимов В.А., Малышкин В.Э. Язык параллельного программирования для многопроцессорного вычислительного комплекса ЕС ЭВМ // Тезисы Всесоюзного научно-технического- семинара. "Программное обеспечение многопроцессорных систем". Калинин, 1988.- с.79-81.

2. Анисимов В.А., Малышкин В.Э. Средства параллельного программирования для крупноблочных многопроцессорных вычислительных комплексов // Теория и методы параллельной обработки информации.- Новосибирск, 1988.- с.98-109.

3. Анисимов В.А. Вспомогательные средства языка параллельного программирования "Иня" // Тезисы 8-го Всесоюзного семинара "Параллельное программирование и высокопроизводительные структуры" .- Киев, 1988.- с.118-119.

4. Анисимов В.А., Малышкин В.Э., Миренков H.H. Язык параллельного программирования для крупноблочных МВК. Одновременно протекающие процессы.- Новосибирск, 1989.- 29 с.

(Препринт/ВЦ СО АН СССР: N 824).

5. Анисимов В.А., Малышкин В.Э., Миренков H.H. Язык параллельного программирования для крупноблочных МВК. Независимые процессы.- Новосибирск, 1989,- 27 с. (Препринт/ВЦ СО АН СССР: № 825).

6. Анисимов В.А. Взаимодействие параллельных процессов в среде языка "Иня" // Тезисы 8-й Сибирской школы по пакетам прикладных программ.- Иркутск, 1989.- с.76.

7. Анисимов В.А. Система параллельного программирования "Иня" // Математическое и архитектурное обеспечение параллельных вычислений,- Новосибирск, 1989.- с.67-73.

8. Анисимов В.А. "Иня" - параллельный Фортран для высокопроизводительной вычислительной системы "Сибирь" // Тезисы Всесоюзного семинара "Адаптируемые средства программнирования" - Кишинев, 1990.- с.8-10.

9. Анисимов В.А. Взаимодействие процесссов в языке параллельного программирования "Иня" // Тр. Всесоюзной конференции "Высокопроизводительные вычислительные системы для КЦММ".-Новосибирск, ВЦ СО АН СССР, 1991.- с. I05-II5.

10. Anisimov V.A., Malyshkin V.E. Assemble Parallel Programming Syetem INYA //Parallel Computing Technologies, Ed. N.N.Mirenkov, .- World Scientific.- 1991.- P.316-324.