Grid computing что это

Обновлено: 02.05.2024

Грид-вычисления - это форма распределенных вычислений, в которой виртуальный суперкомпьютер создается из кластера слабосвязанных компьютеров. Он предназначен для решения ресурсоемких задач. Сегодня грид-вычисления используются во многих областях, в некоторых случаях также в коммерческих целях, например, в фармацевтических исследованиях и экономике , в электронной торговле и в веб-сервисах . Он также используется для управления рисками при построении динамики и финансового менеджмента.

Грид-вычисления отличаются от типичных компьютерных кластеров значительно более слабой связью, неоднородностью и географическим разбросом компьютеров. Кроме того, сетка в основном предназначена для специального приложения и часто использует стандартные программные библиотеки и промежуточное ПО . В частности, в области баз данных grid-вычисления могут сочетаться с технологиями в памяти .

Основы грид-вычислений исходят от Яна Фостера , Карла Кессельмана и Стивена Тьюке (2001).

Содержание

Концепция грид

Грид-технологии (Grid) позволяют создать географически распределенные вычислительные инфраструктуры, которые объединяют разнородные ресурсы и реализуют возможность коллективного доступа к этим ресурсам [3] . Принципиальной новизной этих технологий является объединение ресурсов путем создания компьютерной инфраструктуры нового типа, обеспечивающей глобальную интеграцию информационных и вычислительных ресурсов на основе сетевых технологий и специального программного обеспечения промежуточного уровня (middleware), а также набора стандартизованных сервисов (служб) для обеспечения надежного совместного доступа к географически распределенным информационным и вычислительным ресурсам: отдельным компьютерам, кластерам, хранилищам информации и сетям. Основными направлениями развития грид-технологий являются: вычислительный грид, грид для интенсивной обработки данных и семантический грид для оперирования данными из различных баз данных.
Для построения полностью функциональной грид-системы необходимо программное обеспечение промежуточного уровня (middleware) [4] , построенное на базе существующих инструментальных средств и предоставляющее высокоуровневые сервисы задачам и пользователям. Создание и реализация грид-технологий является сложной научной и практической проблемой, находящейся на стыке большого количества научно-технических направлений.

Задача "Грид"

Основная задача «грид» - согласованное распределение ресурсов: [1] и решение задач в условиях динамических, многопрофильных виртуальных организаций [2]
Исследования и разработки в сообществе грид привели к разработке протоколов, сервисов и инструментария, направленного именно на те проблемы, которые возникают при попытке создания масштабируемых ВО. Эти технологии включают в себя: решения по безопасности, поддерживающие управление сертификацией и политиками безопасности, когда вычисления производятся несколькими организациями;

  • Протоколы управления ресурсами и сервисами, поддерживающие безопасный удаленный доступ к вычислительным ресурсам и ресурсам данных, а также перераспределение различных ресурсов;
  • Протоколы запроса информации и сервисы, обеспечивающие настройку и мониторинг состояния ресурсов, организаций и сервисов; <
  • Сервисы обработки данных, обеспечивающие поиск и передачу наборов данных между системами хранения данных и приложениями.

Сравнение грид-систем и обычных суперкомпьютеров

Распределённые, или грид-вычисления, в целом являются разновидностью параллельных вычислений, которое основывается на обычных компьютерах (со стандартными процессорами, устройствами хранения данных, блоками питания и т. д.), подключенных к сети (локальной [5] или глобальной [6] ) при помощи обычных протоколов, например Ethernet. В то время как обычный суперкомпьютер [7] содержит множество процессоров, подключенных к локальной высокоскоростной шине. [Источник 2] Основным преимуществом распределённых вычислений является то, что отдельная ячейка вычислительной системы может быть приобретена как обычный неспециализированный компьютер. Таким образом можно получить практически те же вычислительные мощности, что и на обычных суперкомпьютерах, но с гораздо меньшей стоимостью.

Пример использования грид-систем

