Введение

Использование широко распределенных компьютерных ресурсов для достижения общей цели производитель компьютеров. Grid computing – это использование широко распределенных компьютерных ресурсов для достижения общей цели. Вычислительная сетка может рассматриваться как распределенная система с неинтерактивными рабочими нагрузками, включающими множество файлов. Grid computing отличается от традиционных высокопроизводительных вычислительных систем, таких как кластерные вычисления, тем, что в вычислительной сетке каждый узел настроен на выполнение отдельной задачи или приложения. Компьютеры в сетях, как правило, более гетерогенны и географически распределены (следовательно, не физически связаны), чем кластерные компьютеры. Хотя одна вычислительная сетка может быть выделена для конкретного приложения, чаще всего сетка используется для различных целей. Сетки часто создаются с использованием универсальных библиотек программного обеспечения для сетей. Размеры сеток могут быть весьма значительными. Сетки – это форма распределенных вычислений, состоящая из множества слабо связанных компьютеров в сети, совместно выполняющих масштабные задачи. Для определенных приложений распределенные или сетевые вычисления можно рассматривать как особый вид параллельных вычислений, основанный на полноценных компьютерах (с бортовыми процессорами, хранилищами, блоками питания, сетевыми интерфейсами и т. д.), подключенных к компьютерной сети (частной или общедоступной) через стандартный сетевой интерфейс, такой как Ethernet. Это отличается от традиционного представления о суперкомпьютере, который имеет множество процессоров, соединенных локальной высокоскоростной компьютерной шиной. Эта технология была применена к сложным вычислительным научным, математическим и академическим задачам посредством добровольных вычислений, а также используется в коммерческих предприятиях для таких разнообразных приложений, как разработка лекарств, экономическое прогнозирование, сейсмический анализ и обработка данных бэк-офиса в поддержку электронной коммерции и веб-сервисов. Grid computing объединяет компьютеры из разных административных доменов для достижения общей цели, решения единой задачи и может затем так же быстро прекратить свое существование. Размер сетки может варьироваться от небольшого – ограниченного сетью компьютерных рабочих станций внутри корпорации, например – до крупных, публичных коллабораций, охватывающих множество компаний и сетей. "Понятие ограниченной сетки также может быть известно как кооперация внутри узлов, в то время как понятие более крупной, широкой сетки может относиться к кооперации между узлами". Координация приложений в сетях может быть сложной задачей, особенно при координации потока информации между распределенными вычислительными ресурсами. Системы рабочих процессов для сетей были разработаны как специализированная форма системы управления рабочими процессами, предназначенная специально для компоновки и выполнения серии вычислительных или манипулирующих данными шагов, или рабочего процесса, в контексте сетки.

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

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

Разработки и изменения

Одной из особенностей распределенных сетей является то, что они могут быть сформированы из вычислительных ресурсов, принадлежащих одному или нескольким пользователям или организациям (известным как множественные административные домены). Это может способствовать коммерческим операциям, как в случае с вычислительными услугами по требованию, или упростить создание сетей добровольных вычислений. Одним из недостатков этой особенности является то, что компьютеры, фактически выполняющие вычисления, могут оказаться недостаточно надежными. Поэтому разработчики системы должны предусмотреть меры для предотвращения сбоев или злонамеренных действий, которые могут привести к получению ложных, вводящих в заблуждение или ошибочных результатов, а также к использованию системы в качестве вектора атаки. Это часто включает в себя случайное распределение задач между различными узлами (предположительно принадлежащими разным владельцам) и проверку того, что как минимум два разных узла выдают один и тот же ответ для заданной рабочей единицы. Расхождения позволят выявить неисправные и злонамеренные узлы. Однако, из-за отсутствия централизованного контроля над аппаратным обеспечением, невозможно гарантировать, что узлы не будут отключаться от сети в случайные моменты времени. Некоторые узлы (например, ноутбуки или пользователи с dial-up подключением к интернету) могут быть доступны для вычислений, но не для сетевой связи в течение непредсказуемых периодов. Эти колебания можно учитывать, назначая большие рабочие единицы (что снижает потребность в постоянном сетевом соединении) и перераспределяя их, если узел не сообщает о результатах в ожидаемый срок. Другой набор проблем, которые можно назвать проблемами социальной совместимости, в первые дни развития сетей вычислений был связан со стремлением разработчиков расширить свои инновации за пределы первоначальной области высокопроизводительных вычислений и выйти за рамки дисциплинарных границ в новые области, такие как физика высоких энергий. Влияние доверия и доступности на производительность и сложность разработки может повлиять на выбор между развертыванием на выделенном кластере, на неиспользуемых машинах внутри организации-разработчика или на открытой внешней сети добровольцев или подрядчиков. Во многих случаях участвующие узлы должны доверять центральной системе, что она не злоупотребит предоставленным доступом, вмешиваясь в работу других программ, повреждая хранимую информацию, передавая конфиденциальные данные или создавая новые уязвимости в системе безопасности. Другие системы используют меры для снижения уровня доверия, необходимого "клиентским" узлам к центральной системе, например, размещая приложения в виртуальных машинах. Общедоступные системы или системы, пересекающие административные границы (включая различные отделы в одной организации), часто требуют работы на разнородных системах с использованием различных операционных систем и аппаратных архитектур. Для многих языков программирования существует компромисс между инвестициями в разработку программного обеспечения и количеством поддерживаемых платформ (и, следовательно, размером результирующей сети). Кроссплатформенные языки могут уменьшить необходимость в таком компромиссе, хотя потенциально за счет снижения производительности на конкретном узле (из-за интерпретации во время выполнения или отсутствия оптимизации для данной платформы). Различные проекты создали универсальную инфраструктуру, позволяющую различным научным и коммерческим проектам использовать конкретную связанную сеть или создавать новые сети. BOINC является распространенным примером для различных академических проектов, ищущих добровольцев; другие перечислены в конце статьи. Фактически, промежуточное ПО можно рассматривать как слой между аппаратным и программным обеспечением. Помимо промежуточного ПО, необходимо учитывать ряд технических областей, которые могут быть как зависимыми, так и независимыми от него. Примеры таких областей включают управление соглашениями об уровне обслуживания (SLA), доверие и безопасность, управление виртуальными организациями, управление лицензиями, порталы и управление данными. Эти технические области могут быть реализованы в коммерческом решении, хотя передовые разработки в каждой из них часто встречаются в конкретных исследовательских проектах, изучающих эту область.

