Современный фортран для компьютеров




старонка1/6
Дата канвертавання19.04.2016
Памер0.59 Mb.
  1   2   3   4   5   6



ИНСТИТУТ ПРИКЛАДНОЙ МАТЕМАТИКИ

им. М.В. КЕЛДЫША

РОССИЙСКОЙ АКАДЕМИИ НАУК

А.М.Горелик

СОВРЕМЕННЫЙ ФОРТРАН ДЛЯ КОМПЬЮТЕРОВ

ТРАДИЦИОННОЙ АРХИТЕКТУРЫ И ДЛЯ

ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

(аналитический обзор)

Москва

2003
Работа подготовлена в соответствии с методическими рекомендациями Российского фонда фундаментальных исследований и поддержана этим фондом (проект 02-01-07012).
А.М.Горелик

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


АННОТАЦИЯ

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


A.M.Gorelik



Modern Fortran for traditional and parallel architectures

The preprint of the Keldysh Institute of Applied Mathematics,


Russian Academy of Sciences

ABSTRACT

An overview of new features of modern FORTRAN standards and an outline of the future FORTRAN standard (FORTRAN 2000) are given. FORTRAN-based programming languages for parallel computers are discussed.

This paper was prepared in accordance with methodical recommendations of
Russian Foundation for Fundamental Investigations and was supported by this
Foundation (Project 02-01-07012).


СОДЕРЖАНИЕ
А. Анализ проблематики исследований 5

Предисловие 5


Часть I. Современный международный стандарт языка Фортран 6

1. Введение 6

2. Стандартизация языка 7

2.1. Цели стандартизации языка 7

2.2. Кто и как разрабатывает международные стандарты
языка Фортран 8

3. Обзор новых возможностей современного Фортрана 9

3.1. Структура стандарта. 9

3.2. Свободный формат исходной программы и имена. 10

3.3. Параметризованные типы данных, атрибуты и средства
контроля соответствия типов. 10

3.4. Типы и операции, определяемые пользователем.. 11

3.5. Операции над массивами, секциями массивов и
соответствующие присваивания. Операторы и
конструкции WHERE и FORALL. 13

3.6. Механизмы динамического размещения массивов. 15

3.7. Указатели .16

3.8. Модули .18

3.9. Поддержка объектно-ориентированного
программирования 19

3.10. Новшества для процедур. 19

3.11. Средства поддержки параллельности. 20

3.12. Поддержка структурного программирования. 21

3.13. Концепция эволюционного развития языка. 22

4. Перспективы развития языка 23


ЧАСТЬ II. Языки для параллельного программирования,


основанные на Фортране 23

5. Введение. Подходы к реализации параллельности 23

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

6.1. Общие сведения. 26

6.2. Система MPI 27

6.3. Система GNS 28

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

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

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

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

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

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

8.2. Язык HPF 34

8.3. Система DVM 36

9. Co-array Fortran 37

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

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

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

13. Заключение 40

Литература 41


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

В. Степень взаимного соответствия проблематики проектов


РФФИ и проблем, указанных в разделах А и Б. 48
А. Анализ проблематики исследований

Предисловие

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

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

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

Бытующее мнение о том, что Фортран устарел – ошибочно. Конечно, в связи с широким внедрением персональных ЭВМ во многие сферы человеческой деятельности, удельный вес Фортрана в общем объеме программного обеспечения снизился. Однако при решении больших вычислительных задач предпочтение отдается современному Фортрану.

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

Предлагаемый обзор посвящен анализу современного состояния и перспективам развития языка Фортран.

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

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

Современный международный стандарт языка Фортран
1. Введение

Действующий международный стандарт Фортрана был принят в 1997 году; неформальное название его – Фортран 95 [1]. Язык является относительно небольшим расширением предыдущего стандарта - Фортран 90 [2, 3], который был утвержден в 1991 году и пока не потерял своей актуальности.

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

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

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

Помимо официального описания стандарта языка [1, 2], выпущены десятки книг на разных языках (по моим сведениям на 11), которые содержат неформальное описание языков Фортран 90 и Фортран 95. Во многих университетах мира читаются лекции, организованы разнообразные курсы по изучению современного Фортрана. На русском языке книг, содержащих описание стандарта языка Фортран 95, пока нет. Для Фортрана 90 выпущен перевод официального описания стандарта [4] и книги [5, 6] c неформальным описанием этого стандарта. О реализациях современных стандартов будем говорить позже (см. 12).

Исследования, связанные с новыми возможностями современных стандартов Фортрана, проводятся как за рубежом, так и в нашей стране (проекты РФФИ
№ 97-01-0361 и 00-01-00043 [7-13]).
2. Стандартизация языка

2.1. Цели стандартизации языка

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

Язык подвергался стандартизации в рамках ANSI и ISO четыре раза (Фортран 66, Фортран 77, Фортран 90, Фортран 95). В настоящее время на международном уровне ведется работа по дальнейшему развитию языка: разрабатывается проект языка Фортран 2000 (завершение планируется в 2004г.), который предусматривает весьма существенные нововведения.

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

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

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

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

Международные стандарты языка являются результатом совместной деятельности экспертов многих стран. Ответственным за стандартизацию языков программирования на международном уровне является подкомитет 22 (SC22), входящий в состав Объединенного технического комитета (JTC1) Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC).

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

Стандартизацией языка Фортран занимаются Американский технический комитет J3 ANSI и эксперты рабочей группы WG5 (указанного подкомитета). Членами WG5 являются специалисты многих стран, в т.ч. и нашей страны. В их числе представители компьютерных фирм, крупных университетов. Многие из тех, кто ответствен за разработку коммерческих Фортран-компиляторов, являются членами J3 и/или WG5.

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

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


3. Обзор новых возможностей современного Фортрана

3.1. Структура стандарта

Современные стандарты Фортрана представляют собой семейство стандартов, состоящее из нескольких частей. Действующий стандарт Фортран 95 состоит из трех частей. Первая часть - основной (базовый) язык [1]. Остальные части являются дополнительными. При этом не требуется, чтобы компилятор, соответствующий стандарту, обязательно реализовывал дополнительные части. Вторая часть стандарта [14] содержит описание средств для работы с символьными строками переменной длины. Третья часть Фортрана 95 [15] определяет описание языка условной компиляции.

Ниже приводится краткий обзор новых по сравнению с Фортраном 77 средств базового языка. Там, где специально не оговорено, эти новшества имеются и в Фортране 90, и в Фортране 95.

3.2. Свободный формат исходной программы и имена

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

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

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

Примеры

REAL, DIMENSION (3), PARAMETER :: VECTOR = ( / 1., 2., 3. /)



REAL, SAVE :: XY (10, 10)

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

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

  1   2   3   4   5   6


База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка