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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.10.2018
Размер файла 65,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

Для реализации указанных возможностей в язык введены новые операторы (SEND, RECEIVE и др.), новый тип данных для идентификации задач (TASKID), конструкция выбора (SELECT MESSAGE - END SELECT), новый вид программных единиц (программные единицы-задачи) и новые стандартные процедуры.

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

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

Новые средства, введенные в Фортран 90/95, позволяют расширить Фортран GNS. В работе [48] (проект РФФИ № 97-01-00361) описываются предложения по дальнейшему развитию Фортрана GNS, которые ориентированы на новые возможности, предоставляемые современными стандартами Фортрана. Новые средства обеспечивают больше удобств для пользователя и более широкие возможности параллельной обработки.

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

Разработать расширения языковых средств, ориентированных на современные требования, включая объектную ориентацию (некоторые расширения, ориентированные на современные стандарты Фортрана, как отмечалось выше, уже разработаны).

Реализовать расширенный вариант Фортрана GNS.

Реализовать GNS следующим образом: исходную программу переводить на Фортран 90/95, дополненный вызовами MPI-процедур. Такой подход используется обычно и для реализации HPF (см. 8.2.), т.е. Фортран 90/95 и MPI являются промежуточными при реализации параллельного языка. (Идея промежуточного языка была в свое время успешно апробирована при реализации в нашей стране Алгола и Фортрана на АЛМО [49]).

В результате реализации этих предложений пользователь смог бы получить более простой инструмент, чем MPI и более современные средства, чем Фортран GNS, и появилась бы возможность использовать программы, переведенные с Фортрана GNS, на любой системе, имеющей реализацию Фортрана 90/95 и MPI. Последний фактор способствовал бы повышению конкурентноспособности прикладных программ, поскольку они могли бы работать практически на любой вычислительной системе с распределенной памятью.

7. Средства поддержки параллельности для многопроцессорных систем с общей памятью

7.1 Общие сведения

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

Для вычислительных машин с общей памятью, так же, как и для других видов архитектуры, разработаны системы, обеспечивающие автоматическое распараллеливание (в тех случаях, где это возможно), системы, в которых пользователь вставляет обращения к библиотечным процедурам, или компилятор распараллеливает обычный последовательный код, используя директивы-комментарии. В нашей стране также были разработаны средства спецификации параллельности для многопроцессорного (с общей памятью) варианта ЕС1191 [21].

Работы по унификации расширений языков средствами спецификации параллелизма выполнялись первоначально группой PCF (Parallel Computing Forum) [50], в дальнейшем X3H5 ANSI [51]. Эти группы объединили представителей крупнейших фирм, которые накопили большой опыт использования многопроцессорных систем с общей памятью. Разработана языково-независимая модель параллелизма и расширения Фортрана на основе этой модели.

Проект X3H5 положен в основу стандарта OpenMP [52, 53]. Спецификации для Фортрана были утверждены в 1997 году, для С/С++ в 1998 году. Работа по дальнейшему развитию OpenMP продолжается [52].

7.2 Модель параллелизма

Концептуальная модель параллелизма, заложенная в X3H5 и OpenMP, очень схожая, хотя имеются некоторые различия в конкретной реализации модели. Ниже кратко описываются основные принципы этой модели.

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

Фрагмент программы внутри параллельной области выполняется всеми нитями бригады на разных процессорах. Главная нить ждет завершения выполнения всех нитей и продолжает выполнение только одна. Такие бригады могут образовываться не один раз.

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

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

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

program

! Активизируется начальный процесс

! Последовательное выполнение

parallel ! Начало параллельной области

! Каждый член бригады выполняет одни и те же действия

pdo i=1, n ! Начало конструкции "параллельный цикл"

! Итерации распределяются среди членов бригады

. . .

end pdo ! Конец конструкции "параллельный цикл"

. . .

psection ! Начало конструкции "параллельные секции"

! Действия выполняются всеми членами бригады

. . .

section ! Параллельная секция

. . .

section ! Параллельная секция

. . .

end psection ! Конец конструкции "параллельные секции"

. . .

end parallel ! Конец параллельной области

! Последовательное выполнение

! Другие параллельные конструкции

. . .

end

7.3 Спецификации для Фортрана

