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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Реализация указанных предложений позволила бы написанные на языке 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.