- •Зачем применяються суперкомпьютеры
- •Параллельная обработка данных на эвм
- •Классификация параллельных компьютеров и систем
- •Векторно-конвейерные компьютеры
- •Функциональные устройства
- •Секция управления процессора
- •Паралельные компьютеры с общей памятью
- •Вычислительные системы с распределенной памятью
- •Кластерные проекты
- •Система функциональных устройств. Закон амдала.
- •Как повышают производительность компьютеров
- •Усложнение и наращивание аппаратных средств
- •Параллельная обработка
- •Конвейерная обработка
- •Повышение интеллектуальности управления компьютера
- •Технологии параллельного программирования
- •Использование традиционных последовательных языков
- •Технология программирования ОреnМр.
- •Система программирования dvm.
- •Система программирования на mPc.
- •Система программирования на основе передачи сообщения
- •Система программирования mpi
- •Общие функции mpi.
- •Общие функции mpi
- •Прием/передача сообщения между отдельными процессами.
- •Прием/передача сообщения без блокировки.
- •Объединение запросов на взаимодействия.
- •Совмещенные прием и передача сообщений.
- •Коллективные взаимодействия процессов.
- •Синхронизация процессов
- •Работа с группами процессов
Система программирования dvm.
DVM система состоит из пяти основных компонентов: компиляторы с языков Fortran DVM, C DVM, система поддержки выполнения параллельных программ, отладчик параллельных программ, анализатор производительности, предсказатель производительности.
При проектировании ЭУМ-системы авторы опирались на следующие принципы:
-
Система должна базироваться на высокоуровневой модели выполнения параллельной программы, удобной и понятной для программиста, привыкшего программировать на последовательных языках.
-
Спецификации параллелизма должны быть прозрачными для обычных компиляторов.
-
Программа на языках Fortran и C, помимо описания алгоритма средствами традиционных языков Fortran или С, содержит спецификации параллелизма — правила параллельного выполнения этого алгоритма. Эти спецификации( директивы) должны быть невидимыми для стандартных компиляторов.
-
Языки параллельного программирования должны быть представлены языками последовательного программирования с расширенной спецификацией. Эти языки должны предлагать программисту модель выполнения.
-
Основная реализация модели выполнения параллельной программы должна осуществляться динамическими системами поддерживания DVM-программы.
Следствие последующих пунктов является то, что программа может иметь один вариант программы для выполнения как на последовательных так и на параллельных компьютерах с различной конфигурацией, так и на неоднородных сетях ЭВМ. Это значительно облегчает отладку дальнейшей работы программы.
Система программирования на mPc.
Язык mPC является, по-видимому, первым языком высокого уровня, разработанным специально для программирования неоднородных сетей. Он позволяет программисту определить все основные свойства параллельного алгоритма, влияющие на скорость его выполнения в неоднородной вычислительной среде. Необходимое число параллельных процессов, объем вычислений и передаваемых данных в рамках каждого процесса, сценарий взаимодействия процессов и многие другие характеристики доступны программисту для создания эффективных программ.
mPC позволяет менять эти характеристики динамически во время выполнения программы. При этом информация, извлеченная из описания параллельного алгоритма, вместе с данными о реальной производительности процессоров и коммуникационных каналов, помогает системе программирования mPC найти эффективный способ отображения процессов mPC -программы на компьютеры сети. Основные программы на mPC:
Язык программирования mPC является строгим расширением языка С, ориентированным на параллельные вычисления на неоднородных сетях.
mPC -программа — это множество параллельных процессов, взаимодействующих посредством неявной передачи сообщений.
Используя язык mPC, программист явно нигде не указывает, сколько процессов составляют программу и на каких компьютерах эти процессы выполняются. Это делается уже пользователем программы в момент ее запуска внешними по отношению к языку средствами.
Исходный код на mPC управляет лишь тем, какие именно вычисления выполняются каждым из процессов программы. Группе процессов, совместно выполняющих некоторый параллельный алгоритм, в языке mPC соответствует понятие сети.
Сеть в mPC — это механизм, позволяющий программисту абстрагироваться от реальных физических процессов параллельной программы. В простейшем случае сетью является множество виртуальных процессоров.
Определение сети в программе вызывает создание группы реальных процессов, представляющей эту сеть: каждому виртуальному процессору соответствует отдельный процесс параллельной программы. Заметим, что в разные моменты времени выполнения параллельной программы один и тот же реальный параллельный процесс может представлять различные виртуальные процессоры различных сетей.
Определив один раз сеть, программист вызывает отображение ее виртуальных процессоров на реальные процессы параллельной программы, и это отображение сохраняется на все время жизни сети.