Параллельное программирование: Учебное пособие, страница 71

2.  Что представляет собой процессорный объект и в каком отношении он находиться с процессорами многомашинной вычислительной среды?

3.  Для каких целей в расширенный С++ введен глобальный указатель и что он связывает друг с другом в распараллеленной задаче?

4.  Чем отличается процесс от процессорного объекта и какими операторами процессы определяются в вычислительной среде?

5.  Какие проблемы параллельного программирования потребовали определить в С++ синхронизирующую переменную и неделимую функцию?

6.  Чем отличается глобальный указатель СС++ от обыкновенного указателя С++?

7.  Что за объект определяется ключевым словом global, поставленным перед идентификатором описываемого класса?

8.  Каким образом с помощью операции new можно создать новый процессорный объект?

9.  Что определяют инфиксные операторы operator<<(...) и operator>>(...)?


4  Программирование в пакете MPI

Интерфейс передачи сообщений, сокращенно обозначаемый в литературе аббревиатурой MPI (Message Passing Interface), разработан специально для программирования громоздких задач, для которых требуются неординарные вычислительные ресурсы. Решение таких задач за разумное время вынуждает использовать большое количество одновременно работающих процессоров, включенных в единую сеть и образующих так называемый кластер. Принципиальное отличие кластера из вычислительных машин от одновременно работающих в сети абонентских машин, состоит в том, что в кластере предполагается глубокое взаимодействие (на протяжении всего решения) между отдельными фрагментами решаемой задачи, которые расположены на разных машинах. Для таких вычислений система программирования должна предоставлять программисту языковые средства, семантика которых обеспечивает организацию сетевого обмена разделяемыми данными, например, с помощью хорошо отработанных библиотечных функций. В предыдущих разделах было показано, что выгода от распараллеливания задачи может быть достигнута тогда, когда время, затрачиваемое на обмен данными, окажется на порядок меньше времени счета. Современные средства сетевого обмена данными в локальных сетях работают во много раз быстрее, чем сети обмена через последовательные порты по протоколу TCP/IP. Наиболее быстрым сетевым интерфейсом для параллельных вычислительных систем является когерентный масштабируемый интерфейс CSI (Coherent Scalable Interface), который поддерживает и протокол TCP/IP.

4.1  Общая организация и структура MPI

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

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