Читаем Параллельное и распределенное программирование на С++ полностью

Создайте файл $HOME /.xpvm_hosts и/или файл $HOME /pvm_hosts, в котором перечислите все подлежа щ ие использованию ко м пьютеры с приставкой Нал и чие приставки "&" означает неавтоматическое включение компьютера. Без этой приставки компьютер будет включен в PVM-среду автоматически. Файл pvm_hosts создается пользователем и может иметь произвольное имя. Но в среде XPVM необходимо ис пользовать только имя .xpvm_hosts. Пример такого файла показан на рис. 6.3. Аналогичный формат следует использовать для pvm_hosts- или . xpvm_hosts.

Главное внимание необходимо уделить сетевому доступу пользователя, запускаю щ его PVM-программу. Владелец PVM-программы должен иметь доступ к каждому компьютеру, включенному в пул процессоров. Этот доступ будет использовать либо команду rsh, либо rlogin, либо ssh. Выполняемая программа должна быть доступна на каждом компьютере, а PVM-среда должна быть «в курсе» того, какие компьютеры имеются в наличии и где будут инсталлированы выполняемые файлы.

# Строки комментариев начинаются с символа "#"

# (пустые строки игнорируются).

# Строки, начинаю щ иеся с символа "&", позволяют

# включить компьютеры в среду PVM позднее. Если

# имя компьютера не предваряется символом "&",

# этот компьютер включается в среду PVM

# автоматически.

flavius marcus

&cambius lo=romulus &karsius

# Символ означает стандартные опции для

# следую щ их компьютеров

# dx=/export/home/fred/pvm3/lib/pvmd &octavius

# Если компьютеры являются частью типичного

# linux-кластера, то их имена можно использовать

# для включения узлов кластера в среду PVM

#   вместе с другими узлами. _

<p>Объединение динамической С++-библиотеки c библиотекой PVM </p>

Поскольку доступ к PVM-средствам обеспечивается через коллекцию библиотечных функций, С++-программа использует PVM как любую другую библиотеку. Следует иметь в виду, что каждая PVM-програм м а представляет собой автономную C++-программу с собственной функцией main (). Это означает, что все PVM-программы имеют собственное адресное пространство. При порождении каждой PVM-задачи создается ее собственный процесс с новым а д ресным пространством и, соответственно, идентификационный номер процесса. PVM-процессы ви д имы для утилиты ps. Несмотря на то что несколько PVM-задач могут выполняться вместе для решения некоторой пробле м ы, они будут иметь собственные копии динамической C++-библиотеки. Каждая программа имеет собственный поток iostream, библиотеку шаблонов, алгоритмы и пр. В область видимости глобальных С++-пере м енных адресное пространство не попадает. Это означает, что глобальные переменные одной PVM-задачи невидимы для других PVM-задач. Для взаимодействия отдельных задач используется м еханизм передачи сооб щ ений. Этим они отличаются от многопоточных программ, в которых потоки разделяют одно адресное пространство и могут взаимодействовать посредством глобальных переменных и передачи параметров. Если PVM-программы выполняются на одном компьютере с несколькими процессорами, то как дополнительные средства коммуникации программы могут совместно использовать файловую систе м у, каналы, FIFO-очереди и об щ ую па м ять. Несмотря на то что передача сооб щ ений — основной метод взаимодействия между PVM-задачами, ничто не мешает им в качестве дополнительных средств использовать файловую систе м у, буфер об м ена или даже аргументы командной строки. PVM-библиотека не ограничивает, а расширяет возможности динамической С++-библиотеки.

<p>Методы использования PVM-задач </p>

Работу, которую выполняет С++-программа, можно распределить между функциями, объектами или их сочетаниями. Действия, выполняемые программой, обычно делятся на такие логические категории: операции ввода-вывода, интерфейс пользователя, обработка базы данных, обработка сигналов и ошибок, числовые вычисления и т.д. Отделяя код интерфейса пользователя от кода обработки файлов, а также код процедур печати от кода числовых вычислений, мы не только распределяем работу програ м мы между функциями или объектами, но и стараемся выделять категории действий в соответствии с их характером. Логические группы организуются в библиотеки, модули, объектные шаблоны, компоненты и оболочки. Такой тип организации мы поддерживае м и при внесении PVM-задач в С++-програ мм у. Мы може м подойти к деко м позиции работ (work breakdown structure), используя м етод либо восходя щ его, либо нисходя щ его проектирования. В любом случае параллелиз м должен естественно вписываться в работу, которая на м ечена для выполнения функцией, модулем или объектом.

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных