stringtranslate.com

Компьютерный кластер

Технические специалисты работают над большим кластером Linux в Технологическом университете Хемница , Германия.
Кластер Sun Microsystems Solaris с внутрирядным охлаждением
В серии Taiwania используется кластерная архитектура большой мощности, которая помогла учёным Тайваня и многим другим во время COVID-19 .

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

Компоненты кластера обычно связаны друг с другом через быстрые локальные сети , при этом на каждом узле (компьютере, используемом в качестве сервера) работает собственный экземпляр операционной системы . В большинстве случаев все узлы используют одно и то же оборудование [1] [ требуется лучший исходный код ] и одну и ту же операционную систему, хотя в некоторых конфигурациях (например, с использованием ресурсов кластерных приложений с открытым исходным кодом (OSCAR)), на них могут использоваться разные операционные системы. каждый компьютер или различное оборудование. [2]

Кластеры обычно развертываются для повышения производительности и доступности по сравнению с одиночным компьютером, при этом они обычно намного более экономичны, чем отдельные компьютеры с сопоставимой скоростью или доступностью. [3]

Компьютерные кластеры возникли в результате сближения ряда компьютерных тенденций, включая доступность недорогих микропроцессоров, высокоскоростных сетей и программного обеспечения для высокопроизводительных распределенных вычислений . [ нужна цитация ] Они имеют широкий спектр применения и развертывания, начиная от кластеров малого бизнеса с несколькими узлами и заканчивая одними из самых быстрых суперкомпьютеров в мире, таких как IBM Sequoia . [4] До появления кластеров использовались одноблочные отказоустойчивые мейнфреймы с модульной избыточностью ; однако более низкая первоначальная стоимость кластеров и повышенная скорость сетевой структуры способствовали внедрению кластеров. В отличие от мэйнфреймов с высокой надежностью, кластеры дешевле масштабировать, но также имеют повышенную сложность обработки ошибок, поскольку в кластерах режимы ошибок не являются непрозрачными для запущенных программ. [5]

Базовые концепты

Простой кластер «Беовульф» , собранный в домашних условиях.

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

Подход компьютерной кластеризации обычно (но не всегда) соединяет ряд легкодоступных вычислительных узлов (например, персональные компьютеры, используемые в качестве серверов) через быструю локальную сеть . [6] Деятельность вычислительных узлов управляется «промежуточным программным обеспечением кластеризации», программным уровнем, который располагается поверх узлов и позволяет пользователям рассматривать кластер как в целом единую связную вычислительную единицу, например, посредством концепции единого образа системы . [6]

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

Компьютерный кластер может представлять собой простую двухузловую систему, соединяющую два персональных компьютера, или очень быстрый суперкомпьютер . Базовый подход к созданию кластера — это кластер «Беовульф» , который можно построить из нескольких персональных компьютеров, чтобы создать экономически эффективную альтернативу традиционным высокопроизводительным вычислениям . Ранним проектом, показавшим жизнеспособность концепции, стал 133-узловой суперкомпьютер Stone . [7] Разработчики использовали Linux , набор инструментов Parallel Virtual Machine и библиотеку интерфейса передачи сообщений для достижения высокой производительности при относительно низких затратах. [8]

Хотя кластер может состоять всего из нескольких персональных компьютеров, соединенных простой сетью, кластерную архитектуру можно также использовать для достижения очень высокого уровня производительности. Полугодовой список 500 быстрейших суперкомпьютеров организации TOP500 часто включает множество кластеров, например, самой быстрой машиной в мире в 2011 году был компьютер K с распределенной памятью и кластерной архитектурой. [9]

История

А ВАКС 11/780, гр. 1977 г., использовался на ранних стадиях разработки VAXcluster.

Грег Пфистер заявил, что кластеры были изобретены не каким-то конкретным поставщиком, а клиентами, которые не могли разместить всю свою работу на одном компьютере или нуждались в резервной копии. [10] По оценкам Пфистера, эта дата относится к 1960-м годам. Формальная инженерная основа кластерных вычислений как средства выполнения любой параллельной работы, возможно, была изобретена Джином Амдалом из IBM , который в 1967 году опубликовал то, что стало считаться основополагающим документом по параллельной обработке: Закон Амдала .