Пусть есть ученый, которого попросили проверить чью-то новые полученные данные. Он начинает необходимые вычисления на удаленном сервере С. Начав исполняться, процесс на сервере С понимает, что ему необходима симуляция. Для этого он обращается к посреднику (на сервере D). Тот инициирует вычисления на серверах E и G, которые для получения необходимых параметров обращаются к серверу F. Данный пример иллюстрирует следующие важные характеристики грид-систем. Множество пользователей, как и набор ресурсов может быть большим и динамически меняться. Участники научного сообщества могут быть из разных организаций и меняться довольно часто, ресурсы могут изменять свои свойства. Вычисления могут охватывать разное число ресурсов в течение своего исполнения. Процессы исполнения могут общаться друг с другом, используя множество различных механизмов. Ресурсы могут потребовать разные механизмы аутентификации и авторизации и разных политик. Так в примере показаны следующие политики контроля доступа: Kerberos(сервер С), SSL(сервер D), обычные пароли. Также один и тот же пользователь может быть представлен на разных серверах разными именами, правами и учетными данным.

История

Термин «облачные вычисления» [5] появился в начале 1990-х гг. как метафора о такой же лёгкости доступа к вычислительным ресурсам, как и к электрической сети (англ. power grid) в сборнике под редакцией Яна Фостера и Карла Кессельмана «The Grid: Blueprint for a new computing infrastructure».
Идеи Grid-системы (включая идеи из областей распределённых вычислений, объектно-ориентированного программирования [6] , использования компьютерных кластеров, веб-сервисов и др.) были собраны и объединены Иэном Фостером, Карлом Кессельманом и Стивом Тики, которых часто называют отцами технологии ГРИД. Они начали создание набора инструментов для Grid Globus Toolkit [7] , который включает не только инструменты менеджмента вычислений, но и инструменты управления ресурсами хранения данных, обеспечения безопасности доступа к данным и к самому гриду, мониторинга использования и передвижения данных, а также инструментарий для разработки дополнительных сервисов Грид. В настоящее время этот набор инструментария является де факто стандартом для построения инфраструктуры на базе технологии грид, хотя на рынке существует множество других инструментариев для Grid-системы как в масштабе предприятия, так и в глобальном.

Элемент управления Grid


Табличные элементы управления (обычно в их названии присутствуют слова Table или Grid) широко используются при разработке GUI. Так получилось, что на работе мы используем С++ и MFC для разработки пользовательского интерфейса. В начале мы использовали CGridCtrl — общедоступную и довольно известную реализацию грида. Но с некоторого времени он перестал нас устраивать и появилась на свет собственная разработка. Идеями, лежащими в основе нашей реализации, я хочу с вами здесь поделиться. Есть задумка сделать open source проект (скорее всего под Qt). Поэтому данную заметку можно рассматривать как «Proof Of Concept». Конструктивная критика и замечания приветствуются.


Причины, по которым меня не устраивают существующие реализации я опущу (это тема для отдельной заметки).
Проекты у нас инженерно-научные, с богатой графикой, и списки и таблицы используются повсеместно. Поэтому новый грид должен был обеспечивать гибкую кастомизацию, хорошее быстродействие и минимальное потребление памяти при показе больших объемов информации. При разработке я старался придерживаться следующим правилом: реализуй функциональность максимально обобщенно и абстрактно, но не во вред удобству использования и оптимальности работы. Конечно, это правило противоречиво, но насколько мне удалось соблюсти баланс — судить вам.

Чтобы с чего-то начать, давайте попробуем дать определение элементу управления grid. Для сохранения общности можно сказать, что grid — это визуальный элемент, который разбивает пространство на строки и столбцы. В результате получается сетка ячеек (место пересечения строк и столбцов), внутри которых отображается некоторая информация. Таким образом у грида можно различить два компонента: структуру и данные. Структура грида определяет как мы будем разбивать пространство на строки и столбцы, а данные описывают, собственно, то, что мы хотим видеть в получившихся ячейках.

  • Главное свойство Count — количество линий, из которых состоит Lines
  • Каждая линия может менять свой размер (строка высоту, а столбец — ширину)
  • Линии можно переупорядочивать (строки сортировать, столбцам менять порядок)
  • Линии можно скрывать (делать невидимыми для пользователя)


Комментарии и некоторые служебные функции и поля опущены для наглядности.
Вы можете заметить, что в классе есть функции GetAbsoluteLineID и GetVisibleLineID . Так как мы позволяем перемешивать и скрывать линии, то абсолютный и видимый индекс линии различаются. Надеюсь картинка наглядно показывает эту ситуацию.

Также нужно сделать пояснение по поводу строки
Здесь определён сигнал (так он называется в Qt или boost). С появлением С++11 и std::function, можно легко написать простую реализацию signals/slots, чтобы не зависеть от внешних библиотек. В данном случае мы определили эвент в классе Lines, и к нему можно подключать любую функцию или функтор. Например грид подключается к этому эвенту и получает оповещение, когда экземпляр Lines меняется.

