Проектирование коммуникаций и вычислений

Содержание

Слайд 2

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

Цель лекции:

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

их, а также планированием вычислений.
Слайд 3

Содержание лекции: проектирование коммуникаций и вычислений, основные типы коммуникаций и способы их организации

Содержание лекции:

проектирование коммуникаций и вычислений, основные типы коммуникаций и способы их

организации
Слайд 4

Коммуникации делятся на следующие типы: локальные коммуникации, когда каждая подзадача связана

Коммуникации делятся на следующие типы:

локальные коммуникации, когда каждая подзадача связана

с небольшим набором других подзадач;
глобальные коммуникации, когда каждая подзадача связана с большим числом других подзадач
Слайд 5

Коммуникации делятся на следующие типы: структурированные коммуникации, когда каждая подзадача и

Коммуникации делятся на следующие типы:

структурированные коммуникации, когда каждая подзадача и

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

Коммуникации делятся на следующие типы: статические коммуникации, когда схема коммуникаций не

Коммуникации делятся на следующие типы:

статические коммуникации, когда схема коммуникаций не меняется

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

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

Коммуникации делятся на следующие типы:

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

координируют обмен;
асинхронные коммуникации, когда обмен данными не координируется.
Слайд 8

Обмен сообщениями может быть реализован по-разному: с помощью потоков; с помощью

Обмен сообщениями может быть реализован по-разному:

с помощью потоков;
с помощью межпроцессорных

коммуникаций (IPC- Inter-Process Communication);
TCP-сокетов и других.
Слайд 9

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

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

(Parallel Virtual Machine) и MPI (Message Passing Interface), реализующих обмен сообщениями.
Слайд 10

Существуют другие способы организации коммуникаций: RPC (Remote Procedure Control); CORBA (Common

Существуют другие способы организации коммуникаций:

RPC (Remote Procedure Control);
CORBA (Common Object

Request Broker Architecture);
DCOM (Distributed Component Object Model).
Слайд 11

Способ RPC позволяет одному процессу вызывать процедуру из другого процесса, передавать

Способ RPC позволяет одному процессу вызывать процедуру из другого процесса, передавать

ей параметры; если будет необходимость, то получать результаты выполнения
Слайд 12

Способ CORBA определяет протокол взаимодействия между процессами, независимый от языка программирования

Способ CORBA определяет протокол взаимодействия между процессами, независимый от языка
программирования и

операционной системы. Для описания интерфейсов используется известный язык IDL (Interface Definition Language).
Слайд 13

Укрупнение : После декомпозиции и проектирования коммуникаций будет получен алгоритм, который

Укрупнение :

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

ориентирован на конкретную архитектуру вычислительной системы.
Слайд 14

Существуют другие способы организации коммуникаций: RPC (Remote Procedure Control); CORBA (Common

Существуют другие способы организации коммуникаций:

RPC (Remote Procedure Control);
CORBA (Common Object

Request Broker Architecture);
DCOM (Distributed Component Object Model).
Слайд 15

Основными требованиями к укрупнению подзадач являются следующие: снижение затрат на коммуникацию;

Основными требованиями к укрупнению подзадач являются следующие:

снижение затрат на коммуникацию;
при

укрупнении возможно дублирование вычисления или данные, но это не должно к потере производительности и масштабируемости программы;
Слайд 16

Основными требованиями к укрупнению подзадач являются следующие: трудоемкость результирующих задач должны

Основными требованиями к укрупнению подзадач являются следующие:

трудоемкость результирующих задач должны быть

примерно одинаковой;
должна сохраниться масштабируемость;
Слайд 17

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

Основными требованиями к укрупнению подзадач являются следующие:

должна сохраниться возможность параллельного выполнения;

стоимость и трудоемкость разработки должны снижаться.
Слайд 18

Планирование вычислений. Здесь должны быть определены процессоры, на которых будут обрабатываться

Планирование вычислений.

Здесь должны быть определены процессоры, на которых будут обрабатываться

подзадачи.
Основным критерием эффективности в этой разработке является минимум времени выполнения программы.
Слайд 19

Планирование вычислений. Ставится условие сбалансированной работы процессоров. Для этого существуют различные

Планирование вычислений.

Ставится условие сбалансированной работы процессоров. Для этого существуют различные

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

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

Планирование вычислений.

Все эти методы предназначены для укрупнения мелкозернистых задач, чтобы

в результате на один процессор приходилась одна крупноблочная задача.
Слайд 21

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

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

средства анализа и выявления параллелизма;
трансляторы;
операционные системы;.

Слайд 22

Программные средства высокопроизводительных вычислений. средства отладки; средства оценки производительности программы и ее отдельных частей.

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

средства отладки;
средства оценки производительности программы и

ее отдельных частей.