История первых компьютерных кластеров более или менее напрямую связана с историей ранних сетей, поскольку одним из основных мотивов развития сети было объединение вычислительных ресурсов, создавая фактический компьютерный кластер.

Первой производственной системой, спроектированной как кластер, была Burroughs B5700, созданная в середине 1960-х годов. Это позволяло подключать до четырех компьютеров, каждый из которых имел один или два процессора, к общей подсистеме дискового хранения для распределения рабочей нагрузки. В отличие от стандартных многопроцессорных систем, каждый компьютер можно было перезагрузить, не нарушая общую работу.

Тандем НонСтоп II около 1980 г.

Первым коммерческим продуктом слабосвязанной кластеризации была система «Attached Resource Computer» (ARC) корпорации Datapoint , разработанная в 1977 году и использующая ARCnet в качестве интерфейса кластера. Кластеризация как таковая не получила широкого распространения до тех пор, пока Digital Equipment Corporation не выпустила в 1984 году свой продукт VAXcluster для операционной системы VMS . Продукты ARC и VAXcluster поддерживали не только параллельные вычисления , но и общие файловые системы и периферийные устройства. Идея заключалась в том, чтобы обеспечить преимущества параллельной обработки, сохраняя при этом надежность и уникальность данных. Двумя другими заслуживающими внимания ранними коммерческими кластерами были Tandem NonStop (коммерческий продукт высокой доступности 1976 года) [11] [12] и IBM S/390 Parallel Sysplex (около 1994 года, в основном для бизнес-использования).

В то же время, в то время как компьютерные кластеры использовали параллелизм вне компьютера в обычной сети, суперкомпьютеры начали использовать его внутри одного компьютера. После успеха CDC 6600 в 1964 году, в 1976 году был выпущен Cray 1 , в котором был реализован внутренний параллелизм посредством векторной обработки . [13] В то время как ранние суперкомпьютеры исключали кластеры и полагались на общую память , со временем некоторые из самых быстрых суперкомпьютеров (например, компьютер K ) полагались на кластерную архитектуру.

Атрибуты кластеров

Кластер балансировки нагрузки с двумя серверами и N пользовательскими станциями.

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

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

Компьютерные кластеры используются для задач с интенсивными вычислениями, а не для обработки операций ввода-вывода, таких как веб-сервисы или базы данных. [15] Например, компьютерный кластер может поддерживать вычислительное моделирование аварий транспортных средств или погоды. Очень тесно связанные компьютерные кластеры предназначены для работы, которая может приближаться к « суперкомпьютерам ».

« Кластеры высокой доступности » (также известные как отказоустойчивые кластеры или кластеры высокой доступности) повышают доступность кластерного подхода. Они работают за счет резервных узлов , которые затем используются для предоставления услуг в случае сбоя компонентов системы. Реализации кластера высокой доступности пытаются использовать избыточность компонентов кластера для устранения единых точек отказа . Существуют коммерческие реализации кластеров высокой доступности для многих операционных систем. Проект Linux-HA — это один из широко используемых бесплатных программных пакетов высокой доступности для операционной системы Linux .

Преимущества

Кластеры в первую очередь разрабатываются с учетом производительности, но их установка зависит от многих других факторов. Отказоустойчивость ( способность системы продолжать работу с неисправным узлом ) обеспечивает масштабируемость , а в ситуациях с высокой производительностью — низкую частоту процедур обслуживания, консолидацию ресурсов (например, RAID ) и централизованное управление. Преимущества включают возможность восстановления данных в случае аварии, а также параллельную обработку данных и высокую вычислительную мощность. [16] [17]

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

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

Если у вас есть большое количество компьютеров, объединенных в кластер, можно использовать распределенные файловые системы и RAID , которые могут повысить надежность и скорость кластера.

Дизайн и конфигурация

Типичная конфигурация Беовульфа

Одна из проблем при проектировании кластера заключается в том, насколько тесно могут быть связаны отдельные узлы. Например, одно компьютерное задание может потребовать частого обмена данными между узлами: это означает, что кластер использует выделенную сеть, плотно расположен и, вероятно, имеет однородные узлы. Другая крайность — это когда компьютерная задача использует один или несколько узлов и практически не требует связи между узлами, что приближается к грид-вычислениям .