Таким образом структура грида у нас представлена двумя экземплярами Lines:

Переходим к данным. Каким образом давать гриду информацию о том, какие данные он будет отображать и как их отображать? Здесь уже всё изобретено до нас — я воспользовался триадой MVC (Model-View-Controller). Начнем с элемента View. Так же как класс Lines определяет не одну линию, а целый набор, определим класс View как нечто, что отображает какие-то однородные данные в некотором подмножестве ячеек грида. Например, у нас в первом столбце будет отображаться текст. Это означает, что мы должны создать объект, который умеет отображать текстовые данные и который умеет говорить, что отображаться эти данные должны в первой колонке. Так как данные у нас могут отображаться разные и в разных местах, то лучше реализовать эти функции в разных классах. Назовем класс, который умеет отображать данные, собственно View, а класс, который умеет говорить где данные отображать Range (набор ячеек). Передавая в грид два экземпляра этих классов, мы как раз указываем что и где отображать.

Давайте подробнее остановимся на классе Range. Это удивительно маленький и мощный класс. Его главная задача — быстро отвечать на вопрос, входит ли определенная ячейка в него или нет. По сути это интерфейс с одной функцией:

Таким образом можно определять любой набор ячеек. Самыми полезными конечно же будут следующие два:
Первый класс определяет набор из всех ячеек, а второй — набор из одного конкретного столбца.

  • Сколько надо места, что бы отобразить данные (например чтобы колонкам установить ширину, достаточную для отображения текста — режим Fit)
  • Дай текстовое представление данных (чтобы скопировать в буфер обмена как текст или отобразить в tooltip)


Для наглядности рассмотрим пример в котором в первом столбце отображаются чекбоксы и текст. Во втором столбце представлены радио-кнопки, квадратики с цветом и текстовое представление цвета. И еще в одной ячейке есть звёздочка.

Например для чекбокса мы будем использовать LayoutLeft, который спросит у View его размер и «откусит» прямоугольник нужного размера от прямоугольника ячейки. А для текста мы будем использовать LayoutAll, к которому в параметре cellRect перейдет уже усеченный прямоугольник ячейки. LayoutAll не будет спрашивать размер у своего View, а просто «заберет» все доступное пространство ячейки. Можно напридумывать много разных полезных Layouts, которые будут комбинироваться с любыми View.

Возвратимся к классу Grid, для которого мы хотели задавать данные. Получается, что хранить мы можем тройки <Range, View, Layout>, которые определяют в каких ячейках, каким образом отображать данные, плюс как эти данные должны быть расположены внутри ячейки. Итак класс Grid у нас выглядит примерно так:

  1. Нужно отфильтровать m_data и оставить только те тройки, для которых наша ячейка попадает в Range
  2. Определить прямоугольник для ячейки
  3. Определить прямоугольники для всех View
  4. Отрисовать все View в рассчитанные для них прямоугольники

Этот класс в конструкторе выполняет первые три пункта и сохраняет результат в m_cache. При этом функция Draw получилась достаточно легковесной. За эту легковесность пришлось заплатить в виде m_cache. Поэтому создавать экземпляры такого класса на каждую ячейку будет накладно (мы ведь договорились не иметь данных, зависящих от общего количества ячеек). Но нам и не надо иметь экземпляры CellCache для всех ячеек, достаточно только для видимых. Как правило в гриде видна небольшая часть всех ячеек и их количество не зависит от общего числа ячеек.

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



Когда пользователь меняет размер грида или скроллирует содержимое, мы просто выставляем новый visibleRect в этом объекте. При этом переформируется m_cells, так чтобы содержать только видимые ячейки. Функциональности GridCache достаточно, что бы реализовать read-only грид.

Разделение классов Grid и GridCache очень полезно. Оно позволяет, например, создавать несколько GridCache для одного экземпляра Grid. Это может использоваться для реализации постраничной печати содержимого грида или экспорта грида в файл в виде изображения. При этом объект GridWindow никаким образом не модифицируется — просто в стороне создается GridCache, ссылающийся на тот же экземпляр Grid, в цикле новому GridCache выставляется visibleRect для текущей страницы и распечатывается.