В OpenMP для Фортрана директивы оформляются в виде комментария, начинающегося с символов !$OMP, *$OMP или C$OMP. В X3H5 директивы имеют вид обычных операторов Фортрана (хотя допускается их оформление и в виде комментария), поэтому выбор ключевых слов для таких операторов делался с учетом того, чтобы не было коллизии с ключевыми словами стандартного Фортрана. В Open MP такого принципа не придерживались, коллизии не произойдет, поскольку директивы оформляются как комментарии, но тем не менее нам представляется, что и в этом случае было бы целесообразнее использовать непересекающиеся имена, тем более, что набор таких ключевых слов был уже подготовлен в проекте X3H5. Ниже рассматриваются основные конструкции этих систем (для сокращения префикс комментария опускается).

Конструкция, задающая параллельную область, имеет вид:

PARALLEL [список-спецификаций]

. . .

END PARALLEL

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

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

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

Параллельный цикл:

DO-END DO (OpenMP)

PDO-END PDO (X3H5)

Параллельные секции:

SECTIONS - SECTION - END SECTIONS (OpenMP)

PSECTIONS - SECTION - END PSECTIONS (X3H5)

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

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

PARALLEL DO - END PARALLEL DO

PARALLEL SECTIONS - END PARALLEL SECTIONS (OpenMP)

PARALLEL PDO - END PARALLEL PDO

PARALLEL PSECTIONS - END PARALLEL PSECTIONS (X3H5)

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

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

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

Из встроенных функций отметим следующие: функции, устанавливающие число нитей в бригаде, функции, возвращающие число нитей, возвращающие номер текущей нити в бригаде и др.

8. Средства параллельности, ориентированные на разбиение данных

8.1 Общие сведения

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

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

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

Соответствующие расширения для Фортрана были первоначально разработаны и реализованы в двух проектах: Fortran D (Техасский университет) [54] и Fortran Vienna (Венский университет) [55]. Хотя на концептуальном уровне в этих подходах много общего, языки Fortran D и Fortran Vienna отличаются друг от друга.

8.2 Язык HPF

Дальнейшее развитие этот подход получил в языке HPF (High Performance Fortran) [56], который является расширением Фортрана 90, существенно использует его новые возможности и фактически является международным стандартом.

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

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

Более новая версия этого языка HPF 2.0 [57] основывается на Фортране 95 и содержит ряд нововведений. В HPF 2.0 внесены серьезные расширения по сравнению с первой редакцией. Поскольку HPF 2.0 является расширением Фортрана 95, все новые черты, которые включены в Фортран 95, неявно включены и в HPF 2.0. Имеются также существенные собственные новшества. Далее мы будем говорить об HPF, имея в виду и первую и вторую редакции.

Директивы HPF имеют вид комментария, который начинается с символов !HPF$, *HPF$ или CHPF$. Для иллюстрации рассмотрим назначение некоторых из этих директив.

Директива DISTRIBUTE определяет способ распределения данных по абстрактным процессорам. Специфицируется характер распределения (блочный, циклический, блочно-циклический) для массива или для каждого измерения. Отображение абстрактных процессоров на физические выполняет система реализации.

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

В качестве средств явного указания параллельности в первую версию HPF был включен оператор и конструкция FORALL (см. 3.5.). Из описания HPF 2.0 удалено описание FORALL, так как эти средства теперь имеются в основном варианте стандарта Фортрана - в Фортране 95. Директива INDEPENDENT указывает компилятору, что итерации в следующем DO-цикле и операции в следующем FORALL могут выполняться независимо, в любом порядке. Кроме того, для поддержки параллельности в язык добавлены некоторые встроенные функции, включая и справочные. В HPF2 включены некоторые дополнительные средства для спецификации параллельных вычислений.

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

В настоящее время на многих параллельных компьютерах имеются реализации HPF. Компиляторы HPF обычно осуществляют перевод HPF-программ на Фортран 90/95, дополненный вызовами подпрограмм одной из библиотечных систем : MPI, PVM и др.

8.3 Система DVM

Средства распределения данных в отечественной системе DVM (Фортран DVM и C DVM; проекты РФФИ №96-01-1745 и № 99-01-00209 [58-60]) основаны на аналогичных средствах, имеющихся в HPF. В отличие от HPF, в системе DVM имеются дополнительные средства для распределения вычислений, средства спецификации удаленных данных и средства, специфицирующие параллелизм задач.

