Слайд 2Цель лекции:
с типами коммуникаций, используемых в параллельном программировании, рекомендациями по проектированию их,
![Цель лекции: с типами коммуникаций, используемых в параллельном программировании, рекомендациями по проектированию](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-1.jpg)
а также планированием вычислений.
Слайд 3Содержание лекции:
проектирование коммуникаций и вычислений, основные типы коммуникаций и способы их организации
![Содержание лекции: проектирование коммуникаций и вычислений, основные типы коммуникаций и способы их организации](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-2.jpg)
Слайд 4Коммуникации делятся на следующие типы:
локальные коммуникации, когда каждая подзадача связана с
![Коммуникации делятся на следующие типы: локальные коммуникации, когда каждая подзадача связана с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-3.jpg)
небольшим набором других подзадач;
глобальные коммуникации, когда каждая подзадача связана с большим числом других подзадач
Слайд 5Коммуникации делятся на следующие типы:
структурированные коммуникации, когда каждая подзадача и связанные
![Коммуникации делятся на следующие типы: структурированные коммуникации, когда каждая подзадача и связанные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-4.jpg)
с ней другие подзадачи образуют регулярную структуру;
неструктурированные коммуникации, когда подзадачи связаны произвольным графом;
Слайд 6Коммуникации делятся на следующие типы:
статические коммуникации, когда схема коммуникаций не меняется с
![Коммуникации делятся на следующие типы: статические коммуникации, когда схема коммуникаций не меняется](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-5.jpg)
течением времени;
динамические коммуникации, когда схема коммуникаций изменяется в процессе выполнения программы;
Слайд 7Коммуникации делятся на следующие типы:
синхронные коммуникации, когда отправитель и получатель данных координируют
![Коммуникации делятся на следующие типы: синхронные коммуникации, когда отправитель и получатель данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-6.jpg)
обмен;
асинхронные коммуникации, когда обмен данными не координируется.
Слайд 8Обмен сообщениями может быть реализован по-разному:
с помощью потоков;
с помощью межпроцессорных коммуникаций
![Обмен сообщениями может быть реализован по-разному: с помощью потоков; с помощью межпроцессорных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-7.jpg)
(IPC- Inter-Process Communication);
TCP-сокетов и других.
Слайд 9Один из самых распространенных способов программирования коммуникаций является использование библиотек PVM (Parallel
![Один из самых распространенных способов программирования коммуникаций является использование библиотек PVM (Parallel](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-8.jpg)
Virtual Machine) и MPI (Message Passing Interface), реализующих обмен сообщениями.
Слайд 10Существуют другие способы организации коммуникаций:
RPC (Remote Procedure Control);
CORBA (Common Object Request
![Существуют другие способы организации коммуникаций: RPC (Remote Procedure Control); CORBA (Common Object](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-9.jpg)
Broker Architecture);
DCOM (Distributed Component Object Model).
Слайд 11Способ RPC позволяет одному процессу вызывать процедуру из другого процесса, передавать ей
![Способ RPC позволяет одному процессу вызывать процедуру из другого процесса, передавать ей](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-10.jpg)
параметры; если будет необходимость, то получать результаты выполнения
Слайд 12Способ CORBA определяет протокол взаимодействия между процессами, независимый от языка
программирования и операционной
![Способ CORBA определяет протокол взаимодействия между процессами, независимый от языка программирования и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-11.jpg)
системы. Для описания интерфейсов используется известный язык IDL (Interface Definition Language).
Слайд 13Укрупнение :
После декомпозиции и проектирования коммуникаций будет получен алгоритм, который не ориентирован
![Укрупнение : После декомпозиции и проектирования коммуникаций будет получен алгоритм, который не](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-12.jpg)
на конкретную архитектуру вычислительной системы.
Слайд 14Существуют другие способы организации коммуникаций:
RPC (Remote Procedure Control);
CORBA (Common Object Request
![Существуют другие способы организации коммуникаций: RPC (Remote Procedure Control); CORBA (Common Object](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-13.jpg)
Broker Architecture);
DCOM (Distributed Component Object Model).
Слайд 15Основными требованиями к укрупнению подзадач являются следующие:
снижение затрат на коммуникацию;
при укрупнении
![Основными требованиями к укрупнению подзадач являются следующие: снижение затрат на коммуникацию; при](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-14.jpg)
возможно дублирование вычисления или данные, но это не должно к потере производительности и масштабируемости программы;
Слайд 16Основными требованиями к укрупнению подзадач являются следующие:
трудоемкость результирующих задач должны быть примерно
![Основными требованиями к укрупнению подзадач являются следующие: трудоемкость результирующих задач должны быть](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-15.jpg)
одинаковой;
должна сохраниться масштабируемость;
Слайд 17Основными требованиями к укрупнению подзадач являются следующие:
должна сохраниться возможность параллельного выполнения;
стоимость
![Основными требованиями к укрупнению подзадач являются следующие: должна сохраниться возможность параллельного выполнения;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-16.jpg)
и трудоемкость разработки должны снижаться.
Слайд 18Планирование вычислений.
Здесь должны быть определены процессоры, на которых будут обрабатываться подзадачи.
![Планирование вычислений. Здесь должны быть определены процессоры, на которых будут обрабатываться подзадачи.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-17.jpg)
Основным критерием эффективности в этой разработке является минимум времени выполнения программы.
Слайд 19Планирование вычислений.
Ставится условие сбалансированной работы процессоров. Для этого существуют различные алгоритмы,
![Планирование вычислений. Ставится условие сбалансированной работы процессоров. Для этого существуют различные алгоритмы,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-18.jpg)
применяемые в методах декомпозиции данных.
Слайд 20Планирование вычислений.
Все эти методы предназначены для укрупнения мелкозернистых задач, чтобы в
![Планирование вычислений. Все эти методы предназначены для укрупнения мелкозернистых задач, чтобы в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-19.jpg)
результате на один процессор приходилась одна крупноблочная задача.
Слайд 21Программные средства высокопроизводительных вычислений.
средства анализа и выявления параллелизма;
трансляторы;
операционные системы;.
![Программные средства высокопроизводительных вычислений. средства анализа и выявления параллелизма; трансляторы; операционные системы;.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-20.jpg)
Слайд 22Программные средства высокопроизводительных вычислений.
средства отладки;
средства оценки производительности программы и ее
![Программные средства высокопроизводительных вычислений. средства отладки; средства оценки производительности программы и ее отдельных частей.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1082530/slide-21.jpg)
отдельных частей.