Поставщик

Общий рынок вычислительных сетей включает в себя несколько специфических рынков. Это рынок промежуточного программного обеспечения для сетей, рынок приложений, поддерживающих сети, рынок вычислительных ресурсов по запросу и рынок программного обеспечения как услуги (SaaS). Промежуточное программное обеспечение для сетей – это специализированный программный продукт, обеспечивающий совместное использование разнородных ресурсов и виртуальных организаций. Оно устанавливается и интегрируется в существующую инфраструктуру участвующих компаний и предоставляет специальный слой между разнородной инфраструктурой и конкретными пользовательскими приложениями. Основными промежуточными программными продуктами для сетей являются Globus Toolkit, gLite и UNICORE. Вычислительные ресурсы по запросу – это предоставление вычислительных сетей и приложений как услуги, либо в виде открытой сетевой утилиты, либо в виде решения для хостинга для одной организации или виртуальной организации. Крупнейшими игроками на рынке вычислительных ресурсов по запросу являются Sun Microsystems, IBM и HP. Приложения, поддерживающие сети, – это специализированные программные приложения, способные использовать сетевую инфраструктуру. Это становится возможным благодаря использованию промежуточного программного обеспечения для сетей, как указано выше. Программное обеспечение как услуга (SaaS) – это «программное обеспечение, которое принадлежит, предоставляется и управляется удаленно одним или несколькими поставщиками» (Gartner 2007). Кроме того, приложения SaaS основаны на едином наборе общих кодов и определений данных. Они потребляются по модели «один ко многим», а SaaS использует модель оплаты по факту использования (PAYG) или модель подписки, основанную на объеме использования. Поставщики SaaS не обязательно владеют самими вычислительными ресурсами, необходимыми для работы их SaaS. Поэтому поставщики SaaS могут использовать рынок вычислительных ресурсов по запросу. Рынок вычислительных ресурсов по запросу предоставляет вычислительные ресурсы для поставщиков SaaS.

С пользовательской стороны

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

Процессорная очистка

