Средства повышения производительности вычислений в автоматизированных системах научного исследования

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 22.08.2020
Размер файла 174,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Средства повышения производительности вычислений в автоматизированных системах научного исследования

Мозгов С.С.

Несмотря на бурный прогресс вычислительных машин и существенный прирост в их производительности за последние десятилетия все еще существует целый пласт ресурсоемких задач, на решение которых требуются часы, а иногда и сутки процессорного времени. Безусловно, применение самых передовых процессоров позволяет сократить это время, однако наиболее перспективным направлением является использование множества ЭВМ, пусть и с невысокой производительностью каждой. Это направление развивается на протяжение нескольких десятилетий. И в настоящий момент большинство вычислительных комплексов из TOP 500 построены по данному принципу.

Существуют различные реализации многомашинной архитектуры:

Кластеры - мультикомпьютер, состоящий из множества отдельных компьютеров (узлов), связанных между собой единой коммуникационной системой. Каждый узел имеет свою локальную оперативную память. При этом, общей физической оперативной памяти для узлов не существует. Если в качестве узлов используются мультипроцессоры (мультипроцессорные компьютеры с общей памятью, т.е. SMP (symmetric multiprocessing) машины), то такой кластер называется SMP-кластером. Коммуникационная система обычно позволяет узлам взаимодействовать между собой только посредством передач сообщений, но некоторые системы могут обеспечивать и односторонние коммуникации - позволять любому узлу выполнять массовый обмен информацией между своей памятью и локальной памятью любого другого узла. Если все входящие в состав вычислительного кластера узлы имеют одну и ту же архитектуру и производительность, то мы имеем дело с однородным вычислительным кластером. В противном случае - с неоднородным. С точки зрения разработки прикладных параллельных программ нет каких-либо принципиальных различий между однородными кластерами и системами MPP (massive parallel processing) архитектуры. Различия, в основном, заключаются в большей доступности и меньшей стоимости кластеров по сравнению с мультипроцессорными ЭВМ с распределенной памятью, в которых используются специальные коммуникационные системы и специализированные узлы. При работе с неоднородными кластерами существенно усложняется процесс разработки параллельной программы, так как необходимо учитывать разницу в производительности отдельных устройств, а также особенности их архитектуры, что может потребовать подготовки разных исполняемых файлов для различных узлов. Тем не менее, любой кластер можно рассматривать как единую аппаратно-программную систему, имеющую единую коммуникационную систему, единый центр управления и планирования загрузки.

Вычислительные сети (Grid) объединяют ресурсы множества кластеров, многопроцессорных и однопроцессорных ЭВМ, принадлежащих разным организациям и подчиняющихся разным дисциплинам использования. Grid - программно-аппаратная инфраструктура, которая обеспечивает устойчивый повсеместный и недорогой доступ к высокопроизводительным компьютерным ресурсам. В настоящее время можно сказать, что Grid является согласованной, открытой и стандартизованной средой, которая обеспечивает гибкое, безопасное, скоординированное разделение ресурсов в рамках виртуальной организации-то есть динамически формирующейся совокупности независимых пользователей, учреждений и ресурсов. Отметим, что речь больше не идет о «мощных вычислительных ресурсах» Метакомпьютинга. В качестве процессорных ресурсов рассматриваются теперь, например, рабочие станции и ПК. На самом деле, основные вычислительные мощности сосредоточены вовсе не в суперкомпьютерном парке. Если организация располагает, скажем, тремя тысячами рабочих мест на базе рабочих станций, то за время их регулярного простоя потерянные циклы составят существенную долю даже терафлопной производительности. Мощные ресурсы - суперкомпьютеры, кластеры, SMP-системы - остаются важным частным случаем. Кроме того, новая трактовка применима к разнообразным типам ресурсов: телекоммуникациям, системам массовой памяти, хранилищам данных, а также измерительным и научным инструментам, например, радиотелескопам.

Ориентирована технология Grid, прежде всего на распределенные в пространстве узлы, а также на задачи, которые хорошо делятся на подзадачи, не требующие интенсивного взаимодействия между собой. Как правило, запускаемые задачи настолько ресурсоемки, что даже в такой системе для их вычисления может потребоваться несколько суток.

В первую очередь, Grid ориентирована на географически удаленные узлы. Данные технологии грамоздки для организации распределенных вычислений в рамках отдельной организации или компьютерного класса. Однако использование офисных компьютеров в организациях или компьютерных классах позволяет существенно снизить время вычислений, при решении различных ресурсоемких научно-исследовательских задач. Альтернативным решением для организации вычислительного комплекса с использованием разнородных персональных компьютеров, не требующим написания сложных параллельных программ, является OpenMosix.