В кластере Беовульф прикладные программы никогда не видят вычислительные узлы (также называемые подчиненными компьютерами), а взаимодействуют только с «главным компьютером», который представляет собой конкретный компьютер, осуществляющий планирование и управление подчиненными компьютерами. [15] В типичной реализации Мастер имеет два сетевых интерфейса: один из них связывается с частной сетью Beowulf для подчиненных устройств, другой — с сетью общего назначения организации. [15] Подчиненные компьютеры обычно имеют собственную версию одной и той же операционной системы, а также локальную память и дисковое пространство. Однако частная подчиненная сеть может также иметь большой общий файловый сервер, на котором хранятся глобальные постоянные данные, к которым подчиненные устройства получают доступ по мере необходимости. [15]

Специальный кластер DEGIMA из 144 узлов настроен на выполнение астрофизических симуляций N-тел с использованием параллельного древовидного кода Multiple-Walk, а не на научные вычисления общего назначения. [18]

В связи с увеличением вычислительной мощности каждого поколения игровых консолей появилось новое применение, когда они перепрофилируются в кластеры высокопроизводительных вычислений (HPC). Некоторыми примерами кластеров игровых консолей являются кластеры Sony PlayStation и кластеры Microsoft Xbox . Еще одним примером потребительского игрового продукта является персональная суперкомпьютерная рабочая станция Nvidia Tesla , в которой используются процессоры с несколькими графическими ускорителями. Помимо игровых консолей, вместо них можно использовать и видеокарты высокого класса. Использование видеокарт (или, скорее, их графических процессоров) для выполнения вычислений в грид-вычислениях гораздо более экономично, чем использование процессоров, хотя и менее точно. Однако при использовании значений двойной точности они становятся такими же точными в работе, как и процессоры, и при этом обходятся гораздо дешевле (стоимость приобретения). [2]

Компьютерные кластеры исторически работали на отдельных физических компьютерах с одной и той же операционной системой . С появлением виртуализации узлы кластера могут работать на отдельных физических компьютерах с разными операционными системами, которые нарисованы выше виртуальным слоем, чтобы выглядеть одинаково. [19] [ необходима ссылка ] [ необходимы разъяснения ] Кластер также может быть виртуализирован в различных конфигурациях по мере проведения обслуживания; Примером реализации является Xen в качестве менеджера виртуализации с Linux-HA . [19]

Обмен данными и общение

Обмен данными

Кластер NEC Nehalem

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

Однако использование кластерной файловой системы имеет важное значение в современных компьютерных кластерах. [ нужна цитация ] Примеры включают IBM General Parallel File System , Cluster Shared Volumes Microsoft или Oracle Cluster File System .

Передача сообщений и общение

Два широко используемых подхода для связи между узлами кластера — это MPI ( интерфейс передачи сообщений ) и PVM ( параллельная виртуальная машина ). [20]

PVM был разработан в Национальной лаборатории Ок-Ридж примерно в 1989 году, до того, как стал доступен MPI. PVM должен быть установлен непосредственно на каждом узле кластера и предоставляет набор программных библиотек, которые рисуют узел как «параллельную виртуальную машину». PVM обеспечивает среду выполнения для передачи сообщений, управления задачами и ресурсами, а также уведомления о неисправностях. PVM может использоваться пользовательскими программами, написанными на C, C++, Fortran и т. д. [20] [21]

MPI возник в начале 1990-х годов в результате дискуссий между 40 организациями. Первоначальное усилие было поддержано ARPA и Национальным научным фондом . Вместо того, чтобы начинать заново, при разработке MPI использовались различные функции, доступные в коммерческих системах того времени. Спецификации MPI затем привели к появлению конкретных реализаций. Реализации MPI обычно используют соединения TCP/IP и сокеты. [20] MPI в настоящее время является широко доступной моделью связи, которая позволяет писать параллельные программы на таких языках, как C , Fortran , Python и т. д. [21] Таким образом, в отличие от PVM, который обеспечивает конкретную реализацию, MPI представляет собой спецификацию, которая была реализован в таких системах, как MPICH и Open MPI . [21] [22]

