ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Коммуникационные библиотеки При использовании парадигмы «параллелизм задач» очень часто программа пишется на одном из традиционных языков программирования. В зависимости от используемой модели, информационный обмен между ветвями параллельной программы осуществляется путем вызова той или иной подпрограммы. Набор объединенных подпрограмм, реализующих информационный обмен, будет представлять собой коммуникационную библиотеку. При этом разные библиотеки могут быть ориентированы на разные модели параллельного программирования. Большинство производителей параллельных ВС или коммуникационных сред для них снабжают разрабатываемую ими систему своей низкоуровневой библиотекой информационного обмена. Примерами могут служить библиотеки NX (Intel Paragon и ASCI Red), GM (Myrinet), ОС Router (МВС-100x). Поскольку основная задача низкоуровневых библиотек - достижение максимального быстродействия, они, как правило, реализуют модель Хоара. Существенным недостатком низкоуровневых библиотек, помимо трудностей программирования, является отсутствие единого стандарта на синтаксис и семантику используемых функций и подпрограмм. Для обеспечения совместимости между параллельными ЭВМ различной архитектуры было разработано несколько стандартов, следование которым обеспечивает мобильность разрабатываемых параллельных программ. К числу наиболее распространенных следует отнести стандарты PVM, MPI. В настоящее время существует множество различных реализаций указанных стандартов, многие из которых поставляются производителями параллельных ЭВМ. Стандарты PVM и MPI соответствуют теговой модели «обмен сообщениями». Особенностью стандартов PVM и MPI является их функциональная мощность по сравнению с библиотеками примитивов информационного обмена. Фактически эти стандарты представляют собой универсальные инструменты для создания сложных параллельных приложений. PVM (Parallel Virtual Machine, «параллельная виртуальная машина») представляет собой программное средство для объединения набора неоднородных вычислительных средств в единое целое. Для использующего PVM программиста такой набор средств представляется как единая виртуальная параллельная машина. Программист ничего не должен знать ни об архитектуре физических ЭВМ (количество процессоров, быстродействие, разрядность данных, состав периферийных устройств), ни об их соединении (тип и пропускная способность каналов связи, топология сети и т.д.). Общим для объединяемых с помощью PVM вычислительных систем является операционная система Unix с поддержкой протоколов TCP/IP. В рамках PVM стандартизуется не только интерфейс программиста (набор и смысл доступных для вызова из программы функций), но и интерфейс пользователя, включающий команды управления параллельной виртуальной машиной. Командами управления можно менять состав виртуальной машины, подключать и отключать узлы. Можно программно запускать из одних выполняющихся в рамках виртуальной машины процессов другие, автоматически включающиеся в виртуальную машину, и использовать их в качестве ветвей параллельной программы. Процесс может отключиться от виртуальной машины и продолжить работу как обычный процесс пользователя в рамках ОС узла. Программный интерфейс обмена сообщениями PVM довольно прост. Все посылки сообщений, если явно не задано противное, буферизующие: операция посылки обязана завершиться вне зависимости от того, выполнен ли соответствующий ей прием. Прием бывает ждущий (завершающийся только тогда, когда есть, что принимать) и не ждущий (способный сообщить, что принимать нечего, и, тем самым, завершающийся безусловно). Логика системы передачи сообщений PVM практически исключает появление тупиковых ситуаций (дедлоков), но не допускает эффективной реализации. При посылке сообщения указывается его тег, при приеме сообщения можно «фильтровать» по тегу. Помимо обменов «точка-точка», имеется аппарат широковещания и редукции (посылка сообщения всем процессам или группе процессов, поиск глобального максимума по массивам, распределенным по разным процессам и т.п.). Для обеспечения работы в гетерогенной среде, в состав которой входят ЭВМ с разным машинным представлением данных, в акт посылки и приема сообщений явно входит процесс упаковки и распаковки данных. Данные передаются в машинно-независимом формате. PVM предназначена для решения задач с так называемым крупным зерном параллелизма (когда доля вычислительных операций многократно превышает долю коммуникационных) с не очень высокими требованиями к эффективности коммуникаций; для задач, в которых гибкость системы управления процессами и поддержка гетерогенности важнее быстродействия подсистемы передачи сообщений. Другим стандартным средством, позволяющим организовывать параллельные вычисления, является MPI (Message Passing Interface, «интерфейс передачи сообщений»). MPI, в отличие от PVM, стандартизует лишь интерфейс программиста, т.е. набор функций и аргументов коммуникационной библиотеки. Одним из существенных достоинств MPI является возможность сочетания простоты и эффективности при реализации стандарта и разработке параллельных программ на его основе. В частности, стандарт содержит разветвленный инструментарий функций пересылки данных, возможность согласования типов данных между ЭВМ различной архитектуры, а также конструирования собственных пользовательских типов данных. Последнее позволяет определить пользовательский тип таким образом, что, использование его, например, при передаче матрицы приведет к транспонированию матрицы. MPI основан на модели SPMD. Процессы, способные играть роль ветвей параллельной программы, порождаются в момент запуска программы все сразу. Если процесс MPI, пользуясь возможностями ОС, породит дочерний процесс, этот порожденный процесс новым процессом в рамках MPI быть не сможет. Порожденные процессы статически нумеруются, после чего возможны информационные обмены с помощью вызова подпрограмм коммуникационной библиотеки. Гибкость, эффективность и большой объем возможностей, предоставляемые стандартом MPI, а также его широкое распространение, делают реализации данного стандарта хорошей базой для разработчиков инструментальных средств более высокого языкового уровня. |