Как же добавить интерактивности? Здесь на первый план выходит Controller. В отличие от остальных классов, этот класс определяет интерфейс со многими функциями. Но лишь потому, что самих мышиных событий достаточно много.

Так же как и для отрисовки, для работы с мышью нам нужны только видимые ячейки. Добавим в класс GridCache функции обработки мыши. По положению курсора мыши определим какая ячейка (CacheCell) находится под ней. Далее в ячейке для всех View, в чей прямоугольник попала мышь, забираем Controller и вызываем у него соответствующий метод. Если метод возвратил true — прекращаем обход Views. Данная схема работает достаточно быстро. При этом нам пришлось в класс View добавить ссылку на Controller.

Осталось разобраться с классом Model. Он нужен как шаблон адаптер. Его основная цель — предоставить данные для View в «удобном» виде. Давайте рассмотрим пример. У нас есть ViewText который умеет рисовать текст. Что бы его нарисовать в конкретной ячейке, этот текст надо для ячейки запросить у объекта ModelText, который, в свою очередь, лишь интерфейс, а его конкретная реализация знает откуда текст взять. Вот примерная реализация класса ViewText:

Таким образом несложно угадать какой интерфейс должен быть у ModelText:

Обратите внимание, мы добавили сеттер для того, что бы им мог воспользоваться контроллер. На практике наиболее часто используется реализация ModelTextCallback

Эта модель позволяет при инициализации грида назначить лямбда функции доступа к настоящим данным.
Ну а что же общего у моделей для разных данных: ModelText, ModelInt, ModelBool . В общем-то ничего, единственное, что про них всех можно сказать, что они должны информировать все заинтересованные объекте о том, что данные изменились. Таким образом базовый класс Model у нас примет следующий вид:


В итоге наш грид разбился на множество небольших классов, каждый из которых выполняет четко определенную небольшую задачу. С одной стороны может показаться, что для реализации грида представлено слишком много классов. Но, с другой стороны, классы получились маленькими и простыми, с четкими взаимосвязями, что упрощает понимание кода и уменьшает его сложность. При этом всевозможные комбинации наследников классов Range, Layout, View, Controller и Model дают очень большую вариативность. Использование лямбда функций для ModelCallback позволяют легко и быстро связывать грид с данными.

В следующей заметке я опишу как реализовать стандартную функциональность грида: selection, sorting, column/row resize, printing, как добавить заголовок (фиксированные верхние строки и левые столбцы).
Раскрою небольшой секрет — все что описано в данной статье уже достаточно для реализации вышеперечисленного. Если какую-то функциональность я пропустил, пожалуйста, пишите в комментариях и я опишу их реализацию в следующей статье.

Содержание

Грид-система

Архитектура и реализации

генеральный

Есть несколько концепций архитектуры сетки . Для каждой известной концепции характерно то, что в дополнение к запрашивающему органу и предъявляемым к нему фактическим требованиям к производительности должен существовать координирующий орган для объединения вычислительных мощностей и слияния частичных услуг. Кроме того, требуется строгая иерархия, которая позволяет или исключает агломерацию вычислительных мощностей в соответствии с объективными критериями. Каждый компьютер в « сетке » изначально представляет собой единицу, которая иерархически равна другим компьютерам (одноранговый-2-одноранговый).

Типичные задачи, в которых грид-вычисления выступают в качестве стратегии, - это те, которые подавляют производительность отдельных компьютеров. Это включает, например, интеграцию , оценку и представление очень больших объемов данных научных и медицинских исследований. В повседневной практике эти методы также используются в метеорологии и вычислительно-ресурсном моделировании в промышленности. Физика элементарных частиц, в частности с крупномасштабными экспериментами (например, Большой адронный коллайдер ) в качестве научного приложения, является пионером в дальнейшем развитии и создании сеточных технологий.

Типичные проблемы, с которыми связаны грид-вычисления, - это возрастающие усилия в рамках имеющейся мощности для координации. Из-за усилий по координации вычислительная мощность никогда не увеличивается линейно с количеством задействованных компьютеров. Этот аспект отходит на второй план в сложных численных задачах.

Одной из возможных программных архитектур для гридов является Open Grid Services Architecture (OGSA), совместно разработанная Яном Фостером . Это уже описывалось в его предшественнице, Open Grid Services Infrastructure (OGSI). Их основная идея - представление задействованных компонентов (компьютеров, хранилища, микроскопов и т. Д.) В виде сетевых сервисов в открытой компонентной архитектуре.

