Xgrid — это запатентованная программа и протокол сетевых вычислений , разработанные подразделением Advanced Computation Group компании Apple Inc. [ 3]
Он предоставляет сетевым администраторам метод создания вычислительного кластера , который позволяет им использовать ранее неиспользуемую вычислительную мощность для вычислений, которые можно легко разделить на более мелкие операции, такие как карты Мандельброта . Настройка кластера Xgrid может быть выполнена практически бесплатно, поскольку клиент Xgrid предварительно установлен на всех компьютерах под управлением Mac OS X 10.4 до Mac OS X 10.7 . Клиент Xgrid не был включен в Mac OS X 10.8 . Контроллер Xgrid, планировщик заданий операции Xgrid, также включен в Mac OS X Server и доступен для бесплатной загрузки с сайта Apple. Apple сохранила минималистичный механизм управления заданиями командной строки, предоставив API для разработки более сложных инструментов, построенных вокруг него.
Программа использует собственный протокол связи , наложенный поверх схемы, для связи с другими узлами. Этот протокол связи взаимодействует с инфраструктурой BEEP , фреймворком протокола сетевого приложения . Компьютеры, обнаруженные системой Xgrid, то есть компьютеры с включенной службой Xgrid Mac OS X, автоматически добавляются в список доступных компьютеров для использования в задачах обработки.
Когда инициирующий компьютер отправляет контроллеру полные инструкции или задание для обработки , контроллер разбивает задачу на эти небольшие пакеты инструкций , известные как задачи . Конструкция системы Xgrid состоит из этих небольших пакетов, передаваемых на все компьютеры с поддержкой Xgrid в сети. Эти компьютеры, или узлы , выполняют инструкции, предоставленные контроллером, а затем возвращают результаты. Контроллер собирает результаты отдельных задач в результаты полного задания и возвращает их инициирующему компьютеру.
Apple смоделировала дизайн Xgrid на основе программы Zilla, распространяемой с интерфейсом прикладного программирования операционной системы OpenStep ( API ) NeXT , права на который принадлежали Apple. Компания также решила предоставить клиентской версии Mac OS X только функции командной строки и небольшую гибкость, в то время как серверная версия Xgrid для Mac OS X получила панель управления GUI и полный набор функций.
Истоки Xgrid можно проследить до приложения Zilla от NeXT, созданного ученым Ричардом Крэндаллом в конце 1980-х годов. Zilla была первой программой распределенных вычислений, выпущенной на операционной системе конечного пользователя , и которая использовала мотив заставки в режиме ожидания, особенность дизайна, которая с тех пор встречается в широко используемых проектах, таких как Seti@Home . [1] [4] Zilla выиграла национальную премию Computerworld Smithsonian (научная категория) в 1991 году за простоту использования и хороший дизайн. [5] Apple приобрела Zilla вместе с остальной частью NeXT в 1997 году, [6] и использовала Zilla в качестве вдохновения для Xgrid. [1] Xgrid Technology Preview 1 был выпущен в январе 2004 года, [7] [3] [8] за которым последовал Technology Preview 2 в ноябре 2004 года. Xgrid 1.0 был выпущен как часть Mac OS X 10.4 Tiger в апреле 2005 года. [8]
Несколько организаций внедрили Xgrid в крупных международных вычислительных сетях. Одним из примеров кластера Xgrid является OpenMacGrid от MacResearch, где ученые могут запрашивать доступ к большим объемам вычислительной мощности для выполнения задач, связанных с их исследованиями. [9] [10] Другим примером был ныне несуществующий проект Xgrid@Stanford, который использовал ряд компьютеров в кампусе Стэнфордского университета и по всему миру [11] для проведения биохимических исследований. [12] [13] [14]
В отчете, освещающем анонс, Macworld упомянул Xgrid среди функций Unix в «10 фактах, которые нужно знать о Tiger», назвав его «удобным, если вы работаете с огромными объемами экспериментальных данных или визуализируете сложную анимацию». [15] После представления Xgrid в 2004 году InfoWorld отметил, что это «технология предварительного уровня», которая напрямую выиграет от запуска Xserve G5 в том же году. [16] Комментатор InfoWorld Эфраим Шварц также предсказал, что Xgrid станет первым шагом Apple на пути к выходу на рынок корпоративных вычислений. [17] [8]
Apple прекратила поддержку Xgrid в OS X 10.8 Mountain Lion [ 18] вместе с зависимыми сервисами, такими как Podcast Producer. [19] [20]
Протокол Xgrid использует сетевую структуру BEEP для связи с узлами в сети. Инфраструктура системы включает три типа компьютеров, которые взаимодействуют по протоколу:
Компьютер может действовать как один или все три из этих компонентов одновременно. Протокол Xgrid обеспечивает базовую инфраструктуру для связи компьютеров , но не участвует в обработке указанного вычисления. [22] Xgrid нацелен на трудоемкие вычисления, которые можно легко разделить на более мелкие задачи, иногда называемые смущающе параллельными задачами. [23] Сюда входят вычисления Монте-Карло , 3D-рендеринг и карты Мандельброта . [22]
В рамках протокола Xgrid на другие компьютеры в том же кластере могут передаваться три типа сообщений : запросы, уведомления и ответы. На запросы получатель должен ответить ответом, уведомления не требуют ответа, а ответы являются ответами на отправленные сообщения. Они идентифицируются по имени , типу (запрос/уведомление/ответ) и содержимому. Каждое сообщение инкапсулируется в сообщение BEEP (BEEP MSG) и подтверждается при получении пустым ответом (RPY). [7] Xgrid не использует инфраструктуру сообщений/ответов BEEP. Любое полученное сообщение, требующее ответа, просто генерирует независимое сообщение BEEP, содержащее ответ. Сообщения Xgrid кодируются как словари пар ключ/значение, которые преобразуются в XML перед отправкой по сети BEEP.
Архитектура системы Xgrid разработана вокруг системы, основанной на заданиях; контроллер отправляет задания агентам, а агенты возвращают ответы. Фактическое вычисление, которое контроллер выполняет в системе Xgrid, известно как задание. Задание содержит все файлы, необходимые для успешного выполнения задачи, такие как входные параметры , файлы данных , каталоги , исполняемые файлы и/или скрипты оболочки , файлы, включенные в задание Xgrid, должны иметь возможность выполняться как одновременно, так и асинхронно, иначе любые преимущества выполнения такого задания в Xgrid будут потеряны. После завершения задания контроллер может быть настроен на уведомление клиента о завершении или сбое задачи, например, по электронной почте . Клиент может покинуть сеть во время выполнения задач. Он также может отслеживать статус задания по требованию, запрашивая контроллер, хотя он не может отслеживать текущий ход выполнения отдельных задач. [24] [8]
Контроллер играет центральную роль в правильном функционировании Xgrid, поскольку этот узел отвечает за распределение, контроль и координацию задач на агентах. Программа, работающая на контроллере, может назначать и переназначать задачи для обработки сбоев отдельных агентов по требованию. Количество задач, назначенных агенту, зависит от двух факторов: количества агентов на Xgrid и количества процессоров в каждом узле. Количество агентов на Xgrid определяет, как контроллер будет назначать задачи. Задачи могут быть назначены одновременно для большого количества агентов или поставлены в очередь для небольшого количества агентов. Когда на Xgrid обнаружен узел с более чем одним процессором, контроллер может назначить одну задачу на процессор; это происходит только в том случае, если количество агентов в сети меньше количества задач, которые должен выполнить контроллер. [24]
Xgrid основан на Blocks Extensible Exchange Protocol (BEEP), стандарте IETF, сопоставимом с HTTP , но с упором на двустороннюю мультиплексную связь, такую как та, что встречается в одноранговых сетях . BEEP, в свою очередь, использует XML для определения профилей для связи между несколькими агентами через одну сеть или интернет-соединение. [25]
Программное обеспечение агента Xgrid было доступно для систем Unix и Linux . [26]
Хотя к Xgrid можно получить доступ из командной строки, графический пользовательский интерфейс Xgrid, программа, входящая в комплект Mac OS X Server и, по состоянию на март 2009 года, доступная в сети, является гораздо более эффективным способом администрирования системы Xgrid. Первоначально агент Xgrid был включен во все установки Mac OS X 10.4 Tiger , но графический интерфейс был зарезервирован для пользователей Mac OS X Server . Это решение ограничило усилия компьютерного сообщества по принятию платформы. В конце концов, Apple выпустила Mac OS X Server Administration Tools для публики, включавшие приложение администрирования Xgrid, входящее в комплект Mac OS X Server. [27]
Несмотря на отсутствие графического интерфейса контроллера в стандартном (несерверном) дистрибутиве Mac OS X , можно настроить контроллер Xgrid с помощью инструментов командной строкиxgridctl
и . После запуска демонаxgrid
контроллера Xgrid становится возможным администрирование сетки с помощью инструмента Xgrid Admin от Apple. [27] Некоторые приложения, такие как VisualHub, предоставляют возможности контроллера Xgrid через свои пользовательские интерфейсы. [28] [29]
{{cite conference}}
: CS1 maint: DOI неактивен по состоянию на сентябрь 2024 г. ( ссылка )