Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lecture10.ppt
Скачиваний:
1
Добавлен:
11.06.2024
Размер:
198.66 Кб
Скачать

Средства разработки параллельных программ

Декларативные языки

Основные средства разработки параллельных программ

1. Расширения стандартных языков программирования (Фортран, Си)

1.1.Стандартные языки программирования (Фортран, Си) с использованием коммуникационных библиотек. (Пример - MPI)

1.2.Стандартные языки программирования (Фортран, Си) с использованием языковых расширений для параллелизма. (Пример – OpenMP).

(Пример – UPC, Unified Parallel C). Модель DSM (Distributed Shared Memory, Распределенная общая память).

Нить-1

Нить-n

Общее

адресное

пространство

1.3. Стандартные языки программирования (Фортран, Си) с использованием параллельных специализированных библиотек. (Пример – PLAPACK, параллельные процедуры линейной алгебры, в том числе решение систем линейных уравнений с помощью LU и QR-разложений, разложения Холецкого )

3.Специальные (новые) языки параллельного программирования.

(Примеры – Sisal, ZPL, Chapel, … ). Декларативные языки

4.Средства распараллеливания последовательных программ (распараллеливающие компиляторы, системы автоматизации распараллеливания – ParaWise, V-Ray)

5.Специализированные пакеты прикладных программ

(ANSYS, CFX, STAR-CD, FLOW-3D, MCNP).

MCNP (Monte Carlo N-Particle Transport Code) (Лос-Аламос, США) - моделирование протекания процессов ядерного распада, а также других взаимодействий с участием нейтронов, фотонов и электронов.

Методы Монте-Карло.

Декларативный язык Норма

Декларативный (непроцедурный) язык программирования –

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

Фортран, Си – процедурные (императивные) языки.

Историческая справка

1. 1963. Статья И.Б. Задыхайло “Организация циклического процесса счета по параметрической записи специального вида” // Журнал

вычислительной математики и математической физики. 1963. Т. 3. N 2.

1

 

f 1

1

2

 

 

n

 

X i

 

( X i 1,1 , X i 1, 2

,..., X i 1,n )

 

2

 

f 2

1

2

 

 

n

 

X i

 

( X i 2 ,1

, X i 2 , 2

,...,

X i 2 ,n

)

n

 

...

1

2

 

 

n

 

 

f n

 

 

 

X i

 

( X i n ,1

, X i n , 2

,...,

X i n,n

)

 

 

 

 

 

 

p

p 1,..., n

Организовать процесс вычисления

 

X i ,

для индексов i =

m0 ( p) mN ( p),

 

 

p 1,..., n, m0 ( p) заданы.

2.1985. Язык Норма. Препринт ИПМ АН СССР.

3.1990. Статья “Непроцедурный язык Норма и методы его реализации”.

Компилятор для ЕС ЭВМ в последовательный Фортран -77. Расчет обтекания трехосного эллипсоида вязкой жидкостью.

4.1998. Компиляторы для параллельных систем с распределенной и общей памятью (Фортран GNS, Фортран PVM, Фортран MPI, Фортран Convex).

5.1998-2008. Программирование реальных приложений из области математической физики.

Компиляторы в Фортран DVM, Си MPI.

Интегрированная среда языка Норма, диалоговый отладчик.

6. 2009. Компилятор с языка Норма+ (разработка).

http://www.keldysh.ru/pages/norma/

Типичный процесс разработки программы для решения задачи математической физики

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

2.Выбирается пространственно-временная сетка и производится дискретизация уравнений с помощью одного из разностных методов.

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

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

Цель создания языка Норма – упростить (исключить) этап 4.

Свойства языка Норма. Ограничения.

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

2.Однократное присваивание. Single Assignment Language (класс SAL-языков). Нет глобальных переменных и побочных эффектов.

3.Ограничение на вид индексных выражений. K + .

4.Области (массивы) имеют границы, заданные константами.

Декларативность --> синтез выходной программы.

Теорема. Задача синтеза выходной программы для языка Норма разрешима

Пример класса задач, статические структурные сетки

Типичное соотношение:

X(I) = … Y(I+ )...,

 

I - индекс-вектор, - вектор констант

X(I2)

X(I2+ )

X(I1)

X(I1+ )

Ключевые понятия языка Норма:

область, величина, соотношение .

Области используются для задания точек индексного пространства. Область - это совокупность координат точек n-мерного индексного пространства.

Ниже описаны одномерные области с именами oi, oj, om:

oi: ( i =1..Nx). oj:( j =MyJ..Ny+1). om:( m =1..4).

С каждым направлением (осью координат) n-мерного пространства задачи

связывается уникальное имя - имя индекса (имя оси координат индексного

пространства).

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

имя одномерной области, имя индекса и границы изменения значений индекса.

Соседние файлы в папке Лекции