компьютер вычислительный кластер архитектура

OpenMosix

Кластер openMosix, состоящий из компьютеров под управлением OC Linux, есть то, что называется одноoбразной системой (SSI). В различных статьях неоднократно обсуждалось, что нельзя получить настоящий кластер до тех пор, пока вы не построите SSI. В SSI-кластере пользователь не заботится о том, на каком узле он выполняет команды, и любая программа, которую он запускает, будет запущена на том узле, который сможет удовлетворить потребности программы наилучшим образом. OpenMosix - это расширение ядра Linux. Поэтому для того, чтобы проинсталлировать openMosix, необходимо запустить специальный инсталляционный скрипт, который применит все необходимые изменения к исходным кодам ядра Linux. Такой скрипт также называют «патчем» (от англ. patch). Изменения касаются 3% всего исходного кода ядра, что не очень много.

Замечательной особенностью openMosix является то, что пользователь только запускает программу, а кластер решает, где её выполнить (если не оговорено обратное). Разработчики openMosix называют это свойство «разветвись-и-забудь» (fork-and-forget).

OpenMosix - это программное обеспечение, которое было разработано для того, чтобы расширить ядро Linux возможностями кластерных вычислений. openMosix расшифровывается как Open Multicomputer Operating System for UNIX. Ядром OpenMosix являются адаптивные интерактивные алгоритмы, балансирующие нагрузку, управляющие памятью и файловым вводом-выводом. Они реагируют на изменения в использовании ресурсов кластера, например, неравномерную распределённую нагрузку или чрезмерный обмен с диском из-за недостатка свободной памяти на одном из узлов. В таких случаях openMosix инициирует перемещение процесса от одного узла к другому, чтобы сбалансировать нагрузку, или перемещение процесса на узел, который имеет достаточно свободной памяти, или уменьшение числа удалённых файловых операций ввода-вывода. OpenMosix работает незаметно - его операции прозрачны для прикладных программ. Это означает, что пользователи могут выполнять последовательные и параллельные прикладные программы точно так же, как на SMP. Пользователи не должны заботиться о том, где процессы выполняются, беспокоиться о том, что делают другие пользователи. Вскоре после создания нового процесса openMosix пытается назначать его лучшему доступному узлу на этот момент. OpenMosix контролирует все процессы и, в случае необходимости, мигрирует процессы между узлами, чтобы максимизировать общую эффективность. Все это делается без изменения интерфейса Linux. Это означает, что вы продолжаете видеть (и контролировать) все ваши процессы, как будто они выполняются на узле, с которого вы вошли в систему.

Однако при всех достоинствах такая система не может повысить производительность единичного процесса, поэтому для получения прироста в производительности программу необходимо разветвить (fork) на более мелкие процессы, которые могут выполняться параллельно на различных узлах кластера. При этом? затраты на написание разветвленной программы, как правило, ниже, нежели при написании полноценной параллельной программы, особенно если требуется организация взаимодействия процессов с помощью передачи сообщений, например MPI. От программиста не требуется специальных знаний в области параллельного программирования.

Для задач автоматизированной системы научного исследования (АСНИ) openMosix позволяет достаточно быстро (не требуется развертывания сложной служебной инфраструктуры, как в GRID) организовать вычислительный ресурс, задействовав простаивающие персональные компьютеры. Очень часто в АСНИ требуется произвести много однообразных вычислений, в таких случаях алгоритмы обработки данных могут быть разделены на более мелкие фрагменты, а непосредственно обработка выполнятся несколькими процессами, обрабатывающими различные фрагменты данных. Планирование вычислений удобно организовать с помощью описания на метаязыке последовательности операций, которые необходимо выполнить для проведения того или иного эксперимента, так чтобы в дальнейшем система смогла сформировать несколько автономных процессов, которые средствами openMosix могли бы автоматически мигрировать на свободные вычислительные узлы.

Литература

1. Коваленко, В.Н. Структура и проблемы развития программного обеспечения среды распределенных вычислений Грид. [Текст] / В.Н. Коваленко, Е.И. Коваленко, Д.А. Корягин, Э.З. Любимский, А.В. Орлов, Е.В. Хухлаев. - ИПМ им. М.В. Келдыша РАН. - Москва, 2002.

2. Кацубо, Д.В. Использование кластерной системы «OpenMosix» для построения распределённых вычислений. [Текст] / Д.В. Кацубо - Минск, 2003. - 81 с.

3. Крюков, В.А. Разработка параллельных программ для вычислительных кластеров и сетей [Текст]/ В.А. Крюков. - Информационные технологии и вычислительные системы. - 2003. - №2. - С. 42-58.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.