Управление кластером

Недорогой и энергосберегающий крошечный кластер Cubieboards с использованием Apache Hadoop на Lubuntu.
Предварительный образец кластерной компьютерной системы Ground Electronics/AB Open Circumference C25, оснащенный 8 платами Raspberry Pi 3 Model B+ и 1 платой UDOO x86.

Одной из проблем при использовании компьютерного кластера является стоимость его администрирования, которая иногда может достигать стоимости администрирования N независимых машин, если кластер имеет N узлов. [23] В некоторых случаях это дает преимущество архитектурам с общей памятью с меньшими затратами на администрирование. [23] Это также сделало виртуальные машины популярными благодаря простоте администрирования. [23]

Планирование задач

Когда большому многопользовательскому кластеру требуется доступ к очень большим объемам данных, планирование задач становится проблемой. В гетерогенном кластере CPU-GPU со сложной средой приложений производительность каждого задания зависит от характеристик базового кластера. Поэтому сопоставление задач с ядрами ЦП и устройствами графического процессора представляет собой серьезную проблему. [24] Это область продолжающихся исследований; были предложены и изучены алгоритмы, которые объединяют и расширяют MapReduce и Hadoop . [24]

Управление сбоями узлов

Когда узел в кластере выходит из строя, для поддержания работоспособности остальной части системы можно использовать такие стратегии, как « ограждение ». [25] [26] Ограждение — это процесс изоляции узла или защиты общих ресурсов, когда узел неисправен. Существует два класса методов ограждения; один отключает сам узел, а другой запрещает доступ к ресурсам, таким как общие диски. [25]

Метод STONITH означает «Выстрелить другой узел в голову», что означает, что подозреваемый узел отключен или выключен. Например, при ограждении электропитания используется контроллер мощности для отключения неработоспособного узла. [25]

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

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

Параллельное программирование

Кластеры с балансировкой нагрузки, такие как веб-серверы, используют кластерную архитектуру для поддержки большого количества пользователей, и обычно каждый пользовательский запрос направляется на определенный узел, обеспечивая параллелизм задач без взаимодействия нескольких узлов, учитывая, что основная цель системы — обеспечить быстрое доступ к общим данным. Однако «компьютерным кластерам», которые выполняют сложные вычисления для небольшого числа пользователей, необходимо воспользоваться возможностями параллельной обработки кластера и разделить «одни и те же вычисления» между несколькими узлами. [27]

Автоматическое распараллеливание программ остается технической проблемой, но модели параллельного программирования можно использовать для достижения более высокой степени параллелизма за счет одновременного выполнения отдельных частей программы на разных процессорах. [27] [28]

Отладка и мониторинг

Для разработки и отладки параллельных программ в кластере требуются примитивы параллельного языка и подходящие инструменты, подобные тем, которые обсуждались на Форуме высокопроизводительной отладки (High Performance Debugging Forum , HPDF), результатом которого стали спецификации HPD. [21] [29] Затем были разработаны такие инструменты, как TotalView, для отладки параллельных реализаций в компьютерных кластерах, которые используют интерфейс передачи сообщений (MPI) или параллельную виртуальную машину (PVM) для передачи сообщений.

Система Network of Workstations (NOW) Калифорнийского университета в Беркли собирает данные кластеров и сохраняет их в базе данных, а такая система, как PARMON, разработанная в Индии, позволяет визуально наблюдать и управлять большими кластерами. [21]

Контрольные точки приложения можно использовать для восстановления заданного состояния системы в случае сбоя узла во время длительных многоузловых вычислений. [30] Это важно для больших кластеров, поскольку по мере увеличения количества узлов увеличивается и вероятность отказа узла при больших вычислительных нагрузках. Контрольные точки могут вернуть систему в стабильное состояние, чтобы можно было возобновить обработку без необходимости повторного вычисления результатов. [30]

Реализации

