Цели проекта Определить версию расширений языка Фортран, формализующих параллелизм. Перенести реализацию языка Синапс с транспьютерных расширений персональных ЭВМ на многопроцессорную ЭВМ фирмы Parsytec. Произвести опытную эксплуатацию транслятора. Разработать разбор графических средств, поддерживающих разработку параллельных программ в научных применениях. Подготовить необходимую документацию. Полученные результаты Разработана версия языка Фортран, представляющая собой расширение стандарта языка Фортран-77 и содержащая минимальные дополнения для описания параллелизма алгоритмов. Параллелизм программ описывается схемой распределения данных, параллельными блоками, содержащими описания локальных для процессоров данных, и параллельной формой оператора цикла DO. Предложенные конструкции, как показывает опыт языка Синапс/3, достаточны для концептуально строгого описания широкого класса алгоритмов с регулярными структурами данных (векторами и матрицами), для которых основной конструкцией управления является цикл. Разработана новая схема трансляции программ, ориентированная на ЭВМ, состоящую из независимых процессоров с распределенной памятью. Основными проблемами при трансляции для таких систем являются генерация эффективного кода для распределенных циклов и для ссылок на нелокальные элементы массивов. Необходимо, чтобы пересылаемые данные в большинстве случаев определялись статически на этапе компиляции. Найдено решение этих задач как для систем вложенных циклов, условия которых являются линейными выражениями относительно индуктивных переменных этих циклов, так и для обращений к распределенным данным, индексируемых также линейными выражениями. В этом случае компилятор формирует условия циклов, параметризованных относительно номера процессора, исполняющего выходную SPMD-программу. На основе этих алгоритмов реализована новая версия транслятора, позволяющая решать широкий круг задач. Для переноса реализации языка Синапс/3 с транспьютерных расширений персональных ЭВМ на многопроцессорную ЭВМ фирмы Parsytec разработан и отлажен коммуникационный пакет, обеспечивающий нижний уровень работы транслятора. В пакет входят подпрограммы передачи сообщений между процессорами сети и подпрограммы распределения/унификации данных между процессорами. Разработан минимальный набор графических средств, поддерживающих разработку параллельных программ в научных приложениях, обеспечивающих визуализацию вычисляемых данных. Подготовлен минимальный набор необходимой документации. |