Такой подход позволяет пользователю лучше учесть особенности архитектуры и создать более эффективную программу, но в то же время возлагает на программиста дополнительную работу, т.е. усложняет программирование. Базовым языком для Фортрана DVM является Фортран 77.

Для обеспечения совместимости с HPF (который фактически является международным стандартом), по нашему мнению, было бы целесообразно развитие языка Фортран DVM в следующем направлении.

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

Все средства, которые имеются и в HPF (или в его стандартном подмножестве), и в DVM, должны полностью совпадать, включая и префикс комментария (полная синтаксическая и семантическая идентичность).

Те средства DVM, которые отсутствуют в HPF, могут иметь собственный префикс комментария (например, CDVM$).

В системе HPF-DVM сделан некоторый шаг для обеспечения совместимости с HPF, но и в этом случае нет полной идентичности со стандартным подмножеством HPF (которое определено в описании языка), и, кроме того, ориентация делается на Фортран 77, а не на подмножество Фортрана 90.

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

9. Co-array Fortran

Представляется интересным проект для параллельного программирования - Co-array Fortran [61] (более раннее название F--). Язык является небольшим расширением Фортрана 95.

Co-array Fortran реализует модель SPMD. Программа на этом языке интерпретируется так, как если бы она была неоднократно сдублирована, и все копии (экземпляры) выполнялись асинхронно; каждый экземпляр имеет свой собственный набор объектов данных.

Для доступа к данным расширен синтаксис массивов Фортрана 95. Добавлен новый объект, называемый “co-array”. В объявлении такого объекта добавляются квадратные скобки. Например, объявление

real, dimension (n) [*] :: x, y

означает, что каждый экземпляр программы имеет два вещественных массива x и y размером n.

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

Например, если оператор

x(:) = y (:) [m]

выполняется на всех экземплярах, и при этом "m" имеет одинаковые значения на каждом из них, результат такой, что каждый экземпляр программы выбирает массив "y" из экземпляра "m" и помещает его в локальный массив "x".

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

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

10. Система Норма

Рассмотренные выше подходы к описанию параллельности основаны на введение расширений в Фортран. Имеются и другие подходы. Так, в нашей стране разработана и реализована система Норма (проекты РФФИ №95-01-00575-а , №98-01-00987, №99-01-00842, №01-01-00411, №02-01-01114 [62-64]). Язык системы является cпециализированным, он позволяет описывать широкий класс задач математической физики в терминах привычных для прикладного специалиста и, кроме того, содержит средства интерфейса с Фортраном.

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

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

11. Сравнение систем

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

В то же время примитивы нижнего уровня являются хорошим инструментальным средством для реализации параллельных языков высокого уровня. В частности, компиляторы HPF обычно осуществляют перевод HPF-программ на Фортран 90/95, дополненный вызовами подпрограмм одной или нескольких библиотечных систем : MPI, PVM, PARMACS и др.

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

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

Некоторые компромиссные решения предлагаются в системах, описанных выше. Учитывая противоречивые факторы, программист может сделать выбор между простым и удобным программированием и эффективностью.

12. Реализации современного Фортрана

Разработкой и поддержкой компиляторов для различных видов компьютеров занимаются многие ведущие разработчики системного программного обеспечения. Современные стандарты Фортрана реализованы практически для всех вычислительных систем и могут использоваться на различных платформах. Реализованы также расширения стандартов для параллельной обработки: HPF, OpenMP, Co-Array Fortran и др.

Разработчики компиляторов предлагают современный набор инструментов (включая средства отладки, средства визуализации и др.) для разработки Фортран-приложений. В некоторых компиляторах уже реализованы средства, которые войдут в следующий стандарт (Фортран 2000). Это те средства, которые описаны в Технических отчетах, ставших стандартами (см. 4.). Созданы и другие программные продукты, связанные с современным Фортраном (различные анализаторы, конверторы, переводящие прикладную программу с Фортрана 77 на современный Фортран , разнообразные системы тестов, графические библиотеки и др.).

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

Заключение

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

