Реферат по предмету "Разное"


«Оптимизация кластерной системы на базе pvm компьютерной лаборатории физического факультета»

Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образованияИВАНОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТКафедра теоретической физики математического и компьютерного моделирования.Курсовая работа на тему: «Оптимизация кластерной системы на базе PVM компьютерной лаборатории физического факультета».Выполнил: студент 4 курса 1 группы: Медведев Алексей Александрович Подпись:___________ Научный руководитель: Гурьянов Андрей Владимирович Подпись:___________ Работа защищена: «___» _________ 20__г. Оценка:___________ Заведующий кафедрой: доцент кафедры теоретической физики математического и компьютерного моделирования Логинов Евгений Константинович Подпись:__________Иваново 2010Содержание.^ Введение Математические основы параллельных вычислений. Реализация параллельных вычислений. Кластерные системы. Развитие кластерных систем. Применение кластерных систем Типичные задачи для кластерных систем. Принципы построения кластера. Производительность кластерной системы. Законы Амдала. Описание системы PVM.Оптимизация кластерной системы на базе PVM. Описание оборудования и предыдущей конфигурации программного обеспечения кластера. Установка и настройка новой конфигурации программного обеспечения кластера. Процесс компиляции собственного программного обеспечения для работы с PVM. Тестирование новой конфигурации вычислительной системы. Нагрузочное тестирование сети. Тест имитационной модели метода Монте-Карло.^ Заключение Список литературы Приложение Введение. Перед современной наукой стоят очень сложные трудоемкие задачи, требовательные к ресурсам компьютерных систем. С одной стороны, многие задачи требуют вычислений с большим количеством операций, более того, можно с уверенностью считать, что каких бы скоростей ни достигла вычислительная техника, всегда найдутся задачи, на решение которых потребовалось значительное время. С другой стороны большую техническую проблему представляет уменьшение времени исполнения каждой операции в микропроцессоре. Очевидным способом увеличить скорость вычислений было бы применение не одного вычислительного устройства, а нескольких, работающих совместно над решением одной задачи. Такой подход носит название параллельных вычислений. Несмотря на кажущуюся простоту решения, оно является подчас весьма нетривиальной задачей по проектированию вычислительной техники и разработки алгоритмов. Первая проблема состоит в том, что для того, чтобы задачу можно было решить с помощью параллельных вычислений алгоритм её решения должен допускать распараллеливание, но далеко не каждая задача может быть решена параллельным алгоритмом. Другой же, не менее важной проблемой является построение системы, на которой была бы возможна реализация параллельных вычислений. Подготовка специалистов, обладающих навыками создания и использование подобных систем и алгоритмов очень важна в условиях развития современной науки и техники. Соответственно была поставлена задача: оптимизировать работу параллельной вычислительной машины (PVM), созданной на базе компьютерной лаборатории физического факультета, которую можно более эффективно использовать, как для обучения студентов приемам параллельного программирования, так и для решения затратных по времени задач. Таким образом, задачи, которые были поставлены передо мной в моей курсовой являются: изучение основных принципов построения распределенных вычислительных систем, установка графической консоли XPVM, изучение интерфейса и принципов ее работы, повышение эффективности работы PVM.^ Математические основы параллельных вычислений Параллельные вычисления возможны тогда, когда отсутствует необходимость в завершении предыдущей операции для начала следующей. В качестве примера можно взять следующее выражение: для того чтобы произвести второе умножение не требуется знать результата первого, следовательно, оба умножения можно произвести параллельно, и только после этого произвести сложение. Очевидно, не каждое вычисление можно распараллелить. Выражение: можно вычислить только последовательно, сначала первое умножение, затем второе, и только после этого — сложение. В основе анализа распараллеливаемости алгоритмов лежит исследование зависимостей по данным между операциями. Если от результата одной операции зависит результат другой, то вторая называется зависимой по данным от первой. Совокупность всех зависимостей по данным представляет собой ориентированный граф без циклов, в котором вершины — операции, а рёбра — зависимости. Длина самого протяжённого пути по этому графу называется минимальной высотой алгоритма и определяет минимально возможное время, за которое теоретически возможно выполнить вычисления по алгоритму. Практически это время не всегда достижимо по той причине, что может потребоваться параллельное вычисление очень большого количества операций, что может оказаться неосуществимым на выделенных вычислительных ресурсах или потребуются очень большие накладки на синхронизацию параллельных вычислительных потоков. При реализации алгоритма на реальной системе, операции распределяются в группы или кортежи операций, выполняющихся параллельно в один момент времени. Высота алгоритма — количество таких кортежей — определяет, сколько времени потребуется на выполнение. Иллюстрация распараллеливания фрагмента алгоритма быстрого преобразования Фурье «бабочка» (рис.1). Фрагмент алгоритма БПФ (рис.1). Стрелками обозначены зависимости по данным, жирными стрелками — одна из длиннейших цепочек зависимостей. Слева написано, на каком по порядку такте процессора могут выполняться операции. Последовательный 2 операции за такт максимум 3 операции за такт максимум Предел параллельности  1. t1=br·qr  2. t2=bi·qi  3. t3=br·qi  4. t4=bi·qr  5. cr=t1−t2  6. ci=t3+t4  7. xr=ar+cr  8. xi=ai+ci  9. yr=ar−cr10. yi=ai−ci 1. t1=br·qr t2=bi·qi 2. t3=br·qi t4=bi·qr 3. cr=t1−t2 ci=t3+t4 4. xr=ar+cr xi=ai+ci5. yr=ar−cr yi=ai−ci 1. t1=br·qr t2=bi·qi t3=br·qi 2. t4=bi·qr cr=t1−t2 3. ci=t3+t4 xr=ar+cr yr=ar−cr4. xi=ai+ci yi=ai−ci 1. t1=br·qr t2=bi·qi t3=br·qi t4=bi·qr 2. cr=t1−t2 ci=t3+t43. xr=ar+cr xi=ai+ci yr=ar−cr yi=ai−ci Следует заметить, что высота алгоритма может не иметь никакой зависимости по отношению к сложности алгоритма — алгоритм с большим порядком сложности может иметь гораздо меньшую высоту, и, соответственно, быстрее исполняться на параллельной системе. ^ Реализация параллельных вычислений. Существует два основных подхода к распараллеливанию вычислений в микропроцессорных системах, называемые однопоточным и многопоточным параллелизмом. Различие заключается в использовании одного или нескольких потоков исполнения для параллельных вычислений. ^ Однопоточный параллелизм заключается в параллельном выполнении операций внутри одного потока исполнения. Возможность однопоточного параллелизма определяется архитектурой микропроцессора, а конкретно его способностью считывать из памяти и исполнять одновременно несколько операций. Он реализуется внутри одного потока исполнения. Возможность однопоточного параллельного исполнения почти целиком лежит на архитектуре микропроцессора — именно она определяет способность микропроцессора выполнять инструкции параллельно. Однопоточный параллелизм обладает своими достоинствами и недостатками. Достоинства: - отсутствие необходимости синхронизации — все операции выполняются внутри одного потока, и, следовательно, в строго определённой последовательности. - отсутствие необходимости поддержки параллелизма на уровне операционной системы. - отсутствие необходимости в средствах управления разделяемыми ресурсами. Недостатки: - затруднённость использования в алгоритмах с условными переходами. - необходимость адаптации программы для эффективного использования ресурсов микропроцессора, например, при переходе с одной модели на другую. ^ Многопоточный параллелизм — использование нескольких потоков для достижения параллельного исполнения операций. Для того чтобы обеспечить многопоточный параллелизм необходимо создать систему с несколькими процессорами или процессорными ядрами. Были разработаны специальные технологии для создания многопроцессорных систем. Которые позволяли обрабатывать данные параллельно, а, следовательно, быстрее. Соответственно создавались операционные системы, поддерживающие многопроцессорные технологии. Такие как: Solaris (Sun Microsystems), Unix-подобные OS: Irix (SGI), AIX (IBM); Linux RedHat; Windows XP и др. В подобного рода системах существует такое понятие как поток. Поток (thread) — это последовательность инструкций выполняемых в пределах контекста процесса. Эти операционные системы поддерживает многопоточные процессы. Слово «многопоточные» подразумевает содержание множества управляемых потоков. Традиционный UNIX процесс содержит один управляемый поток. Многопоточный, в свою очередь, содержит множество потоков, которые выполняются независимо. Так как каждый поток выполняется независимо, распараллеливание кода программы приводит к: улучшению чувствительности приложения, использование многопроцессорности более эффективно, улучшает структуру программы, использование меньше ресурсов системы. Существуют следующие методы достижения параллельных вычислений: - Упаковка данных для групповой обработки единичными инструкциями применением специальных методик. Например, возможно сложить две пары 8-битных данных 16-битной операцией исключив возможность переполнения. Метод имеет очень ограниченное применение. - Суперскалярная архитектура. Устройство управления микропроцессора самостоятельно анализирует поток инструкций на предмет возможности параллельного исполнения и управляет нескольких функциональными устройствами. - Векторная обработка. Микропроцессор имеет инструкции, производящие групповые однотипные операции. Однотипные операнды упаковываются в один векторный регистр. Этот метод аналогичен первому, но обеспечение параллельности лежит на микропроцессорной архитектуре. Векторные регистры, как правило, имеют большую разрядность. Требуется адаптировать программу для использования векторных инструкций или применять оптимизирующий компилятор. - Микропроцессор с явным параллелизмом. Метод аналогичен второму, но программа для такого процессора содержит явные указания на то, какие операции надо выполнять параллельно. Распараллеливание вычислений в данном случае полностью лежит на программисте или оптимизирующем компиляторе. Использование большего числа процессоров ускоряет работу программы, при обработке большого количества данных, соответственно рациональнее использовать многопроцессорные системы для решения сложных задач за более короткое время.^ Кластерные системы. Кластер — это модульная многопроцессорная система, созданная на базе стандартных вычислительных узлов, соединенных высокоскоростной коммуникационной средой. Сейчас слова «кластер» и «суперкомпьютер» в значительной степени синонимы, но прежде чем об этом стало можно с уверенностью говорить, аппаратные средства прошли длительный цикл эволюции. ^ Развитие кластерных систем. В течение первых 30 лет с момента появления компьютеров, вплоть до середины 1980-х гг., под «суперкомпьютерными» технологиями понимали исключительно производство специализированных высоко производительных систем (High Performance Computing) для вычислений. Однако появление однокристального микропроцессора практически стерло разницу между «массовыми» и «особо мощными» процессорами, и с этого момента единственным способом создания суперкомпьютера стал путь объединения процессоров для параллельного решения одной задачи. Примерно до середины 1990-х гг. основное направление развития суперкомпьютерных технологий было связано с построением специализированных многопроцессорных систем из массовых микросхем. Один из сформировавшихся подходов — SMP (Symmetric Multi Processing), подразумевал объединение многих процессоров с использо­ванием общей памяти, что сильно облегчало программирование, но предъявляло высокие требования к самой памяти. Сохранить быстродействие таких систем при увеличении количества узлов до десятков было практически невозможно. Кроме того, этот подход оказался самым дорогим в аппаратной реализации. На порядок более дешевым и практически бесконечно масштабируемым оказался способ МРР (Massively Parallel Processing), при котором независимые специализированные вычислительные модули объединялись специализированными каналами связи, причем и те и другие создавались под конкретный суперкомпьютер и ни в каких других целях не применялись. Идея создания, так называемого, кластера рабочих станций фактически явилась развитием метода МРР, ведь логически МРР-система не сильно отличалась от обычной локальной сети. Локальная сеть стандартных персональных компьютеров, при соответствующем ПО, использовавшаяся как многопроцессорный суперкомпьютер, и стала прародительницей современного кластера. Эта идея получила более совершенное воплощение в середине 1990-х гг., когда благодаря повсеместному оснащению ПК высокоскоростной шиной PCI и появлению дешевой, но быстрой сети. Fast Ethernet кластеры стали догонять специализированные МРР-системы по коммуникационным возможностям. Это означало, что полноценную МРР-систему можно было создать из стандартных серийных компьютеров при помощи серийных коммуникационных технологий.^ 1.2. Применение кластерных систем. Сфера применения кластерных систем сейчас нисколько не уже, чем суперкомпьютеров с другой архитектурой: они не менее успешно справляются с задачей моделирования самых разных процессов и явлений. Суперкомпьютерное моделирование может во много раз удешевить и ускорить вывод на рынок новых продуктов, а также улучшить их качество. Например, вместо того чтобы строить дорогостоящие тестовые модели новых автомобилей, чтобы затем разбить их об стенку ради проведения инженерных расчетов, можно быстрее и точнее все посчитать на компьютерных моделях. Благодаря этому многим западным автомобильным концернам удалось сократить срок разработки новой модели автомобиля в пять раз — с 10 до 2 лет. Компьютерная обработка геофизических данных позволяет создавать высокодетализированные модели нефтяных и газовых месторождений, обеспечивая более эффективную, безопасную и дешевую разработку скважин. Именно развитие кластерных технологий сделало высокопроизво­дительные вычисления широкодоступными и позволило самым разным предприятиям воспользоваться их преимуществами. Вот как распределяются области применения 500 самых мощных компьютеров мира: 44,3% — добывающая, электронная, автомобильная, авиационная и др. отрасли тяжелой промышленности и машиностроения, чуть более 20% — наука и образование, суперкомпьютерные центры. Более 18% приходится на погодные и климатические исследования, 7% — ядерные, космические, энергетические и военные государственные программы, 3,5% — финансовые компании и банки. Кроме того, в списке есть компании и организации, занимающиеся медициной и разработкой новых лекарств, компьютерной графикой, перевозками, торговлей, производством продуктов питания, консалтингом и государственным управлением.^ 1.3. Типичные задачи для кластерных систем. Сегодня можно говорить о том, что кластерные системы успешно применяются для всех задач суперкомпьютинга — от расчетов для науки и промышленности до управления базами данных. Практически любые приложения, требующие высокопроизводительных вычислений, имеют сейчас параллельные версии, которые позволяют разбивать задачу на фрагменты и обсчитывать ее параллельно на многих узлах кластера. Например, для инженерных расчетов (прочностные расчеты, аэромеханика, гидро- и газодинамика) традиционно применяются так называемые сеточные методы, когда область вычислений разбивается на ячейки, каждая из которых становится отдельной единицей вычислений. Эти ячейки обсчитываются независимо на разных узлах кластера, а для получения общей картины на каждом шаге вычислений происходит обмен данными, распространенными в пограничных областях. Для практических расчетов (3D-анимация, крэш-тесты, разведка нефтяных и газовых месторождений, прогнозирование погоды) обычно используются кластеры из 10-200 узлов. При этом основная задача — обеспечение эффективной работы кластера с конкретным приложением. Хотелось бы обратить внимание на класс задач эффективно подвергающихся распараллеливанию: ^ Одномерные массивы. Данные задачи встречаются довольно часто. Если значения элементов массива определяются довольно сложным выражением, а вычислять их надо многократно, то распараллеливание цикла для вычисления элементов массива может оказаться очень эффективным. В отдельный класс задач мы вынесли решение систем дифференциальных уравнений, что по своей сути также является обработкой массивов функций, производных и т.д. Но на самом деле эффективными могут также быть вычисления сверток, сумм, функций от каждого элемента массива и т.п. Конечно, не имеет смысл распараллеливать действия над короткими массивами кроме тех случаев, когда собственно вычисления каждого элемента занимают большое время. ^ Двумерные массивы. При исполнении вложенных циклов обычно эффективно распараллеливаются самые внешние циклы. Однако практически все действия с матрицами (сложение, умножение, умножение на вектор, прямое произведение) могут быть выполнены на кластере. Многие алгоритмы линейной алгебры (но не все) могут быть эффективно распараллелены. Некоторые библиотеки подпрограмм (например, LAPACK) существуют для параллельных машин. Совершенно неэффективно использовать кластеры для работы с матрицами низкой размерности (например, 3x3). Но можно переписать алгоритм для одновременной обработки нескольких (к примеру, 1000) матриц - обращение, поиск собственных чисел и т.д. При увеличении размера матриц растет эффективность работы программы, но растет и размер требуемой памяти для хранения матриц. ^ Клеточные автоматы. Во многих областях знания встречаются задачи, которые сводятся к вычислению эволюции объектов, расположенных в дискретных точках и взаимодействующих с ближайшими соседями. Простейшей и, наверно, наиболее широко известной такой задачей является игра "Жизнь". Можно так же привести в качестве примера модель магнетиков Изинга, представляющую собой набор спинов (элементарных магнитов), расположенных в узлах решетки и взаимодействующих только с ближайшими соседями. Алгоритм построения эволюции магнетиков Изинга будет во многом идентичен алгоритму игры "Жизнь". ^ Системы дифференциальных уравнений. Решение систем дифференциальных уравнений встречается во многих инженерных и научных задачах. В большинстве случаев алгоритмы решения подобных задач можно эффективно распараллелить для обработки на кластерном компьютере. В качестве примеров можно упомянуть такие задачи, как молекулярные модели сплошных сред в статистической физике, инженерные расчеты по распределению нагрузок в сложных конструкциях, модели N тел (например, расчеты движения космических аппаратов, динамика звездного диска Галактики), газодинамика сплошных сред (особенно, если исследуется многокомпонентная среда), электродинамика и др. Однако следует учитывать, что параллельность задачи определяется не только ее физическим смыслом, но и выбранным численным алгоритмом. Например, всем известный метод прогонки практически не поддается распараллеливанию. Если единственный или предпочтительный метод решения вашей задачи - метод прогонки, то затраты на распараллеливание алгоритма скорее всего превысят ожидаемый результат. С другой стороны, метод Монте-Карло идеально подходит для кластерного компьютера. Причем, чем больше процессоров будет в кластере, тем эффективнее будет решаться задача. Практически все варианты явных разностных схем решения дифференциальных уравнений успешно распараллеливаются. Исходя из всего вышесказанного, можно утверждать, что использование кластера на физическом факультете позволит оптимизировать процесс расчета моделей сложных структур, таких как отдельные молекулы (в частности белки), смесей различных веществ, кристаллов и т.д. ^ 1.4. Принципы построения кластера. Архитектура кластера должна обеспечивать масштабируемость ПО при увеличении количества узлов, т. е. прирост производительности при добавлении новых вычислительных модулей. Для этого важно правильно выбрать конфигурацию кластера в зависимости от профиля обмена данными между экземплярами программы, запущенными на разных узлах. Здесь нужно учитывать общий объем пересылаемых данных, распределение длин сообщений, использование групповых операций и т. п. Каждый узел работает под управлением своей копии стандартной операционной системы, в большинстве случаев — Linux. Состав и мощность узлов могут быть разными в рамках одного кластера, однако чаще строятся однородные кластеры. Выбор конкретной коммуникационной среды (интерконнекта) определяется многими факторами: особенностями решаемых задач, доступным финансированием, требованиями к масштабируемости и т. п. В кластерных решениях применяются такие технологии интерконнекта, как Fast Ethernet, Gigabit Ethernet, SCI, Myrinet, QsNet, InfiniBand. Исходя из всего вышесказанного, можно утверждать, что использование кластера на физическом факультете позволит оптимизировать процесс расчета моделей сложных структур, таких как отдельные молекулы (в частности белки), смесей различных веществ, кристаллов и т.д. ^ Производительность кластерной системы. Законы Амдала. Мерой измерения производительности любой вычислительной системы является Flops (floating point operations per second) — количество операций с плавающей точкой в секунду. Самым важным ограничением повышения производительности от распараллеливания алгоритма решения задачи являются законы Амдала, утверждающие:1-ый закон Амдала. Производительность вычислительной системы, состоящей из связанных между собой устройств, в общем случае определяется самым непроизводительным ее устройством. Следствие. Пусть система состоит из простых устройств и граф системы связный. Асимптотическая производительность системы будет максимальной, если все устройства имеют одинаковые пиковые производительности. Предположим, что по каким-либо причинам n операций из N мы вынуждены выполнять последовательно. Причины могут быть разными. Например, операции могут быть последовательно связаны информационно. И тогда без изменения алгоритма их нельзя реализовать иначе. Но вполне возможно, что мы просто не распознали параллелизм, имеющийся в той части алгоритма, которая описывается этими операциями. Отношение β = n/N назовем долей последовательных вычислений. 2-й закон Амдала. Пусть система состоит из s одинаковых простых универсальных устройств. Предположим, что при выполнении параллельной части алгоритма все s устройств загружены полностью. Тогда максимально возможное ускорение равно: 3-й закон Амдала. Пусть система состоит из простых одинаковых универсальных устройств. При любом режиме работы ее ускорение не может превзойти обратной величины доли последовательных вычислений.Закон Амдала в сетевой форме. Одной из главных характеристик параллельных систем является ускорение R параллельной системы, которое определяется выражением: , где T1 − время решения задачи на однопроцессорной системе, а Tn − время решения той же задачи на n − процессорной системе. Пусть W = Wск + Wпр, где W − общее число операций в задаче, Wпр − число операций, которые можно выполнять параллельно, а Wcк − число скалярных (нераспараллеливаемых) операций. Обозначим также через t время выполнения одной операции. Тогда получаем закон Амдала: Здесь a = Wск/W − удельный вес скалярных операций. Закон Амдала определяет принципиально важные для параллельных вычислений положения: 1. Ускорение зависит от потенциального параллелизма задачи (величина 1–а) и параметров аппаратуры (числа процессоров n). 2. Предельное ускорение определяется свойствами задачи. Пусть, например, a = 0,2 (что является реальным значением), тогда ускорение не может превосходить 5 при любом числе процессоров, то есть максимальное ускорение определяется потенциальным параллелизмом задачи. Очевидной является чрезвычайно высокая чувствительность ускорения к изменению величины а. Основной вариант закона Амдала не отражает потерь времени на межпроцессорный обмен сообщениями. Эти потери могут не только снизить ускорение вычислений, но и замедлить вычисления по сравнению с однопроцессорным вариантом. Поэтому необходима некоторая модернизация закона: Здесь Wc − количество передач данных, tc − время одной передачи данных. Выражение и является сетевым законом Амдала. Коэффициент сетевой деградации вычислений с: определяет объем вычислений, приходящийся на одну передачу данных (по затратам времени). При этом сА определяет алгоритмическую составляющую коэффициента деградации, обусловленную свойствами алгоритма, а сТ − техническую составляющую, которая зависит от соотношения технического быстродействия процессора и аппаратуры сети.^ 1.6. Описание системы PVM. PVM (Parallel Virtual Machine) - это побочный продукт продвижения гетерогенных сетевых исследовательских проектов, распространяемый авторами и институтами, в которых они работают. Общими целями этого проекта являются исследование проблематики и разработка решений в области гетерогенных параллельных вычислений. PVM представляет собой набор программных средств и библиотек, которые эмулируют общецелевые, гибкие гетерогенные вычислительные структуры для параллелизма во взаимосвязанных компьютерах с различными архитектурами. Главной же целью системы PVM является обеспечение возможности совместного использования группы компьютеров совместно для взаимосвязанных или параллельных вычислений. Основные постулаты, взятые за основу для PVM, следующие: Конфигурируемый пользователем пул хостов: вычислительные задачи приложения выполняются с привлечением набора машин, которые выбираются пользователем для данной программы PVM. Как однопроцессорные машины, так и аппаратное обеспечение мультипроцессоров (включая компьютеры с разделяемой и распределенной памятью) могут быть составной частью пула хостов. Пул хостов может изменяться добавлением и удалением машин в процессе работы (важная возможность для поддержания минимального уровня ошибок). Прозрачность доступа к оборудованию: прикладные программы могут “видеть” аппаратную среду как группу виртуальных вычислительных элементов без атрибутов или эксплуатировать по выбору возможности специфических машин из пула хостов путем ``перемещения'' определенных счетных задач на наиболее подходящие для их решения компьютеры. Вычисления, производимые с помощью процессов: единицей параллелизма в PVM является задача (часто, но не всегда совпадает с процессом в системе UNIX) - независимый последовательный поток управления, который может быть либо коммуникационным, либо вычислительным. PVM не содержит и не навязывает карты связей процессов; характерно, что составные задачи могут выполняться на одном процессоре. Модель явного обмена сообщениями: группы вычислительных задач, каждая из которых выполняет часть «нагрузки» приложения - используется декомпозиция по данным, функциям или гибридная, - взаимодействуют, явно посылая сообщения друг другу и принимая их. Длина сообщения ограничена только размером доступной памяти. Поддержка гетерогенности: система PVM поддерживает гетерогенность системы машин, сетей и приложений. В отношении механизма обмена сообщениями PVM допускает сообщения, содержащие данные более одного типа, для обмена между машинами с различным представлением данных. При желании в кластер на основе PVM можно включать узлы не только под управлением различные ОС, но и различных архитектур. Поддержка мультипроцессоров: PVM использует оригинальные возможности обмена сообщениями для мультипроцессоров с целью извлечения выгоды от использования базового оборудования. Производители часто поддерживают собственные, оптимизированные для своих систем PVM, которые становятся коммуникационными в их общей версии. Система PVM состоит из двух частей. Первая часть - это “демон” под названием pvmd3 - часто сокращается как pvmd, - который помещается на все компьютеры, создающие виртуальную машину. (Примером программы-демона может быть почтовая программа, которая выполняется в фоновом режиме и обрабатывает всю входящую и исходящую электронную почту компьютера). Разработан pvmd3 таким образом, чтобы любой пользователь с достоверным логином мог инсталлировать его на машину. Когда пользователь желает запустить приложение PVM, он, прежде всего, создает виртуальную машину. После этого приложение PVM может быть запущено с любого UNIX-терминала на любом из хостов. Несколько пользователей могут конфигурировать перекрывающиеся виртуальные машины, каждый пользователь может последовательно запустить несколько приложений PVM. Вторая часть системы - это библиотека подпрограмм интерфейса PVM. Она содержит функционально полный набор примитивов, которые необходимы для взаимодействия между задачами приложения. Эта библиотека содержит вызываемые пользователем подпрограммы для обмена сообщениями, порождения процессов, координирования задач и модификации виртуальной машины. Вычислительная модель PVM базируется на предположении, что приложение состоит из нескольких задач. Каждая задача ответственна за часть вычислительной нагрузки приложения. Иногда приложение распараллеливается по функциональному принципу, т. е. каждая задача выполняет свою функцию, например: ввод, порождение, счет, вывод, отображение. Такой процесс часто определяют как функциональный параллелизм. Более часто встречается метод параллелизма приложений, называемый параллелизмом обработки данных. В этом случае все задачи одинаковы, но каждая из них имеет доступ и оперирует только небольшой частью общих данных. PVM поддерживает любой из перечисленных методов отдельно или в комплексе. В зависимости от функций задачи могут выполняться параллельно и нуждаться в синхронизации или обмене данными, хотя это происходит не во всех случаях. В настоящее время PVM поддерживает языки программирования C, C++ и Фортран. Этот набор языковых интерфейсов взят за основу в связи с тем, что преобладающее большинство целевых приложений написаны на C и Фортран, но наблюдается и тенденция экспериментирования с объектно-ориентированными языками и методологиями. Привязка языков C и C++ к пользовательскому интерфейсу PVM реализована в виде функций, следующих общепринятым подходам, используемым большинством C-систем, включая UNIX - подобные операционные системы. Уточним, что аргументы функции - это комбинация числовых параметров и указателей, а выходные значения отражают результат работы вызова. Прикладные программы, написанные на C и C++, получают доступ к функциям библиотеки PVM путем прилинковки к ним архивной библиотеки (libpvm3.a) как часть стандартного дистрибутива. Привязка к языку Фортрана реализована скорее в виде подпрограмм, чем в виде функций. Такой подход применен по той причине, что некоторые компиляторы для поддерживаемых архитектур не смогли бы достоверно реализовать интерфейс между C и Фортран функциями. Непосредственным следствием из этого является то, что для каждого вызова библиотеки PVM вводится дополнительный аргумент - для возвращения результирующего статуса в вызвавшую его программу. Также унифицированы библиотечные подпрограммы для размещения введенных данных в буферы сообщения и их восстановления, они имеют дополнительный параметр для отображения типа данных. Кроме этих различий (и разницы в стандартных префиксах при именовании: pvm_ - для C и pvmf_ - для Фортран), возможно взаимодействие “друг с другом” между двумя языковыми привязками. Интерфейсы PVM на Фортране реализованы в виде библиотечных надстроек, которые в свою очередь, после разбора и/или определения состава аргументов, вызывают нужные C-подпрограммы. Так, Фортран - приложения требуют прилинковки библиотеки-надстройки (libfpvm3.a) в дополнение к C библиотеке(libpvm3.a). ^ Оптимизация кластерной системы на базе PVM. Описание оборудования и предыдущей конфигурации программного обеспечения кластера. Парк оборудования компьютеризированной лаборатории физического факультета состоит из 10 машин с процессорами: AMD ATHLON-64 X2 4200+, оперативной памятью: 2 ГБ, сетевым адаптером: 10/100/1000 Мб/с. Процессор: ATHLON-64 X2 4200+ - является суперскалярным, содержит 3 декодера команд, теоретически позволяющих достичь пиковой производительности до 3-х операций за 1 такт в каждом ядре. Таким образом, для данного процессора, имеющего в своём составе 2 ядра и работающего на частоте 2.2 ГГц теоретический предел производительности составляет 3х2х2.2=13.2 GFlops. В данную кластерную систему входи всего 9 компьютеров, значит теоретически предел всего кластера равен 13.2х9=118.8 GFlops. Предыдущая конфигурация программного обеспечения кластерной системы позволяла использовать пропускную способность сетевого интерфейса лишь на 10 Мб/с, что плохо сказывалось на производительности установки, когда на ней считались сильно связные задачи, требующие большого количества синхронизаций друг с другом. Старая конфигурация программного обеспечения: Операционная система: Ubuntu Linux v.8.10 Механизм коммуникации: внутренние механизмы связи PVM, основанные на стандартном транспортном протоколе. Интерфейс управления кластером: консоль PVM 3.4.2, GNU bash, version 3.2.48. Компилятор: GCC (GNU Compiler Collection) v.4.3.^ Установка и настройка новой конфигурации программного обеспечения кластера. Переустановка операционной системы. Старая операционная система была заменена на более новую Ubuntu 9.10, с более новым ядром. Установка и настройка PVM. PVM версии 3.4.5. была скачана с официального сайта: http://www.netlib.org/pvm3/index.html. Распаковав скачанный архив в домашнюю папку пользователя (~/pvm3/). В конфигурационный файл командного интерпретатора bash (/etc/bash.bashrc) добавлены следующие строчки: #pvm configuration export PVM_ROOT=/home/root/pvm3if [ -z $PVM_ROOT ]; thenif [ -d ~/pvm3 ]; thenexport PVM_ROOT=~/pvm3elseecho "Warning - PVM_ROOT not defined"echo "To use PVM, define PVM_ROOT and rerun your .bashrc"fifiif [ -n $PVM_ROOT ]; thenexport PVM_ARCH=`$PVM_ROOT/lib/pvmgetarch`export PATH=$PATH:$PVM_ROOT/lib/$PVM_ARCH # arch-specificexport PATH=$PATH:$PVM_ROOT/bin/$PVM_ARCHfiexport PVM_PATH=$PVM_ROOT/bin/$PVM_ARCHexport PVM_DPATH=pvm3/lib/pvmdexport PVMHOSTFILE=/home/root2/.rhosts В системе установлен SSH. Для коммуникаций, PVM использует RSH или SSH, по умолчанию в файле конфигурационном файле для каждой операционной системы в PVM (например, для Linux 64-bit: ~/pvm3/conf/LINUX64.def), стоит RSH, но лучше использовать SSH. Для этого в этом файле нужно прописать значение переменной ARCHCFLAGS, параметр RSHCOMMAND должен содержать путь к команде SSH, например DRSHCOMMAND=\"/usr/bin/ssh\" . В каталоге /pvm3 выполняем команду для сборки и установки:make По окончании ее работы PVM будет готова к использованию. (На одном из этапов выполнения, команда завершилась выходом с ошибкой из-за отсутствия библиотеки m4_1.4.13-2_amd64, которая необходимо было скачать через sudo apt-get install m4 из интернета.) На этом процесс установки и настройки PVM завершен. Для удобства работы, данная конфигурация была скопирована на все


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.