Использование вычислительных ресурсов в режиме ожидания, перехват вычислительных циклов или распределенные вычисления создают «сеть» из неиспользуемых ресурсов в сети участников (как глобальной, так и внутри организации). Обычно эта техника использует «свободные» циклы процессора, возникающие из-за периодической неактивности, которая обычно наблюдается ночью, во время обеденных перерывов или даже в (относительно небольшие, но многочисленные) моменты простоя, которые испытывают современные настольные процессоры в течение дня (когда компьютер ожидает ввод-вывод от пользователя, сети или хранилища). На практике, участвующие компьютеры также предоставляют некоторое дополнительное дисковое пространство, оперативную память и пропускную способность сети, помимо чистой вычислительной мощности процессора. Многие проекты добровольных вычислений, такие как BOINC, используют модель использования ресурсов в режиме ожидания. Поскольку узлы могут периодически отключаться, так как их владельцы используют ресурсы для своих основных задач, эта модель должна быть разработана для обработки подобных ситуаций. Создание оппортунистической среды – это еще одна реализация использования ресурсов в режиме ожидания, где специальная система управления рабочей нагрузкой собирает неактивные настольные компьютеры для выполнения ресурсоемких задач, также известная как Enterprise Desktop Grid (EDG). Например, HTCondor (программный фреймворк с открытым исходным кодом для высокопроизводительных вычислений, предназначенный для распределенной рационализации ресурсоемких задач) может быть настроена на использование только тех настольных компьютеров, у которых клавиатура и мышь находятся в неактивном состоянии, чтобы эффективно использовать неиспользуемую мощность процессора простаивающих рабочих станций. Как и другие полнофункциональные системы пакетной обработки, HTCondor предоставляет механизм постановки задач в очередь, политику планирования, схему приоритетов, мониторинг ресурсов и управление ресурсами. Его можно использовать для управления рабочей нагрузкой на выделенном кластере компьютеров, а также для бесшовной интеграции как выделенных ресурсов (кластеров, смонтированных в стойке), так и не выделенных настольных машин (перехват вычислительных циклов) в единую вычислительную среду.

История

Термин "сетевые вычисления" возник в начале 1990-х годов как метафора, призванная сделать вычислительные ресурсы такими же легкодоступными, как электроэнергия. Метафора электросети для доступных вычислений быстро стала общепринятой, когда Ян Фостер и Карл Кесселман опубликовали свою основополагающую работу "Сетка: проект новой вычислительной инфраструктуры" (1999). Ей предшествовала, на десятилетия, метафора "вычислений как коммунальной услуги" (1961): вычисления, предоставляемые как общедоступная услуга, аналогично телефонной связи. Использование свободных вычислительных ресурсов и добровольные вычисления получили распространение, начиная с 1997 года, благодаря distributed.net, а позднее, в 1999 году, благодаря SETI@home, для использования вычислительной мощности компьютеров по всему миру с целью решения сложных исследовательских задач. Идеи, лежащие в основе концепции "сетки" (включая идеи распределенных вычислений, объектно-ориентированного программирования и веб-сервисов), были объединены Яном Фостером и Стивом Тюке из Чикагского университета и Карлом Кесселманом из Института информационных наук Университета Южной Калифорнии. Эта троица, возглавившая разработку Globus Toolkit, широко признана "отцами-основателями" сетевых вычислений. Этот инструментарий включает в себя не только управление вычислениями, но и управление хранилищем данных, обеспечение безопасности, передачу данных, мониторинг, а также набор инструментов для разработки дополнительных сервисов на базе той же инфраструктуры, включая механизмы согласования, уведомления, запуска задач и агрегацию информации. Хотя Globus Toolkit остается де-факто стандартом для создания решений в области сетевых вычислений, было разработано множество других инструментов, реализующих лишь часть необходимых сервисов для создания корпоративной или глобальной сети. В 2007 году термин "облачные вычисления" приобрел популярность, и концептуально он схож с каноническим определением сетевых вычислений, данным Фостером (в плане потребления вычислительных ресурсов подобно потреблению электроэнергии из электросети), и с более ранней концепцией "вычислений как коммунальной услуги".

Прогресс

В ноябре 2006 года Сейдель получил премию Сидни Фернбаха на конференции по суперкомпьютерам в Тампе, штат Флорида. "За выдающийся вклад в разработку программного обеспечения для высокопроизводительных вычислений (HPC) и Grid-технологий, обеспечивающего совместное численное исследование сложных физических задач, в частности, моделирование столкновений черных дыр". Эта награда, являющаяся одной из высших наград в области вычислительной техники, была присуждена за его достижения в численной относительности.

Самые быстрые виртуальные суперкомпьютеры

По состоянию на март 2020 года, Folding@home – 1,1 экзаФЛОПС. По состоянию на 7 апреля 2020 года, BOINC – 29,8 ПФЛОПС. По состоянию на ноябрь 2019 года, IceCube через OSG – 350 fp32 ПФЛОПС. По состоянию на февраль 2018 года, Einstein@Home – 3,489 ПФЛОПС. По состоянию на 7 апреля 2020 года, SETI@Home – 1,11 ПФЛОПС. По состоянию на 7 апреля 2020 года, MilkyWay@Home – 1,465 ПФЛОПС. По состоянию на март 2019 года, GIMPS – 0,558 ПФЛОПС. Также, по состоянию на март 2019 года, сеть Bitcoin обладала измеренной вычислительной мощностью, эквивалентной более 80 000 экзаФЛОПС (операций с плавающей запятой в секунду). Это измерение отражает количество FLOPS, необходимое для получения хеш-выхода сети Bitcoin, а не её производительность в общих операциях с плавающей запятой, поскольку элементы сети Bitcoin (ASIC-майнеры Bitcoin) выполняют только специфические криптографические хеш-вычисления, требуемые протоколом Bitcoin.