В последнее время известные ученые нашей страны обратили внимание на то, что в России `'индустрия программного обеспечения” занимает слишком скромное место (см., например, [65, 66]), несмотря на то, что в стране имеются все предпосылки для создания и развития этой “экспортной отрасли”. Причины такого положения дел и пути выхода из этой ситуации неоднократно отмечались в печати.

Мы хотели бы обратить внимание еще на одну причину, которая в нашей стране не всегда принимается во внимание. Для того чтобы прикладная программа стала программным продуктом и была конкурентноспособной на зарубежном рынке, она должна быть написана на языке, который является международным стандартом, c использованием современных технологий, предоставляемых этим стандартом. К сожалению, этим вопросам не уделяется должного внимания в курсах программирования в высших учебных заведениях нашей страны [67].

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

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

Однако для прикладных программ предпочтение следует отдавать современным стандартным средствам.

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

Литература

ISO/IEC 1539-1: 1997 Information technology - Programming languages - Fortran - Part 1: Base Language

ISO/IEC 1539: 1991(E) Information technology - Programming languages - Fortran

Adams J., Brainerd W., Martin J., Smith B., Wagener J. Fortran 90 . Handbook. (Complete ANSI/ISO Reference) - Intertext Publications. McGraw Hill, 1992.

Фортран 90. Международный стандарт. Перевод с англ. С.Г.Дробышевич, редактор перевода А.М.Горелик. М.: Финансы и статистика, 1998

Горелик А.М., Ушкова В.Л. Фортран сегодня и завтра. - М.: Наука, 1990

Меткалф М., Рид Дж. Описание языка программирования Фортран 90. Перевод с англ. П.А.Горбунова М.: Мир, 1995

Горелик А.М. Современные международные стандарты языка Фортран. //Программирование, 2001, №6. (English translation: Gorelik A.M. Up-to-Date International Standards of the Fortran Programming Language. //Programming and Computer Software, vol.27, №6, 2001).

Горелик А.М. Фортран жил, жив и будет жить. //Открытые системы сегодня, №1, 1995

Горелик А.М. Эволюция языка Фортран. Устаревшие черты и современные элементы языка для их замены. - Препринт ИПМ РАН, М., 1997, №66

Горелик А.М. Современный Фортран. Состояние и перспективы развития. - Препринт ИПМ РАН. М., 1998, №71

Горелик А.М. На пути к Фортрану 200x. - Препринт ИПМ РАН, М.,1999, №64

Горелик А.М. Средства поддержки параллельности в современном Фортране. Препринт ИПМ РАН, М., 1999, №75

Горелик А.М. Средства поддержки мобильности и надежности программ в современном Фортране. Препринт ИПМ РАН, 2000, №55.

ISO/IEC 1539-2 : 2000(E): Information technology - Programming languages - Fortran Part 2 of the Fortran Standard (Varying length strings).

ISO/IEC 1539-3 : 1997 Information technology - Programming languages - Fortran - Part 3 of the Fortran Standard (Conditional compilation).

Бен-Ари М. Языки программирования. Практический сравнительный анализ. Пер. с англ. под ред. Штаркмана В.С. - М.: Мир, 2000

Векторизация программ: теория, методы, реализация. Сб. статей. Пер. с англ. и нем. под ред. Чинина Г.Д. - М.: Мир, 1991

Luecke G., Haque W., Hoextra J., Jespersen, Coyle J. Evaluation of Fortran Vector Compilers and Preprocessors. Software - Practice and Experience, vol. 21(9), 1991 pp.891-905

Ina H., Kamiya S., Mikami J. Languages and Software Development Tools for supercomputers. // Computer Phisics Communications. 38, 1985, 211-219.

Задыхайло И.Б., Зеленецкий С.Д., Платонова Л.Н., Поддерюгина Н.В., Седова И.М., Эйсымонт Л.К. ФОРА - ЕС: Система программирования Фортран IV для многопроцессорного вычислительного комплекса ПС-3000. - Препринт ИПМ АН СССР, М., 1987, №17.

Платонова Л.Н., Горелик А.М., Задыхайло И.Б., Зеленецкий С.Д., Поддерюгина Н.В. Расширение языка Фортран для супер-ЭВМ. - Сб. Проблемы повышения эффективности использования ЭВМ большой производительности. //ВЦ АН СССР. М.:1989

TR 15580 ISO/IEC JTC1/WG5 №1372. Floating point exception handling.

TR 15581 ISO/IEC JTC1/WG5 №1374. Enhanced data type facilities.

Nagle D. Next Standard. ISO/IEC JTC1/WG5 №1460

Фортов В.Е., Савин Г.И., Левин В.К., Забродин А.В., Шабанов Б.М. Создание и применение системы высокопроизводительных вычислений на базе высокоскоростных сетевых технологий. //Информационные технологии и вычислительные системы. М.: 2002, №1.

Забродин А.В. Параллельные вычислительные технологии. Состояние и перспективы. - Препринт ИПМ РАН, М., 1999, №71.

Кузьминский М., Волков Д. Современные суперкомпьютеры: состояние и перспективы. // Открытые системы, 1995, №6.

Итоги науки и техники. Вычислительные науки, т.3. Черняев А.П. Системы программирования для высокопроизводительных ЭВМ. - ВИНИТИ, М., 1990

Задыхайло И.Б., Зеленецкий С.Д. Механизмы синхронизации в языкахпараллельного программирования. - Известия АН СССР, 1986, №5, 129-174.

Горелик А.М., Задыхайло И.Б. Расширения Фортрана для многопроцессорных систем с распределенной памятью. - М., Препринт ИПМ РАН, 1992, №55

Горелик А.М. Средства поддержки параллельности в языках программирования. //Открытые системы, 1995, №2

Zhiyu S., Zhiyuan L., Pen-Chung Y. An emperical study of Fortran programs for parallelizing compilers. // IEEE Trans. on Parallel and Distributed Systems, July 1990.

Воеводин В.В. Отображение проблем вычислительной математики на архитектуру вычислительных систем. // Вычислительные методы и программирование. Изд. МГУ, 2000, 105-112

Хоар Ч. Взаимодействующие последовательные процессы. М.: Мир 1989

Calkin R., Hempel R., Hoppe H.-C, Wypior P. Portable Programming with the PARMACS message passing library. //Parallel Computing, № 20, 1994.

Geist Al., Beguelin A., Dongarra J., Jiang W., Manchek R., Sunderam V. PVM: Parallel Virtual Machine - A Users' Guide and Tutorial for Networked //Parallel Computing, 1994

Document for a Message-Passing Interfaсe. Message Passing Interface Forum. May 5, 1994

Воеводин Вл.В. Технология параллельного программирования. Message Passing Interface. (htpp://parallel.srcc.msu.su/vvv/mpi.html).

MPI Forum. MPI-2: extensions to the Message-Passing Interface. 1998(htpp://www.mpi-forum.org/docs/mpi-20-html/mpi2-report.html).

Рычков В.Н., Красноперов И.В., Копысов С.П. Промежуточное программное обеспечение для высокопроизводительных вычислений. // Научный журнал. Вычислительные методы и программирование. Изд. МГУ , 2001, том 2, №2, 117-132.

Hennecke M. A Fortran interface to MPI version 1.1 (http://www.uni-karlsruhe.de/"Michael.Hennecke/)

Абрамова В.А., Вершубский В.Ю., Поздняков Л.А., Храмцов М.Ю., Шеина Н.П. Система программирования MPI-MVC. Технология подготовки прикладной программы в среде MS-DOS. - Препринт ИПМ РАН №36, М., 1999

Абрамова В.А., Вершубский В.Ю., Горелик А.М., Лапыгин А.Е., Поздняков Л.А., Титова Т.И., Фисун В.А., Храмцов М.Ю., Шеина Н.П. Система программирования GNS. Описание языка Фортран GNS. - Препринт ИПМ РАН N 59, М., 1997(English translation: Abramova V.A., Fisun V.A., Gorelik A.M., Khramtsov M.Yu., Pozdnyakov L.A., Sheina N.P., Titova T.I., Vershubskii V.Yu. GNS Programming System. Fortran GNS Language Description. //The preprint of the KIAM RAS, 1998, №28.

Абрамова В.А., Вершубский В.Ю., Горелик А.М., Лапыгин А.Е., Поздняков Л.А., Титова Т.И., Фисун В.А., Храмцов М.Ю.,Шеина Н.П. Система программирования GNS. Описание языка Си GNS. Препринт ИПМ РАН N 64, М., 1997(English translation: Abramova V.A., Fisun V.A., Gorelik A.M., Khramtsov M.Yu., Pozdnyakov L.A., Sheina N.P., Titova T.I., Vershubskii V.Yu. GNS Programming System. C GNS Language Description. //The preprint of the KIAM RAS, 1998, №27.

Абрамова В.А., Вершубский В.Ю., Поздняков Л.А., Храмцов М.Ю., Шеина Н.П. Система программирования GNS. Технология подготовки прикладной программы в среде UNIX для вычислительного комплекса МВС-1000. - Препринт ИПМ РАН №20, М., 2000

Thole C.-A. Proposal for a Fortran Syntax Specification for distributed memory architectures. Version 1.0, April 1990, SUPRENUM GmbH, Bonn, 1990.

Solchenbach K. Suprenum - Fortran an MIMD/SIMD language. // Supercomputer, vol.6, №2, 1989

Горелик А.М. Фортран для многопроцессорных систем с распределенной памятью. Расширения языка Фортран GNS. - Препринт ИПМ РАН №26, М., 1998

Камынин С.С., Любимский Э.З. Алгоритмический машинно- независимый язык АЛМО. // Алгоритмы и алгоритмические языки. Вып.1. М. ВЦ АНСССР, 1968

The Parallel Computung Forum presents. PCF Fortran, v.3.0, Apr.,1990

X3H5 Parallel Extensions for Fortran. Apr., 1993 Document Number X3H5/93-SD2-Revision A.

Open MP. Simple, Portable, Scalable SMP Programming. (htpp://www.openmp.org/)

Кузьминский М. OpenMP: средства распараллеливания для многопроцессорных систем. //Открытые системы, 1998, №3.

Hiranandani S., Kennedy K., Tseng C.-W. Fortran D for MIMD Distributed-Memory Machines. Comm. of the ACM, vol. 35, N 8 (August 1992), 66-80

Zima H., Brezany P., Chapman B., Mexrotra P., Schwald A.Vienna Fortran. A Language Specification. Version 1.1

High Performance Fortran Forum, Language Specification, v.1., 1993

ftp://softlib/rice.edu/pub/HPF/hpf-v20.ps.gz

Коновалов Н.А., Крюков Н.А., Михайлов С.Н., Погребцов А.А. Fortran DVM - язык для разработки мобильных параллельных программ // Программирование 1995, №1, 49-54

Крюков В.А., Р.В.Удовиченко Р.В., Отладка DVM-программ. //Программирование №12, 2001, 19-29

Система DVM. htpp://www.keldysh.ru/dvm

Numrich W., Reid J. Co-array Fortran for parallel programming. //ISO/IEC JTC1/SC22/WG5 №1317

Андрианов А.Н., Бугеря А.Б., Ефимкин К.Н., Задыхайло И.Б. Норма. Описание языка. Рабочий стандарт. - Препринт ИПМ РАН №120, 1995.

Задыхайло И.Б, Ефимкин К.Н. Содержательные обозначения и языки нового поколения. //Информационные технологии и вычислительные системы. 1996, №2, 46-58

Андрианов А.Н. Система Норма. Разработка, реализация и использование для решения задач математической физики на параллельных ЭВМ. - Дисс. на соискание ученой степени доктора физико-математических наук. М., 2001.

Фортов В.Е. Индустрия программного обеспечения - это шанс для России. // Известия, 2000, 22 ноября.

Фортов В.Е. Обустроить в России Силиконовую долину. // Известия, 2002, 15 марта.

Горелик А.М. О целесообразности изучения современного Фортрана в вузах. //Программирование, 1996, №3. (English translation in Programming and Computer Software, 1996, №6).

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

1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - Санкт-Петербург: БХВ-Петербург, 2002.

2. Горелик А.М. Объектно-ориентированное программирование на современном Фортране. - Препринт Института прикладной математики им. М.В.Келдыша РАН, 2002, №70.

3. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем. - Санкт-Петербург: БХВ-Петербург, 2002.

Б. Совокупность исследований, финансируемых РФФИ

В обзоре рассмотрены два основных комплекса проблем:

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

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

Б.1. В рамках решения первого круга проблем при финансовой поддержке РФФИ (проекты №97-01-00361 и №00-01-00043 ) проведены исследования действующих и разрабатываемых современных международных стандартов языка Фортран и сравнение их с более ранними, но еще используемыми в нашей стране версиями языка. На основе проведенного анализа разработаны некоторые предложения по усовершенствованию языковых средств при очередной ревизии Фортрана. Кроме того, разработаны рекомендации для прикладных специалистов по эффективному использованию новых средств современного Фортрана.

Наибольшее внимание уделено следующим проблемам.

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

Анализ средств поддержки объектно-ориентированного программирования.

Исследования, связанные с введением в язык средств периода компиляции.

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

Исследования, связанные с развитием средств языка, которые обеспечивают удобный интерфейс Фортран-программ с С-программами.

Анализ средств параллельности в стандарте.

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

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

Б2. В рамках решения второго круга проблем при финансовой поддержке РФФИ выполнены следующие исследования.

1. Развитие средств спецификации параллельности для распределенных систем.

В рамках проектов №96-01-00493 и №99-07-90443 разработаны и реализованы языки Фортран GNS и С GNS. Разработаны конкретные предложения по дальнейшему развитию Фортрана GNS на основе современных международных стандартов Фортрана (проект №97-01-00361). Система MPI адаптирована для отчественного многопроцессорного вычислительного комплекса МВС-100 и МВС 1000 (проект №99-01-00922). Результаты использованы для решения ряда задач математической физики.

2. Развитие средств спецификации параллельности, ориентированных на разбиение данных.

Этому направлению посвящены проекты №96-01-1745, № 99-01-00209 и №02-01-00752. Разработана и реализована для различных платформ система DVM, включающая Фортран DVM и С DVM. Система используется для решения задач математической физики.

3. Исследование средств спецификации параллельности для архитектуры с общей памятью. Такие исследования выполняются в проекте № 98-07-90290.

4. Непроцедурные языки для спецификации параллельности.

Этому направлению посвящены проекты №95-01-00575-а , №98-01-00987, №99-01-00842, №01-01-00411 и №02-01-01114. Разработан и реализован непроцедурный специализированный язык и система Норма. Система использована для решения (на ЭВМ различной параллельной архитектуры) ряда практических задач математической физики на статических структурных, неструктурных и адаптивных вложенных сетках.

5. Исследование методов решения задач автоматической генерации программ для современных компьютеров (проект №97-01-00977). Разработаны и апробированы различные варианты генерации параллельных программ по их последовательным аналогам, написанным на Фортране 77.

6. Организация всероссийского информационно-аналитического центра по параллельным вычислениям в сети Интернет .

Этому направлению посвящен проект №99-07-90230. Создан сайт www.parallel.ru, который широко используется, регулярно пополняется новой полезной информацией. В частности, сайт содержит информацию по средствам спецификации параллельности в Фортране.

В. Степень взаимного соответствия проблематики проектов РФФИ и проблем, указанных в разделах А и Б

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

В.1. По первому кругу проблем.

Современные международные стандарты, как уже отмечалось, являются результатом совместной деятельности экспертов многих стран. Специалисты нашей страны неоднократно участвовали в обсуждениях, голосованиях, посылали свои предложения, которые опубликованы в документах международной рабочей группы; многие предложения приняты во внимание; вклад отечественных специалистов неоднократно отмечался в официальных документах. Так, в итоговой резолюции встречи рабочей группы (ISO/IEC JTC1/SC22/WG5 №1412) предложения России, направленные по электронной почте, одобрены и отмечены благодарностью. В отчете 22-му подкомитету (ISO/IEC JTC1/SC22/WG5 №1221) координатор рабочей группы M. Ellis отметил Россию как страну, которая принимает активное участие в дискуссиях по электронной почте, хотя не имеет возможности участвовать во встречах.

Тем не менее, нельзя сказать, что наши предложения оказали существенное влияние на развитие данного направления. Хотя проекты РФФИ (указанные в Б.1.) выполнены с учетом деятельности международной рабочей группы, непосредственное участие в рабочей группе не поддерживается (отсутствует финансирование, в т.ч. для обеспечения специалистов необходимым оборудованием и для их непосредственного участия в ежегодных встречах).

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

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

В.2. По второму кругу проблем.

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

Для решения данного круга проблем, как и в предыдущем случае, целесообразна более тесная интеграция российских специалистов в международную деятельность. Это было бы полезно и для престижа страны, и для того чтобы в международных стандартах учитывались традиции, опыт отечественных специалистов и особенности задач, решаемых в нашей стране. Что касается прикладных задач вычислительного характера, решаемых на современных компьютерах, они должны быть написаны на стандартных языках с использованием современных технологий, которые обеспечивают эти стандарты. Это позволит создавать конкурентноспособный программный продукт (см. А, раздел 13).

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [1,7 M], добавлен 27.04.2013

  • Архитектуры вычислительных систем сосредоточенной обработки информации. Архитектуры многопроцессорных вычислительных систем. Классификация и разновидности компьютеров по сферам применения. Особенности функциональной организации персонального компьютера.

    контрольная работа [910,2 K], добавлен 11.11.2010

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

    презентация [1,2 M], добавлен 10.02.2014

  • Классификация параллельных вычислительных систем. Существенные понятия и компоненты параллельных компьютеров, их компоненты. Особенности классификаций Хендера, Хокни, Флинна, Шора. Системы с разделяемой и локальной памятью. Способы разделения памяти.

    курсовая работа [331,1 K], добавлен 18.07.2012

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

    отчет по практике [77,4 K], добавлен 18.10.2012

  • Классификации архитектур вычислительных систем. Организация компьютерных систем. Устройство центрального процессора. Принципы разработки современных компьютеров. Эволюция микропроцессорных систем. Увеличение числа и состава функциональных устройств.

    дипломная работа [1,4 M], добавлен 29.01.2009

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

    курсовая работа [162,2 K], добавлен 21.06.2013

  • Оценка современного этапа развития компьютерных технологий. История развития, классификации, сведения и уровни языков программирования. Обзор современных языков программирования: Си, его разовидности, Паскаль, Фортран, Бейсик - тенденция их развития.

    курсовая работа [46,5 K], добавлен 22.12.2010

  • Процедура сложения и вычитания матриц (с учетом коэффициента перед матрицами). Основные концепции языка Turbo Pascal. Фортран как один из пионеров программирования Дейкстрой. Первый компилятор Паскаля на платформах DEC. Основные стандарты языка.

    контрольная работа [21,6 K], добавлен 08.03.2011

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

    презентация [1,1 M], добавлен 22.02.2016

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

    курсовая работа [158,4 K], добавлен 21.06.2013

  • Основные приёмы и возможности алгоритмических языков программирования Fortran. Табуляция функции на языке Fortran, ее графический вид и блок-схема алгоритма. Выполнение расчетов на алгоритмическом языке Фортран. Текст (листинг) Fortran-программы.

    курсовая работа [31,9 K], добавлен 15.02.2011

  • Анализ средств визуализации. Разработка программы-расширения для визуализатора инженерных и научных расчетов Compaq Array Visualizer на языке Фортран. Оценка экономической эффективности и конкурентоспособности созданного программного обеспечения на рынке.

    дипломная работа [335,4 K], добавлен 10.09.2010

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

    курсовая работа [669,3 K], добавлен 07.09.2015

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

    презентация [175,6 K], добавлен 11.10.2014

  • Структура, специфика и архитектура многопроцессорных систем; классификация Флинна. Организация взаимного исключения для синхронизации доступа к разделяемым ресурсам. Запрещение прерываний; семафоры с драйверами устройств. Кластеры распределения нагрузки.

    курсовая работа [455,9 K], добавлен 07.06.2014

  • Особенности параллельного программирования высокопроизводительных многопроцессорных или многомашинных вычислительных комплексов. Основные положения и понятия стандартов MPI и OpenMP. Средства компиляции параллельных операторов для языков C и Fortran.

    лекция [177,9 K], добавлен 22.10.2014

  • Исследование основных отличий ассоциативных массивов от массивов скаляров. Разработка библиотеки классов. Выбор языка программирования. Сравнение языка C++ с Delphi, Java и JavaScript. Изучение методики тестирования и структуры тестового приложения.

    практическая работа [390,2 K], добавлен 06.01.2013

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

    презентация [1,3 M], добавлен 22.04.2014

  • Историческое развитие средств вычислений. Структурные схемы вычислительных систем. Развитие элементной базы и развитие архитектуры самих систем. Основные классы вычислительных машин. Каналы передачи данных. Требования к составу периферийных устройств.

    реферат [48,7 K], добавлен 09.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.