С конвергенцией веб-сервисов W3C и стандартов OGSA Open Grid Forum (OGF) грид-сервисы на техническом уровне, реализованные, например, в Globus Toolkit 4, стали веб-сервисами, техническими функциями которых являются Включить промежуточное ПО для сетки. В этом контексте OGSA предлагает использовать WSRF (платформу ресурсов веб-сервисов ) в качестве базового строительного блока для сервисных сетей. Таким образом, веб-сервисы, использование которых обеспечивает единообразные процедуры доступа к отдельным сервисам сети, также получают статус: им предоставляются ресурсы с отслеживанием состояния (такие как файлы, объекты Java или POJO , записи данных в базе данных ) связанный. Это то, что позволяет выполнять функции, охватывающие несколько транзакций. Комбинация веб-службы с таким статусным ресурсом образует так называемый WS-ресурс .

Виртуальные организации

Центральная и независимая от оборудования концепция, лежащая в основе философии grid, - это концепция виртуальных организаций (VO, см. Там). Ресурсы (или услуги ) динамически назначаются виртуальным организациям.

Реализации / промежуточное ПО grid

оборудование

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

Требования к безопасности в грид

Таким образом можно выставить следующие требования к системе безопасности в грид-системах:

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

Далее можно выделить основные свойства решений по безопасности в трех продуктах. Эти продукты: Globus, Legion, CRISIS для WebOS.

Globus Toolkit
Его решение подразумевает, что грид-система огромная и динамическая, включает в себя множество меняющихся во времени "областей доверия". Решение динамического выставления областей доверия и динамического создания сущностей основана на идее выдачи сертификатов. То есть безопасность в Globus Toolkit включает в себя криптосистему на открытых ключах. Выдача прав связана с проверкой сертификатов. И для того, чтобы доверять предъявителю сертификата, нужно доверять лишь центру выдачи сертификатов(certificate authority CA). [Источник 2]

Legion
Legion - это распределенная вычислительная платформа для комбинирования множества независимых машин в одну систему. Все ресурсы, включая вычислительные мощности, базы данных, Legion объединяет, используя один объектно-ориентированный мета-компьютер. Модули обеспечения безопасности в данной платформе входят в Legion Runtime Library(библиотека времени исполнения), которая определяет необходимые базовые объекты, такие как объекты ядер, хостов и хранилищ. [Источник 3]

Crisis
CRISIS это одна из компонент WebOS [8] . WebOS - это приложение, основной целью которого является поддержка сетевых приложений на разных операционных системах. И CRISIS приходится решать вопросы безопасности такие как Аутентификация, Авторизация. CRISIS это event-based система, включающая два основных компонента для авторизации и аутентификации. Первый это менеджер процессов, который принимает запросы (логин или доступ к ресурсу) и security менеджер, который хранит личные данные субъектов и принимает решения по поступающим запросам. [Источник 4]

Основы

определение

Первая попытка дать определение исходит от Иэна Фостера и Карла Кессельмана в книге «Грид: проект новой вычислительной инфраструктуры»:

«Вычислительная сетка - это аппаратная и программная инфраструктура, которая обеспечивает надежный, согласованный, всеобъемлющий и недорогой доступ к высокопроизводительным вычислительным возможностям».

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

Поскольку это определение было написано до фактического создания сеток, оно было явно уточнено Яном Фостером во втором издании книги:

«Совместное использование, которым мы занимаемся, - это в первую очередь не обмен файлами, а, скорее, прямой доступ к компьютерам, программному обеспечению, данным и другим ресурсам, как того требуют различные стратегии совместного решения проблем и посредничества ресурсов, появляющиеся в промышленности, науке, и инженерия. Такое совместное использование обязательно строго контролируется, при этом поставщики ресурсов и потребители четко и тщательно определяют, что передается, кому разрешено делиться и условия, при которых происходит совместное использование. Набор лиц и / или организаций, определенных такими правилами совместного использования, образуют то, что мы называем виртуальной организацией ».