Проекты и заявки

Вычисления в сетях предлагают способ решения сложных задач, таких как свертывание белков, финансовое моделирование, моделирование землетрясений и климата/погоды, и сыграли важную роль в создании Большого адронного коллайдера в CERN. Сети обеспечивают оптимальное использование ИТ-ресурсов внутри организации. Они также предоставляют возможность предлагать ИТ-услуги как коммунальные услуги для коммерческих и некоммерческих клиентов, где оплата взимается только за фактически использованные ресурсы, как в случае с электричеством или водой. По состоянию на октябрь 2016 года более 4 миллионов машин, работающих на платформе Berkeley Open Infrastructure for Network Computing (BOINC), являлись участниками World Community Grid, в рамках интегрированного проекта, финансируемого по Шестой рамочной программе (ШРП6). Проект стартовал 1 июня 2006 года и продолжался 42 месяца, до ноября 2009 года. Координатором проекта выступала компания Atos Origin. Согласно информационному листу проекта, его миссия заключалась в “создании эффективных путей для стимулирования внедрения сетевых вычислений в ЕС и поощрения исследований инновационных бизнес-моделей с использованием сетевых технологий”. Для выявления передового опыта и общих тенденций из экспериментальных внедрений две группы консультантов анализируют серию пилотных проектов – технический и бизнес-ориентированный. Проект значим не только своей продолжительностью, но и бюджетом в 24,8 миллиона евро, что является самым большим бюджетом среди всех интегрированных проектов ШРП6. Из этой суммы 15,7 миллиона евро предоставила Европейская комиссия, а остальное – 98 компаний-партнеров. После завершения проекта результаты BEinGRID были приняты и продолжены компанией IT Tude.com. Проект Enabling Grids for E sciencE, базирующийся в Европейском Союзе и включавший площадки в Азии и Соединенных Штатах, являлся продолжением Европейской сети данных (EDG) и развился в Европейскую сетевую инфраструктуру. Вместе со Всемирной вычислительной сетью LHC (WLCG) она была разработана для поддержки экспериментов, использующих Большой адронный коллайдер CERN. Список активных площадок, участвующих в WLCG, доступен в сети Интернет, как и мониторинг инфраструктуры EGEE в режиме реального времени. Соответствующее программное обеспечение и документация также находятся в открытом доступе. Существуют предположения, что выделенные волоконно-оптические линии связи, такие как те, что были установлены CERN для удовлетворения потребностей WLCG в интенсивной обработке данных, однажды могут стать доступными для домашних пользователей, обеспечивая интернет-услуги со скоростью до 10 000 раз превышающей скорость традиционного широкополосного соединения. Европейская сетевая инфраструктура также использовалась для других исследовательских работ и экспериментов, например, для моделирования онкологических клинических испытаний. Проект distributed.net был запущен в 1997 году. NASA Advanced Supercomputing facility (NAS) запускала генетические алгоритмы, используя сборщик циклов Condor на примерно 350 рабочих станциях Sun Microsystems и SGI. В 2001 году United Devices управляла проектом United Devices Cancer Research Project на базе своего продукта Grid MP, который собирает неиспользуемые вычислительные циклы на добровольных ПК, подключенных к Интернету. Проект работал на около 3,1 миллиона машин до его закрытия в 2007 году.

Международные проекты

Название Регион Начало Конец Европейская сетевая инфраструктура (EGI) Европа Май 2010 Декабрь 2014 Открытый межпрограммный инфраструктурный институт Европы (OMII Europe) Европа Май 2006 Май 2008 Включение сетей для электронных наук (EGEE, EGEE II и EGEE III) Европа Март 2004 Апрель 2010 Сеть с поддержкой удаленного оборудования с распределенным управлением и вычислениями (GridCC) Европа Сентябрь 2005 Сентябрь 2008 Европейская инициатива в области промежуточного программного обеспечения (EMI) Европа Май 2010 действует KnowARC Европа Июнь 2006 Ноябрь 2009 Североевропейская сеть данных Скандинавия и Финляндия Июнь 2006 Декабрь 2012 Всемирная сеть сообщества Глобальная Ноябрь 2004 действует XtreemOS Европа Июнь 2006 (Май 2010) продлена до Сентября 2010 OurGrid Бразилия Декабрь 2004 действует