Рекомендации по созданию переносимого прикладного программного обеспечения в вычислительной среде супер-ЭВМ

3. Рекомендации

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

3.1. Рекомендации общего характера

Из модели суперкомпьютерной вычислительной среды, описанной в профиле POSIX 1003.10, следует, что разработчики переносимых ПП не должны учитывать особенности архитектуры супер-ЭВМ, в том числе и возможность проведения параллельных вычислений. На этапе разработки ПП должны быть учтены требования, содержащиеся в стандартах группы POSIX. Такие ПП будут функционировать на супер-ЭВМ всех 4-х, перечисленных в п.2.2, типов. Нижеследующие рекомендации призваны облегчить процесс создания переносимых ПП.

3.1.1 Модульное построение прикладной программы

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

По функциональному признаку модули можно разделить на две группы (рис.2):

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

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

  • модули, осуществляющие взаимодействие с ядром операционной системы;
  • модули, использующие коммуникационные сервисы операционной системы;
  • модули, выполняющие информационные функции (через соответствующие процедуры API);
  • модули, организующие диалоговый режим с пользователем на основе интерфейса "человек/компьютер".

Рис.2. Модульная структура прикладной программы.

 

Рис. 3. Структура модулей взаимодействия с внешней средой.

 

3.1.2. Языки программирования, пригодные для написания переносимых прикладных программ. Стандарты POSIX

Использование машинно-зависимых языков (например, ассемблера) в написании ПП снижает его мобильность. Чем выше уровень языка программирования, тем проще осуществлять перенос прикладной программы. Ряд языков получил отражение в стандартах POSIX. Среди них ФОРТРАН, АДА, Си. Использование этих языков программирования при создании ПП значительно повышает его мобильность.

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

Таблица 2. Международно стандартизованные языки

Language

POSIX

SQL
9075

SQL
(1p)

GKS
7942

GKS-3D
DIS8805

PHIGS
DIS9592

CGI
DP 9636-1 to 3
DP 9637-1 to 3

Ada 8652

P1003.5

 

(1p)

DIS8651-3

DIS8806-3

DIS9593-3

DP 9636-1
DP 9636-1

Basic 6373

 

 

 

 

 

 

 

C DP9899

P1003.5

 

(1p)

DIS8651-4

DIS8806-4

DIS9593-4

DP 9636-1
DP 9636-1

COBOL

 

9075

(1p)

 

 

 

 

Fortran 1359

P1003.5

9075

(1p)

DIS8651-1

DIS8806-1

DIS9593-1

DP 9636-1
DP 9636-1

Pascal 7815

 

 

(1p)

DIS8651-2

DIS8806-2

DIS9593-2

DP 9636-1
DP 9636-1

PL/f 6160

 

 

(1p)

 

 

 

 

3.2. Переносимые параллельные прикладные программы

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

 

Предыдущая глава

   ОГЛАВЛЕНИЕ   

Следующая глава