«Совместное использование ресурсов, с которым мы имеем дело, в первую очередь не связано с обменом файлами, а скорее с предоставлением прямого доступа к компьютерам, программному обеспечению, данным и другим ресурсам, которые используются в ряде стратегий сотрудничества, решения проблем и распределения ресурсов. которые в настоящее время появляются в промышленности, науке и технике. Это совместное использование ресурсов, по необходимости, контролируется в максимально возможной степени, при этом поставщики и потребители ресурсов четко определяют, какие ресурсы используются совместно, кому разрешено делиться ими и при каких условиях происходит совместное использование. Многие люди и / или организации, ставшие результатом таких принципов совместного использования ресурсов, образуют то, что мы называем Виртуальной организацией ».

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

В литературе есть и другие попытки дать единообразное определение (см.).

Такие системы, как кластерные вычисления , одноранговые вычисления или мета-вычисления, неправильно называются грид-системами. Хотя они имеют аспекты вычислений сетки, отсутствуют важные моменты, чтобы описать их как сетку. Ян Фостер решил эту проблему с помощью контрольного списка из трех пунктов. Свойства сеточной системы кратко определяются следующим образом:

Сетка . . координирует ресурсы , которые не подчиняются центральной власти . Сетка координирует и объединяет ресурсы и пользователей из разных административных областей внутри одной компании или в разных странах. В этом контексте u. а. учтены безопасность, биллинг и членство (см.). Ресурсы могут включать кластеры, запоминающие устройства, базы данных, приложения или измерительные устройства. . и использует открытые стандартизованные протоколы и интерфейсы, . Сетка использует открытые и общие протоколы и интерфейсы, которые гарантируют основные функции для аутентификации, авторизации, определения ресурсов и доступа к ресурсам. . для обеспечения нетривиального качества обслуживания . Грид использует существующие ресурсы скоординированным образом для обеспечения различного качества обслуживания в зависимости, например, от времени отклика, пропускной способности, доступности или безопасности. Или, чтобы оправдать сложные ожидания пользователей, несколько типов ресурсов перераспределяются, так что выгода от объединенной системы значительно превышает сумму ее частей.

Проекты волонтерских вычислений (например, SETI @ home ) обычно не входят в число систем грид-вычислений, поскольку вычислительная мощность там, в отличие от грид-вычислений, предоставляется не организациями, а анонимными и, возможно, не проверенные клиенты.

происхождение

Концепции распределения вычислительно интенсивных задач существовали уже в 1960-х годах. Однако большая часть сегодняшних исследований грид-систем берет свое начало в ранних экспериментах с высокоскоростными сетями. В этом контексте следует особо отметить проекты FAFNER и I-WAY.

Термин « сеть » возник при сравнении этой технологии с электросетью (англ. Power Grid ). Соответственно, сетка должна так же легко предоставлять пользователю такие ресурсы, как Б. Предоставить вычислительную мощность или место для хранения через Интернет, как можно получить электричество из розетки. Пользователь отправляет свой заказ через стандартизированные интерфейсы в сетку, после чего распределение ресурсов происходит автоматически.

Проект I-WAY (Information Wide Area Year) был реализован в 1995 году в гигабитной тестовой среде в Университете штата Иллинойс, в которой 17 объектов в США и Канаде были подключены к высокоскоростной сети. В его задачу входило соединение разных суперкомпьютеров с помощью существующих сетей. I-WAY в значительной степени поддержал развитие проекта «Глобус».

Постановка целей

Мотивирующей целью, которая привела к развитию грид-технологии, было совместное, скоординированное использование ресурсов и совместное решение проблем в динамичных, межинституциональных, виртуальных организациях (см.). Это означает, что после определения учетных данных и прав должен быть возможен прямой доступ, например, к вычислительным службам, приложениям, данным или инструментам. В этом контексте виртуальная организация (VO) - это динамическое объединение людей и / или организаций, которые преследуют общие цели при использовании сетки. Хотя большая часть работы сосредоточена на распределенных вычислениях, основной целью, аналогично развитию Интернета, является разработка единой глобальной сети.

классификация

Грубо говоря, сеточные вычисления можно разделить на классы, такие как

  • Вычислительные сети (Computing Grids) : доступ к распределенным вычислительным ресурсам
  • Сетка данных (DataGrid) : доступ к распределенным базам данных
  • Ресурсные сетки
  • Сервисные сети
  • Сети знаний

Класс вычислительной сети сравним с электросетью , то есть электросетью : для этой цели потребитель вычислительной мощности устанавливает соединение с вычислительной сетью, аналогично потребителю электроэнергии к электросети. Все, что происходит за сокетом, там скрыто от потребителя; он просто пользуется предлагаемой услугой.