Мир Linux поддерживает различное кластерное программное обеспечение; для кластеризации приложений есть distcc и MPICH . Linux Virtual Server , Linux-HA — кластеры на базе директоров, позволяющие распределять входящие запросы на услуги по нескольким узлам кластера. MOSIX , LinuxPMI , Kerriged , OpenSSI — полноценные кластеры, интегрированные в ядро , обеспечивающие автоматическую миграцию процессов между однородными узлами. OpenSSI , openMosix и Kerriged — реализации односистемных образов .

Компьютерный кластер Microsoft Windows Server 2003, основанный на платформе Windows Server , предоставляет компоненты для высокопроизводительных вычислений, такие как планировщик заданий, библиотека MSMPI и инструменты управления.

gLite — это набор технологий промежуточного программного обеспечения, созданный в рамках проекта Enabling Grids for E-scienceE (EGEE).

slurm также используется для планирования и управления некоторыми из крупнейших суперкомпьютерных кластеров (см. список топ500).

Другие подходы

Хотя большинство компьютерных кластеров являются постоянными объектами, предпринимались попытки флешмоба создать кратковременные кластеры для конкретных вычислений. Однако более масштабные добровольные вычислительные системы, такие как системы на базе BOINC , имели больше последователей.

Смотрите также

Рекомендации

  1. ^ «Кластер против сетевых вычислений» . Переполнение стека .
  2. ^ аб Грэм-Смит, Дариен (29 июня 2012 г.). «Проект выходного дня: построй свой суперкомпьютер». Управление ПК и технологий . Проверено 2 июня 2017 г.
  3. ^ Бадер, Дэвид ; Пеннингтон, Роберт (май 2001 г.). «Кластерные вычисления: приложения». Технологический колледж Джорджии по информатике . Архивировано из оригинала 21 декабря 2007 г. Проверено 28 февраля 2017 г.
  4. ^ «Суперкомпьютер ядерного оружия восстанавливает мировой рекорд скорости для США» . Телеграф. 18 июня 2012 г. Архивировано из оригинала 12 января 2022 г. Проверено 18 июня 2012 г.
  5. ^ Грей, Джим; Рютер, Андреас (1993). Обработка транзакций: концепции и методы . Издательство Морган Кауфманн. ISBN 978-1558601901.
  6. ^ abc Энокидо, Томоя; Баролли, Леонард; Такидзава, Макото (23 августа 2007 г.). Сетевые информационные системы: Первая международная конференция, NBIS 2007 . п. 375. ИСБН 978-3-540-74572-3.
  7. ^ Уильям В. Харгроув, Форрест М. Хоффман и Томас Стерлинг (16 августа 2001 г.). «Суперкомпьютер своими руками». Научный американец . Том. 265, нет. 2. С. 72–79 . Проверено 18 октября 2011 г.
  8. ^ Харгроув, Уильям В.; Хоффман, Форрест М. (1999). «Кластерные вычисления: Linux доведен до крайности». Журнал Линукс . Архивировано из оригинала 18 октября 2011 года . Проверено 18 октября 2011 г.
  9. ^ Ёкокава, Мицуо; и другие. (1–3 августа 2011 г.). Компьютер K: японский проект разработки суперкомпьютера нового поколения . Международный симпозиум по маломощной электронике и дизайну (ISLPED). стр. 371–372. дои : 10.1109/ISLPED.2011.5993668.
  10. ^ Пфистер, Грегори (1998). В поисках кластеров (2-е изд.). Река Аппер-Сэддл, Нью-Джерси: PTR Prentice Hall. п. 36. ISBN 978-0-13-899709-0.
  11. ^ Кацман, Джеймс А. (1982). «Глава 29, Тандем 16: отказоустойчивая вычислительная система». В Севёреке, Дональд П. (ред.). Структура компьютера: принципы и примеры . США: Книжная компания McGraw-Hill. стр. 470–485.
  12. ^ «История TANDEM COMPUTERS, INC. - FundingUniverse» . www.fundinguniverse.com . Проверено 01 марта 2023 г.
  13. ^ Хилл, Марк Дональд; Жуппи, Норман Пол ; Сохи, Гуриндар (1999). Чтения по компьютерной архитектуре . Галф Профессионал. стр. 41–48. ISBN 978-1-55860-539-8.
  14. ^ ab Слоан, Джозеф Д. (2004). Высокопроизводительные Linux-кластеры . «О'Рейли Медиа, Инк.». ISBN 978-0-596-00570-2.
  15. ^ abcd Дайде, Мишель; Донгарра, Джек (2005). Высокопроизводительные вычисления для вычислительной науки – VECPAR 2004 . стр. 120–121. ISBN 978-3-540-25424-9.
  16. ^ «Кластерная система IBM: преимущества» . ИБМ . Архивировано из оригинала 29 апреля 2016 года . Проверено 8 сентября 2014 г.
  17. ^ «Оценка преимуществ кластеризации». Майкрософт . 28 марта 2003 г. Архивировано из оригинала 22 апреля 2016 г. Проверено 8 сентября 2014 г.
  18. ^ Хамада, Цуёси; и другие. (2009). «Новый параллельный алгоритм с несколькими обходами для древесного кода Барнса – Хата на графических процессорах - путь к экономичному и высокопроизводительному моделированию N-тел». Компьютерные науки – исследования и разработки . 24 (1–2): 21–31. дои : 10.1007/s00450-009-0089-1. S2CID  31071570.
  19. ^ Аб Мауэр, Райан (12 января 2006 г.). «Виртуализация Xen и кластеризация Linux, часть 1». Linux-журнал . Проверено 2 июня 2017 г.
  20. ^ abc Миликкио, Франко; Герке, Вольфганг Александр (2007). Распределенные сервисы с OpenAFS: для предприятий и образования. Спрингер. стр. 339–341. ISBN 9783540366348.
  21. ^ abcde Прабху, CSR (2008). Грид и кластерные вычисления. PHI Learning Pvt. стр. 109–112. ISBN 978-8120334281.
  22. ^ Гропп, Уильям; Ласк, Юинг; Скьеллум, Энтони (1996). «Высокопроизводительная портативная реализация интерфейса передачи сообщений MPI». Параллельные вычисления . 22 (6): 789–828. CiteSeerX 10.1.1.102.9485 . дои : 10.1016/0167-8191(96)00024-5. 
  23. ^ abc Паттерсон, Дэвид А.; Хеннесси, Джон Л. (2011). Компьютерная организация и дизайн . Эльзевир. стр. 641–642. ISBN 978-0-12-374750-1.
  24. ^ аб К. Сирахата; и другие. (30 ноября – 3 декабря 2010 г.). Планирование задач гибридной карты для гетерогенных кластеров на базе графического процессора . Облачные вычислительные технологии и наука (CloudCom). стр. 733–740. дои : 10.1109/CloudCom.2010.55. ISBN 978-1-4244-9405-7.
  25. ^ abc «Ограждение ресурсов Алана Робертсона с использованием STONITH» (PDF) . Исследовательский центр IBM Linux, 2010 г. Архивировано из оригинала (PDF) 5 января 2021 г.
  26. ^ Варгас, Энрике; Бьянко, Джозеф; Дитс, Дэвид (2001). Среда Sun Cluster: Sun Cluster 2.2. Прентис Холл Профессионал. п. 58. ИСБН 9780130418708.
  27. ^ аб Ахо, Альфред В.; Блюм, Эдвард К. (2011). Информатика: аппаратное обеспечение, программное обеспечение и суть. Спрингер. стр. 156–166. ISBN 978-1-4614-1167-3.
  28. ^ Раубер, Томас; Рюнгер, Гудула (2010). Параллельное программирование: для многоядерных и кластерных систем. Спрингер. стр. 94–95. ISBN 978-3-642-04817-3.
  29. ^ Франсиони, Джоан М.; Блин, Черри М. (апрель 2000 г.). «Стандарт отладки для высокопроизводительных вычислений». Научное программирование . Амстердам , Нидерланды : IOS Press. 8 (2): 95–108. дои : 10.1155/2000/971291 . ISSN  1058-9244.
  30. ^ ab Slot, Питер, изд. (2003). Вычислительная наука: ICCS 2003: Международная конференция . стр. 291–292. ISBN 3-540-40195-4.

дальнейшее чтение

Внешние ссылки