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

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

программ

Судаков А.А.

“Параллельные и распределенные вычисления” Лекция 19

План

Языки программирования

Средства отладки и профилирования

Оптимизация программ

Математические библиотеки

Стандартный интерфейс операционных систем

Стандарт POSIX

Литература

Язык неявным параллелизмом Sisal http://www2.cmp.uea.ac.uk/~jrwg/Sisal/

Язык с поддержкой параллелизма erlang http://www.erlang.org/

Язык с неявной поддержкой параллелизма pH http://www.csg.lcs.mit.edu/projects/languages/ph.sh tml

Автораспараллеливающие компиляторы http://www.pgroup.com/

Adaptor http://www.scai.fraunhofer.de/EP-CACHE/adaptor/ www/adaptor_home.html

Язык программирования E http://www.erights.org/

Средства разработки

Языки программирования

Препроцессор

Компилятор или транслятор

Библиотеки (API)

Интерфейс (API) операционных систем

Средства отладки программ

Отладчик

Средства проверки правильности кода

Средства повышения производительности

Оптимизация исполняемого кода

Профилирование

Поддержка параллелизма в языках программирования

Языки программирования

Без поддержки параллелизма

Язык программирования не включает средства создания параллельных программ

С явной поддержкой параллелизма

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

С неявной поддержкой параллелизма

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

Компиляторы с автораспараллеливанием

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

Языки без поддержки параллелизма

С, C++, Fortran, Pascal

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

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

socket

Pthread

OpenMP

MPI

PVM

Большинство параллельных программ разрабатывается таким образом

Языки с явной поддержкой параллелизма

Расширения к «классическим» языкам программирования

К языку программирования (Fortran, Pascal, C, C++) добавляется дополнительный набор инструкций для явного указания участков, которые выполняются параллельно

mpC (multiprocessing C)

HPC (High Performance Fortran)

OpenMP

Языки с внутренней поддержкой параллельных конструкций

Java

erlang

Языки с неявной поддержкой параллелизма

Язык не имеет специальных конструкций для указания участков параллельного выполнения

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

Транслятор или компилятор сам выполняет распараллеливание кода

Sisal

pH

Компиляторы с автораспараллеливанием

На основе последовательной программы на языке без поддержки параллелизма создает параллельный код

Portland group – автораспараллеливание (С, С++, Fortran)

Absoft – препроцессор Fortran для вставки библиотечный вызовов с обменом сообщениями

Adaptor – препроцессор для автораспараллеливания

Языки для создания распределнных программ

Без поддержки распределенного программирования

Через библиотечные вызовы

С явной поддержкой распределнности

Специальные конструкции для работы с удаленными объектами

E

SR

CORBA IDL

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