В классе сетки данных не только (высокопроизводительные) компьютерные системы участников взаимодействуют друг с другом, чтобы обеспечить вычислительную мощность, но и базы данных также связаны. Сетевой портал обычно предоставляет доступ к таким сеткам .

Кроме того, предоставление сетевых ресурсов является «сетевым», т.е. ЧАС. автоматический выбор из пула ресурсов на основе определенных параметров QoS . В идеале выбор ресурсов должен определяться приложением, то есть зависеть от приложения в вычислительной сетке или сетке данных.

Грид-вычисления


Гетерогенные вычислительные системы — электронные системы, использующие различные типы вычислительных блоков, работающих вместе для выполнения огромного количества заданий (операций, работ). Эта технология применяется для решения научных, математических задач, требующих значительных вычислительных ресурсов. Грид-вычисления используются также в коммерческой инфраструктуре для решения таких трудоёмких задач, как экономическое прогнозирование, сейсмоанализ, разработка и изучение свойств новых лекарств.

Грид с точки зрения сетевой организации представляет собой согласованную, открытую и стандартизованную среду, которая обеспечивает гибкое, безопасное, скоординированное разделение вычислительных ресурсов и ресурсов хранения информации, которые являются частью этой среды, в рамках одной виртуальной организации [2] .

Грид-вычисления можно организовать на базе множества устаревших моделей персональных компьютеров [3] объединённых в иерархическую локальную вычислительную сеть Ethernet [4] с присутствием серверов. Эта сеть может иметь соединение с интернетом.

Содержание

Научные проекты

EGEE / EGI

Проект EGEE (« Обеспечение сетей для электронной науки», ранее называвшийся «Обеспечение сетей для электронной науки в Европе»), завершившийся в марте 2006 г., является крупнейшим сетевым проектом в Европейском союзе и в настоящее время используется во всем мире. Он был продолжен под названием EGEE2 с апреля 2006 года. Проект был профинансирован ЕС на 32 миллиона евро на первом этапе и представляет собой крупнейшую в мире сетевую инфраструктуру.В 2010 году EGEE был заменен на Европейскую сетевую инфраструктуру (EGI).

Северный Угрид

Открытая сеть Nordugrid, основанная на промежуточном программном обеспечении ARC, возникла в результате слияния пяти скандинавских институтов.

XtreemOS

Создание и продвижение операционной системы на базе Linux для поддержки виртуальных организаций для сетей нового поколения - это проект, финансируемый Европейским союзом в рамках 6-й рамочной программы . Помимо 17 европейских партнеров по проекту, в XtreemOS также вовлечены двое из Китая . Он стартовал в июле 2006 года и продлится четыре года.

Neugrid

Neugrid - это проект, финансируемый Европейским Союзом в рамках 7-й рамочной программы. Его инфраструктура позволяет науке исследовать нейродегенеративные заболевания.

Инициативы национальной сетевой инфраструктуры

Как и в других странах (например, США: Cyberinfrastructure, UK: UK e-Science / OMII, NL: BIG-Grid), в Германии и Австрии также есть инициативы по созданию национальной сетевой инфраструктуры.

Технология облачных вычислений

Феномен облачных вычислений объединяет несколько различных концепций информационных технологий и представляет собой новую парадигму предоставления информационных ресурсов (аппаратных и программных комплексов). Со стороны владельца вычислительных ресурсов облачные вычисления ориентированы на предоставление информационных ресурсов внешним пользователям. Со стороны пользователя, облачные вычисления - это получение информационных ресурсов в виде услуги у внешнего поставщика, оплата за которую производится в зависимости от объема потребленных ресурсов согласно установленному тарифу. Ключевыми характеристиками облачных вычислений являются масштабируемость и виртуализация.

Типы GRID-систем

В настоящий время выделяют три основных типа GRID-систем:

  1. GRID на основе использования добровольно предоставляемого свободного ресурса персональных компьютеров (добровольная GRID);
  2. Научная GRID — хорошо распараллеливаемые приложения программируются специальным образом (например, с использованием Globus Toolkit);
  3. GRID на основе выделения вычислительных ресурсов по требованию (Enterprise GRID или коммерческая GRID) — обычные коммерческие приложения работают на виртуальном компьютере, который, в свою очередь, состоит из нескольких физических компьютеров, объединённых с помощью GRID-технологий.

Читайте также: