СТРУКТУРА КОМПЬЮТЕРНОГО КЛАСТЕРА ДЛЯ ВЫПОЛНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ И СПОСОБ ФУНКЦИОНИРОВАНИЯ УКАЗАННОГО КЛАСТЕРА
COMPUTER CLUSTER ARRANGEMENT FOR EXECUTING COMPUTATION TASKS AND METHOD FOR OPERATION THEREOF

Настоящее изобретение ориентировано на структуру компьютерного кластера. Более конкретно, оно относится к структуре компьютерного кластера с улучшенным управлением ресурсами в отношении применения вычислительных узлов для выполнения масштабируемых вычислительных задач, равно как и сложных комплексных вычислительных задач. Изобретение особенно ориентировано на структуру компьютерного кластера для выполнения вычислительных задач и способ работы компьютерного кластера с такой структурой. Такая структура компьютерного кластера согласно настоящему изобретению использует ускорительные функциональные устройства, помогающие вычислительным узлам выполнить данную вычислительную задачу. Настоящее изобретение дополнительно ориентировано на создание компьютерного программного продукта, конфигурированного для осуществления указанного способа, а также на создание компьютерного носителя записи для хранения указанного компьютерного программного продукта.
В технике известны структуры компьютерных кластеров, содержащие вычислительные узлы, включающие по меньшей мере один процессор, а также ускорители, фиксированно связанные с указанными вычислительными узлами для внешнего выполнения вычислений, для которых требуются большие ресурсы. Результатом фиксированной связи ускорителей с вычислительными узлами является статичность назначения, что ведет к избыточной или недостаточной загрузке таких ускорителей. Это может привести к нехватке ресурсов, либо может привести к избыточному предложению ресурсов. Более того, такое статичное назначение ускорителей вычислительным узлам не создает отказоустойчивости системы в случае выхода ускорителей из строя.
Публикация доклада «rCUDA: способ уменьшения числа графических ускорителей в высокопроизводительных кластерах», авторы Хосе Дуато, Рафаэль Майо и др., на Международной конференции по высокопроизводительным вычислениям и моделированию (HPCS), дата выпуска: 28 июня 2010 г. - 2 июля 2010 г., на стр. 224-231 ("rCUDA: reducing the number of GPU-based accelerators in high performance clusters" by Jose Duato, Rafael Mayo et al., International Conference on High Performance Computing and Simulation (HPCS), Issue Date: June 28, 2010 - July 2, 2010, On page(s): 224-231), описывает базовую структуру, позволяющую применять удаленные ускорители на основе графических процессоров (GPU) в высокопроизводительных кластерах, что делает возможным уменьшить общее число ускорителей, установленных в таком кластере. Это может привести к сбережению энергии, снижению затрат на приобретение, установку и обслуживание оборудования и уменьшению занимаемого объема в пространстве.
В публикации «Пакет для гетерогенных вычислений на основе OpenCL в кластерах с большим числом графических процессоров», авторы Амнон Барак и др. из Еврейского Университета в Иерусалиме ("A package for open CL based heterogeneous computing on clusters with many GPU devices" by Amnon Barak, et al. of the Department of Computer Science from Hebrew University of Jerusalem) описан пакет для исполнения приложений на основе OpenМР, С++ и немодифицированной OpenCL в кластерах с большим числом графических процессоров (GPU). Кроме того, создана реализация спецификаций OpenCL и расширений интерфейса прикладных программ OpenMP API, которая позволяет приложениям, работающим на одном хостинговом узле, прозрачно использовать устройства в пределах всего кластера.
На фиг.1 представлена известная структура компьютерного кластера. Эта структура компьютерного кластера содержит множество вычислительных узлов CN, соединенных один с другим и совместно выполняющих вычислительную задачу. Каждый такой вычислительный узел CN фиксированно связан с ускорителем Асc. Как показано на фиг.1, вычислительный узел CN содержит ускорительный модуль АСС, виртуально интегрированный в этом вычислительном узле CN вместе с микропроцессором, например центральным процессором CPU. Как отмечено выше, фиксированная связь ускорителей Асc с вычислительными узлами CN ведет к избыточной или неполной загрузке ускорителей Асc в зависимости от конкретной вычислительной задачи. Более того, такая структура не обладает отказоустойчивостью в случае выхода одного из ускорителей Асc из строя. В известной структуре компьютерного кластера, показанной на фиг.1, вычислительные узлы CN поддерживают связь один с другими через инфраструктуру, тогда как ускорители Асc не могут обмениваться информацией непосредственно, а нуждаются в вычислительном узле CN, сопряженном с инфраструктурой IN, для обмена данными.
Следовательно, целью настоящего изобретения является создание структуры компьютерного кластера, которая обеспечила бы возможность гибкой связи с точки зрения обмена данными между ускорителем и вычислительными узлами, равно как и прямо доступ вычислительных узлов к любому и каждому из ускорителей. Более того, целью настоящего изобретения является организация динамического соединения ускорителей с вычислительными узлами во время работы.
Эти задачи решает структура компьютерного кластера, признаки которой перечислены в п.1 формулы изобретения.
Соответственно, предложена структура компьютерного кластера для выполнения вычислительных задач, такая структура компьютерного кластера содержит:
- множество вычислительных узлов, каждый из которых взаимодействует с инфраструктурой связи, по меньшей мере два из указанных узлов организованы для совместных вычислений по меньшей мере первого фрагмента вычислительной задачи;
- по меньшей мере одно вспомогательное средство, выполненное с возможностью вычисления по меньшей мере второго фрагмента вычислительной задачи, при этом каждое вспомогательное средство взаимодействует с инфраструктурой связи; и
- средство управления ресурсами, выполненное с возможностью назначения по меньшей мере одного вспомогательного средства по меньшей мере одному из множества вычислительных узлов для вычисления указанного второго фрагмента вычислительной задачи, при этом указанное назначение осуществляется в качестве функции заданного метрического показателя назначения.
В этой структуре компьютерного кластера ускорительные функции реализованы независимыми вспомогательными средствами. Описанная структура компьютерного кластера допускает свободное соединение таких вспомогательных средств с вычислительными узлами, которые могут быть также названы компьютерными узлами. Таким образом, становится реальным совместное использование ускорителей, здесь - в форме вспомогательных средств, вычислительными узлами. Для назначения вспомогательного средства вычислительному узлу может быть предусмотрено средство управления ресурсами в виде модуля управления ресурсов или узла управления ресурсов. Это средство управления ресурсами может в начале выполнения вычислительной задачи установить статическое назначение. В качестве альтернативы или в дополнение во время работы, иными словами в ходе выполнения вычислительной задачи, он может устанавливать динамическое назначение.
Такое средство управления ресурсами предназначено для предоставления вычислительным узлам информации о назначении с целью передачи фрагментов вычислительных задач по меньшей мере от одного вычислительного узла для выполнения вне этого узла по меньшей мере в одном вспомогательном средстве. Это средство управления ресурсами может быть реализовано в виде отдельного аппаратного модуля или виртуального модуля, либо может быть составлено из их сочетания. В частности, такое средство управления ресурсами может быть организовано на основе какого-либо из следующих компонентов: микропроцессора, аппаратного компонента, виртуализированного аппаратного компонента или присоединяемой программы. Более того, части средства управления ресурсами могут быть распределены в пределах всей системы и поддерживать связь через инфраструктуру связи.
Связь между вспомогательными средствами осуществляется посредством сетевого протокола. Следовательно, назначение вспомогательных средств осуществляется в соответствии с функцией потребностей приложений, иными словами, в зависимости от выполнения конкретной вычислительной задачи. Этим обеспечивается отказоустойчивость при выходе из строя вспомогательных средств, равно как и возможности масштабирования. Масштабируемость становится возможной в результате поддержки инкрементного развития системы, поскольку вспомогательные средства выполнены независимо от вычислительных узлов. Следовательно, число вычислительных узлов и число подготовленных вспомогательных средств могут отличаться одно от другого. Таким образом, обеспечена максимальная гибкость в предоставлении аппаратных ресурсов. Более того, все вычислительные узлы могут совместно использовать один и тот же прирост мощностей системы.
Вычислительная задача может быть определена посредством алгоритма, исходного кода, двоичного кода или также может быть сочетанием каких-либо из перечисленных выше алгоритмов и кодов. Вычислительная задача может представлять собой задачу моделирования, расчеты которой могут быть осуществлены в структуре компьютерного кластера. Более того, вычислительная задача может содержать множество частных задач, также именуемых подзадачами, которые во всей своей полноте описывают общую вычислительную задачу. Вычислительную задачу можно разделить на несколько фрагментов, например, по меньшей мере первый фрагмент вычислительной задачи и по меньшей мере второй фрагмент вычислительной задачи. Предлагаемая структура компьютерного кластера может также решать эти фрагменты вычислительной задачи параллельно или последовательно.
Каждый вычислительный модуль взаимодействует с инфраструктурой связи, также именуемой соединением. Аналогично, каждое вспомогательное средство тоже взаимодействует с инфраструктурой связи. Следовательно, вычислительные узлы, равно как и вспомогательные средства взаимодействуют посредством этой инфраструктуры связи. Поэтому каждый вычислительный узел связан с каждым вспомогательным средством через инфраструктуру связи без обязательного привлечения дополнительного узла связи в процессе обмена данными от вычислительного узла с вспомогательным средством. Таким образом, устанавливают динамическое назначение вычислительных узлов вспомогательным средствам, при этом вычислительные узлы выполняют по меньшей мере фрагмент вычислительной задачи без необходимости в передаче информации от одного вычислительного узла одному вспомогательному средству. Поэтому, есть возможность непосредственно связать вспомогательные средства с инфраструктурой связи без обязательного присутствия промежуточного вычислительного узла, который обычно применяется для этого в известных системах.
Для осуществления назначения между вспомогательными средствами и вычислительными узлами необходим специальный набор правил. С этой целью предложен метрический показатель назначения, который служит основой для принятия решения, какое вспомогательное средство соединить с каким вычислительным узлом. Таким метрическим показателем назначения может управлять средство управления ресурсами. Термин «управление метрическими показателями назначения» относится к установлению и обновлению правил указания по меньшей мере одного вспомогательного средства, назначенного по меньшей мере одному указанному вычислительному узлу. Следовательно, можно обновлять метрические показатели назначения в процессе работы. Такие правила назначения могут быть созданы в функции балансирования нагрузки, которая определяет рабочую нагрузку структуры компьютерного кластера, особенно вспомогательных средств. Более того, есть возможность определить вычислительные мощности вспомогательных средств и, кроме того, определить требования вычислительной задачи и назначить выбранное вспомогательное средство, которое предоставляет требуемые вычислительные мощности рассматриваемому вычислительному узлу. Для определения первоначального назначения вспомогательных средств вычислительным узлам указанные метрические показатели назначения задают заранее, однако эти показатели можно изменять по ходу работы. Таким образом, в начале выполнения вычислительной задачи осуществляется статическое назначение, а в процессе работы осуществляется динамическое назначение.
В одном из вариантов настоящего изобретения заданный метрический показатель назначения формируют в соответствии с по меньшей мере одним из группы способов определения метрических показателей, при этом группа содержит: временную логику, матрицу назначения, таблицу назначения, вероятностную функцию и целевую функцию. Таким образом, при назначении вспомогательных средств можно учитывать временные зависимости. Возможен случай, когда для вспомогательных средств определен временной порядок, который обеспечивает, что конкретное вспомогательное средство всегда назначают вычислительному узлу, если другое вспомогательное средство не смогло выполнить по меньшей мере фрагмент вычислительной задачи. Следовательно, при назначении вспомогательных средств можно использовать иерархические соотношения, установленные между ними. Метрический показатель назначения может назвать идентификатор вычислительного узла и может далее определить идентификаторы совместимых вспомогательных средств, которые могут быть назначены. Вероятностная функция может, например, указать, что в случае, когда конкретное вспомогательное средство не в состоянии выполнить некую вычислительную задачу, другое вспомогательное средство сможет выполнить ту же самую вычислительную задачу с какой-то конкретной вероятностью. Более того, для оценки требуемого объема ресурсов и, кроме того, для оценки созданных вычислительных мощностей вспомогательных средств могут быть применены целевые функции. Следовательно, вычислительные задачи с какими-то определенными требованиями можно сразу направлять подходящим вспомогательным средствам.
При осуществлении динамического назначения может быть также использована предыстория вычисления, именуемая также записями в системном журнале вычислений. Следовательно, вычислительные задачи можно эмпирически оценить путем вычислений по меньшей мере в одном первом вспомогательном средстве и записи показателей времени отклика, а также путем выполнения той же самой вычислительной задачи по меньшей мере на одном другом вспомогательном средстве и записи показателей времени отклика. Таким образом, вычислительные мощности вспомогательного средства можно зарегистрировать, эмпирически оценить и потому назначать такие модули вычислительным узлам в функции от требуемых вычислительных мощностей и от реальных мощностей модулей. Конкретные вычислительные задачи могут содержать информацию о приоритете, которая указывает, насколько срочно необходимо вычислить именно эту конкретную вычислительную задачу. Возможны также случаи, когда конкретные вычислительные узлы задают уровень приоритета, который указывает, насколько срочно необходимо выполнить некую вычислительную задачу или по меньшей мере фрагмент некой вычислительной задачи по сравнению с другими фрагментами компьютерных задач, исходящими от других вычислительных узлов. Следовательно, есть возможность сформулировать информацию о приоритетах применительно к отдельным фрагментам вычислительных задач, равно как информацию о приоритетах, относящуюся к вычислительным узлам.
Когда вспомогательное средство назначено какому-либо вычислительному узлу, это вспомогательное средство выполняет конкретные фрагменты вычислительных задач. Это может быть осуществлено посредством вызова удаленной процедуры, передачи параметров или передачи данных. Сложность рассматриваемого фрагмента вычислительной задачи можно оценить как функцию передачи параметров. Если параметр содержит матрицу, сложность передачи такого параметра можно оценить числом измерений этой матрицы.
Для взаимодействия с инфраструктурой связи может быть предусмотрен интерфейсный модуль, помещаемый между одним вычислительным узлом и инфраструктурой связи. Еще один интерфейсный модуль, отличный от указанного первого интерфейсного модуля, может быть помещен между вспомогательным средством и инфраструктурой связи. Такой интерфейсный модуль может быть отличен от вычислительного узла и также отличен от вспомогательного средства. Интерфейсный модуль просто предоставляет сетевые функциональные возможности без того, чтобы участвовать в выполнении фрагментов вычислительной задачи. Этот интерфейсный модуль просто предоставляет функциональные возможности для решения задач управления и связи, обусловленных вычислительной задачей. Такой интерфейсный модуль может, например, предоставлять функциональные возможности применительно к маршрутизации и передаче данных, относящихся к вычислительной задаче.
Более того, ускорение также может быть реализовано обратным способом - посредством передачи выполнения по меньшей мере фрагмента вычислительной задачи по меньшей мере от одного вспомогательного средства по меньшей мере одному вычислительному узлу. Следовательно, поток команд управления и информации может быть обращен и направлен в противоположную сторону по сравнению с рассмотренными выше аспектами настоящего изобретения.
Согласно одному из аспектов настоящего изобретения указанное заданное назначение может быть определено в соответствии по меньшей мере с одной группой способов спецификации матрицы, так что эта группа содержит: временную логику, матрицу назначения, таблицу назначения, вероятностную функцию и целевую функцию. Это может создать то преимущество, что заданные метрические показатели назначения могут быть сформированы с использованием формальной или полуформальной модели или типа данных.
Согласно другому аспекту настоящего изобретения заданный метрический показатель назначения определяют в функции по меньшей мере одного из группы параметров назначения, так что эта группа содержит: информацию о ресурсах, информацию о стоимости, информацию о сложности, информацию о масштабируемости, регистрационную запись в журнале вычислений, информацию компилятора, информацию о приоритетах и метку времени. Это может создать то преимущество, что назначение может быть произведено динамически в ходе работы с учетом различных параметров времени выполнения задания и в соответствии с конкретными характеристиками вычислительной задачи.
Согласно следующему аспекту настоящего изобретения назначение по меньшей мере одного вспомогательного средства одному из множества вычислительных узлов запускает по меньшей мере одну группу сигналов, так что эта группа содержит: вызов удаленной процедуры, передачу параметров и передачу данных. Это может создать то преимущество, что по меньшей мере фрагмент вычислительной задачи может быть переадресован от одного вычислительного узла по меньшей мере одному вспомогательному средству.
Согласно еще одному аспекту настоящего изобретения каждый вычислительный узел и каждое вспомогательное средство взаимодействуют с инфраструктурой связи через соответствующий интерфейсный модуль. Это может создать то преимущество, что данные можно передавать через инфраструктуру связи без обязательного использования промежуточного вычислительного узла. Следовательно, не требуется соединять вспомогательное средство с вычислительным узлом непосредственно, а можно реализовать динамическое назначение.
Согласно другому аспекту настоящего изобретения интерфейсный модуль содержит по меньшей мере одну группу компонентов, так что эта группа содержит: виртуальный интерфейс, шлейф, гнездо, сетевой контроллер и сетевое устройство. Это может создать то преимущество, что вычислительные узлы, равно как и вспомогательные средства могут быть также виртуально соединены с инфраструктурой связи. Более того, существующие инфраструктуры связи могут быть легко доступны.
Согласно следующему аспекту настоящего изобретения инфраструктура связи содержит по меньшей мере одну группу компонентов, так что эта группа содержит: шину данных, линию связи, коммутатор, маршрутизатор и сеть с высокой скоростью передачи данных. Это может создать то преимущество, что могут быть использованы существующие инфраструктуры связи, а также могут быть построены новые инфраструктуры связи с использованием общедоступных сетевых устройств.
Согласно еще одному аспекту настоящего изобретения каждый вычислительный узел содержит по меньшей мере одну группу компонентов, так что эта группа содержит: многоядерный процессор, кластер, компьютер, рабочую станцию и процессор общего назначения. Это может создать то преимущество, что вычислительные узлы являются в высокой степени масштабируемыми.
Согласно другому аспекту настоящего изобретения по меньшей мере одно вспомогательное средство содержит по меньшей мере одну группу компонентов, так что эта группа содержит: многоядерный процессор, скалярный процессор, сопроцессор, графический процессор, кластер из многоядерных процессоров и однокристальный процессор. Это может создать то преимущество, что такие вспомогательные средства построены для обработки конкретных проблем с высокой скоростью.
Вычислительные узлы обычно применяют процессоры, содержащие мощный модуль управления, поскольку приходится одновременно выполнять множество вычислительных задач. Процессоры, используемые во вспомогательных средствам, обычно содержат мощное арифметико-логическое устройство и простую систему управления по сравнению с процессорами вычислительных узлов. Например, во вспомогательных средствах могут найти применение SIMD-процессоры, именуемые также компьютерами с одним потоком команд и множеством потоков данных. Таким образом, процессоры, применяемые в вычислительных узлах, отличаются по своей процессорной архитектуре от процессоров, используемых во вспомогательных средствах.
Согласно следующему аспекту настоящего изобретения средство управления ресурсами предназначено для обновления указанного заданного метрического показателя назначения в процессе выполнения по меньшей мере одного фрагмента вычислительной задачи. Это может создать то преимущество, что назначение вспомогательных средств вычислительным узлам может быть произведено динамически в ходе работы.
Указанная цель достигается также с применением способа работы структуры компьютерного кластера согласно признакам, перечисленным в п.11 формулы изобретения.
Соответственно предложен способ работы структуры компьютерного кластера для выполнения вычислительной задачи, при этом способ содержит этапы, на которых:
- вычисляют по меньшей мере первый фрагмент вычислительной задачи с использованием по меньшей мере двух из множества вычислительных узлов, так что каждый вычислительный узел взаимодействует с инфраструктурой связи;
- вычисляют по меньшей мере второй фрагмент вычислительной задачи с использованием по меньшей мере одного вспомогательного средства, так что каждое вспомогательное средство сопряжено с инфраструктурой связи; и
- назначают по меньшей мере одно вспомогательное средство одному из множества вычислительных узлов посредством средства управления ресурсами для вычисления указанного второго фрагмента вычислительной задачи, при этом назначение производится в зависимости от заданного метрического показателя назначения.
Более того, предложены компьютерная программа, конфигурированная для реализации предлагаемого способа, а также компьютерный носитель записи для хранения указанного компьютерного программного продукта.
Настоящее изобретение далее будет описано на примерах со ссылками на прилагаемые чертежи:
фиг.1 представляет известную структуру компьютерного кластера;
фиг.2 представляет схематичную иллюстрацию структуры компьютерного кластера согласно одному из аспектов настоящего изобретения;
фиг.3 представляет схематичную иллюстрацию структуры компьютерного кластера согласно еще одному из аспектов настоящего изобретения;
фиг.4 представляет схематичную иллюстрацию способа функционирования структуры компьютерного кластера согласно одному из аспектов настоящего изобретения;
фиг.5 представляет схематичную иллюстрацию способа функционирования структуры компьютерного кластера согласно еще одному из аспектов настоящего изобретения;
фиг.6 представляет схематичную иллюстрацию потока команд управления в структуре компьютерного кластера согласно еще одному из аспектов настоящего изобретения;
фиг.7 представляет схематичную иллюстрацию потока команд управления для реализации обратного ускорения в структуре компьютерного кластера согласно еще одному из аспектов настоящего изобретения;
фиг.8 представляет схематичную иллюстрацию потока команд управления в структуре компьютерного кластера согласно еще одному из аспектов настоящего изобретения;
фиг.9 представляет схематичную иллюстрацию топологии сети в структуре компьютерного кластера согласно одному из аспектов настоящего изобретения.
В последующем для обозначения одинаковых компонентов будут использованы одни и те же позиционные обозначения, если не указано иначе.
На фиг.2 представлена структура компьютерного кластера, содержащая собственно кластер C, а также группу BG вспомогательных средств. Кластер в рассматриваемом варианте содержит четыре вычислительных узла, обозначенных так же, как CN, и три вспомогательных средства, обозначенных так же, как B. Гибкая связь между вспомогательными средствами и вычислительными узлами обеспечивается посредством инфраструктуры IN связи, такой как так называемое соединение. Такой вид инфраструктуры IN связи может быть реализован, например, с использованием системы infiniBand. Следовательно, каждое из вспомогательных средств B может быть использовано совместно любыми вычислительными узлами CN. Более того, может быть осуществлена виртуализация на уровне кластера. Каждое вспомогательное средство или по меньшей мере часть вспомогательных средств может быть виртуализована и сделана доступной для вычислительных узлов виртуально.
В рассматриваемом варианте вычислительные задачи выполняют посредством по меньшей мере одного из вычислительных узлов CN, и по меньшей мере фрагмент этих вычислительных задач может быть направлен для выполнения по меньшей мере одному из вспомогательных средств B. Эти вспомогательные средства B предназначены для выполнения вычислений для конкретных специальных проблем и предоставляют специальные вычислительные мощности. Таким образом, решение проблем может быть передано от одного из вычислительных узлов CN для внешней обработки вспомогательным средствам B, необходимые вычисления могут быть выполнены этими вспомогательными средствами, а результаты могут быть возвращены назад вычислительному узлу. Назначение вспомогательных средств ESB вычислительным узлам CN может быть произведено средством управления ресурсами, также именуемым RM. Это средство управления ресурсами инициализирует первое назначение и в последующем осуществляет динамическое назначение вспомогательных средств B вычислительным узлам CN.
Для связи между вспомогательными средствами и вычислительными узлами может быть использован интерфейс прикладных программ, также именуемый API. Вспомогательными средствами B можно управлять прозрачным образом посредством вычислительных узлов через обращение к соответствующим функциям интерфейса API. Такой интерфейс API абстрагирует и усиливает реальные собственные модели программирования вспомогательных средств. Более того, интерфейс API может предоставить средства для обеспечения отказоустойчивости на случай выхода вспомогательного средства из строя. Протокол связи, применяемый при обращениях к функциям интерфейса API, может быть «расположен» поверх уровня связи. В дальнейшем приведено краткое описание множества обращений интерфейса API согласно одному из аспектов настоящего изобретения, в которых параметр «ускоритель» ("accelerator") может определять адресуемое вспомогательное средство:
- aanlnit (accelerator).
Инициализирует вспомогательное средство перед использованием
- aanFinalize (accelerafor).
Сбрасывает информацию об учете использования вспомогательного средства после его использования
- aanMemAUoc (address, size, accelerator).
Выделяет байты размера памяти для рассматриваемого вспомогательного средства Возвращает адрес выделенной памяти устройства
- aanMemFree (address, accelerator).
Освобождает память, начиная с адреса рассматриваемого вспомогательного средства
- aanMemCpy(dst, src, size, direction, accelerator).
Копирует байты размера из src по адресу dst памяти.
Операция копирования может иметь следующее направление:
(i) от вспомогательного средства главному компьютеру,
(ii) от главного компьютера вспомогательному средству
- aanKernelCreate (filejame, functjiame, kernel, accelerator).
Создает ядро, определяемое именем файла (filejiame) и именем функции (functjiame) для выполнения в рассматриваемом вспомогательном средстве.
Возвращает обработку ядру.
- aanKernelSetArg (kernel, index, size, align, value).
Определяет аргумент для выполнения ядра по его индексу в списке аргументов, размеру, требованиям к совмещению (align) и величине
- aanKernelRun (kernel, grid_dim, block_dim).
Запускает выполнение ядра во вспомогательном средстве, ассоциированном с ядром в ходе предыдущего обращения к функции acKernelCreate(). Число потоков определено посредством числа потоков в одном блоке (block dim) и числа блоков в сетке (grid_dim)
- aanKernelFree (kernel).
Освобождает ресурсы, ассоциированные с ядром.
На фиг.3 представлена еще одна конфигурация кластера согласно одному из аспектов настоящего изобретения. Предлагаемая структура компьютерного кластера предназначена для выполнения вычислительных задач научного характера, особенно в контексте технологии высокопроизводительных кластеров. Более детальный анализ портфеля программ (кодов) приложений для высокопроизводительных кластеров научного назначения показывает, что многие программные коды, для которых требуются экзафлопсные (Exascale) возможности, включают, с одной стороны, кодовые программные блоки, которые хорошо подходят для экзафлопсных вычислений (Exascaling), а, с другой стороны, такие кодовые программные блоки, которые слишком сложны, чтобы быть масштабируемыми. В последующем, разделение между высокой масштабируемостью и сложностью проведено на уровне кодовых программных блоков, так что мы вводим понятия экзафлопсных кодовых программных блоков (Exascale Code Blocks (ЕСВ)) и сложных кодовых программных блоков (complex Code Blocks (ССВ)).
Очевидно, что не бывает ни программных кодов чисто с высокой масштабируемостью, ни строго сложных кодовых программных кодов. Каждый программный код содержит элементы с высокой масштабируемостью и сложные элементы с меньшей масштабируемостью. На деле, имеет место некий континуум между этими двумя крайностями. Интересно, что многие относительно менее масштабируемые элементы программного кода не требуют высокой масштабируемости, но зато для них необходима большая локальная память. Также очевидно, что элементы для связи «всех со всеми» имеют большие преимущества при меньшем параллелизме.
Для таких проблем, где имеет место благоприятное соотношение между блоками ECB и блоками CCB с точки зрения относительных объемов памяти (т.е. степеней свободы при манипуляции с относительными объемами памяти, т.е. степеней свободы при манипуляциях с блоками ECB по сравнению с манипуляциями с блоками CCB), времени выполнения задач и данных, которыми необходимо обмениваться, сам собой напрашивается способ адаптации к этой ситуации посредством специального архитектурного решения. Это решение содержит традиционный подход компьютерных кластеров вместе с экзафлопсным (Exascale) вспомогательным средством, имеющим группу жестко связанных вспомогательных средств и соединенным с кластером через сеть этого кластера. Такой дуалистический подход обладает потенциалом значительного расширения узкого поля применения чисто экзафлопсных систем.
Возникает модель «крупнозернистой» архитектуры, где в высокой степени масштабируемые части или блоки ECB программного кода приложения выполняют в параллельной многоядерной архитектуре, доступ к которой осуществляется динамически, тогда как блоки CCB выполняют в традиционной кластерной системе подходящей размерности, включая соединения с усовершенствованной системой динамического распределения ресурсов.
Кластеры в экзафлопсной системе нуждаются в элементах виртуализации, чтобы гарантировать устойчивость к внешним воздействиям и надежность. Тогда как локальные ускорители, в принципе, позволяют достаточно просто построить всю систему и, в частности, способны использовать исключительно широкую локальную полосу, они представляют собой абсолютно статические аппаратные элементы, хорошо приспособленные для распределенной обработки или параллелизации типа ведущий-ведомый. Следовательно, было бы затруднительно включить эти элементы на уровень программного обеспечения виртуализации. Кроме того, здесь нет отказоустойчивости в случае выхода из строя ускорителя, и нет устойчивости против избыточной или недостаточной загрузки.
Вычислительные узлы CN в составе одного кластера соединены внутри этого кластера посредством стандартного кластерного соединения, например Mellanox InfiniBand. Эта сеть расширена, чтобы включить в нее также вспомогательные средства (ESB). На чертеже мы изобразили три таких вспомогательных средств. Каждый из этих модулей ESB содержит множество многоядерных ускорителей, соединенных один с другими посредством специальной высокоскоростной сети передачи данных с низкой задержкой.
Такое соединение узлов CN с модулями ESB является очень гибким. Становится возможным совместное использование ускорительных возможностей разными вычислительными узлами. Эта модель не мешает виртуализации на уровне кластера и позволяет использовать полный параллелизм модулей ESB. Назначение ESB-для-CN осуществляется динамическим администратором ресурсов RM. Статическое назначение, сделанное в момент начала работы, можно превратить в динамическое во время работы. Вся связь CN-ESB осуществляется с использованием протокола сети кластера. Для осуществления связи внутри ускорителя АС потребуется разработка новых технических решений. Выделение модулей ESB может следовать потребностям приложений, и при этом гарантируется отказоустойчивость в случае выхода из строя ускорителя, поскольку все вычислительные узлы совместно используют один и тот же потенциал роста.
В качестве вычислительного элемента во вспомогательном средстве может быть применен многоядерный процессор типа «рыцарский угол» (Knight's Corner (КС)), выпускаемый компанией «Интел». Кристалл процессора КС будет содержать более 50 ядер, и при этом ожидается, что он сможет реализовать вычислительную производительность DP свыше 2 Терафлоп/с в одном кристалле. При объединении 10000 элементов можно будет достигнуть суммарной производительности 10 Петафлоп/с. Предшественник процессора КС, процессор «перевозчик рыцаря» (Knight's Ferry (KF)) будет использован в проекте создания пилотной системы на основе PCIe с целью исследований концепции кластер-бустер (CN-ESB).
Поскольку скорость вычислений в процессоре KF превосходит скорость современных общедоступных процессоров примерно в 10 раз, система связи внутри вспомогательного средства ESB должна иметь соответствующую размерность. Система связи модуля ESB требует скорости передачи данных по меньшей мере 1 Терабит/с на каждую плату (дуплекс). Система EXTOLL (Extreme Low Latency Interconnect (соединения с ультранизкой задержкой)) связи может быть использована в качестве варианта реализации системы шин, обеспечивающей скорость передачи данных 1,44 Терабит/с на одну плату. Она реализует трехмерную (3d) топологию, создающую 6 соединений связи на одну плату. Благодаря своей простоте эта топология представляется применимой для вспомогательного средства на основе многоядерных ускорителей. Даже притом, что два направления зарезервированы для сквозной маршрутизации, система EXTOLL способна «насытить» производительность системы PCI Express, если рассматривать скорость передачи данных. Задержка может достигать 0,3 мкс в случае реализации на основе специализированных интегральных схем ASIC. Сегодня система EXTOLL реализована на основе программируемых пользователем вентильных матриц FPGA.
На фиг.4 показана логическая схема, иллюстрирующая аспект способа работы структуры компьютерного кластера согласно настоящему изобретению. На первом этапе 100 выполняют по меньшей мере фрагмент вычислительной задачи посредством по меньшей мере двух из множества вычислительных узлов CN, так что каждый вычислительный узел CN сопряжен с инфраструктурой IN связи. Более того, выполнение по меньшей мере второго фрагмента этой вычислительной задачи на этапе 101 осуществляется посредством по меньшей мере одного вспомогательного средства В, так что каждое вспомогательное средство В сопряжено с инфраструктурой IN связи. Далее, на этапе 102 происходит назначение по меньшей мере одного вспомогательного средства В одному из множества вычислительных узлов CN посредством средства RM управления ресурсами для выполнения второго фрагмента вычислительной задачи. Как показывает правая стрелка на фиг.4, поток команд управления может вернуть систему к этапу 100. После назначения по меньшей мере одного вспомогательного средства B по меньшей мере одному из множества вычислительных узлов CN на этапе 102 информация об этом назначении может быть передана вычислительному узлу CN, который использует эту переданную ему информацию о назначении на последующих этапах передачи выполнения задач вовне. Следовательно, выполнение по меньшей мере второго фрагмента вычислительной задачи происходит на этапе 101 в функции назначения, произведенного на этапе 102.
На фиг.5 представлена логическая схема, иллюстрирующая способ работы структуры компьютерного кластера согласно одному из аспектов настоящего изобретения. В рассматриваемом варианте после произведенного на этапе 202 назначения по меньшей мере одного вспомогательного средства В одному из множества вычислительных узлов CN осуществляют этап 201 выполнения по меньшей мере второго фрагмента вычислительной задачи. Следовательно, можно выбрать конкретное вспомогательное средство B, и на основе назначения, произведенного на этапе 202, вспомогательное средство B выполняет по меньшей мере второй фрагмент вычислительной задачи. Это может быть преимуществом в случае, когда по меньшей мере второй фрагмент вычислительной задачи направляют средству RM управления ресурсами, которое назначает вспомогательное средство B для выполнения этого второго фрагмента вычислительной задачи. Указанное средство RM управления ресурсами может затем передать второй фрагмент вычислительной задачи назначенному вспомогательному средству B без необходимости того, чтобы вычислительный узел CN непосредственно контактировал с вспомогательным средством B.
Как показано на фиг.4 и 5, специалист в рассматриваемой области должен понимать, чтобы любые из этих этапов могут быть выполнены итеративно в различном порядке и могут содержать другие подэтапы. Например, этап 102 может быть выполнен прежде этапа 201, что приводит к выполнению первого фрагмента вычислительной задачи, назначению одного вспомогательного средства одному вычислительному узлу и, наконец, выполнению второго фрагмента вычислительной задачи. Этап 102 может содержать такие подэтапы, как возврат выполненного по меньшей мере второго фрагмента вычислительной задачи назад в вычислительный узел CN. Следовательно, вспомогательное средство В возвращает результат своих вычислений назад вычислительным узлам CN. Эти вычислительные узлы CN могут использовать возвращенные величины для выполнения других вычислительных задач и могут вновь передать по меньшей мере другой фрагмент какой-либо вычислительной задачи по меньшей мере одному из вспомогательных средств B.
На фиг.6 показана блок-схема потока команд управления в структуре компьютерного кластера согласно одному из аспектов настоящего изобретения. Согласно настоящему изобретению вычислительный узел CN принимает вычислительную задачу и запрашивает назначение ему вспомогательного средства B для внешнего выполнения по меньшей мере фрагмента принятой вычислительной задачи. Поэтому происходит обращение к средству RM управления ресурсами, который направляет указанный фрагмент вычислительной задачи выбранному вспомогательному средству B. Это вспомогательное средство B выполняет упомянутый фрагмент вычислительной задачи и возвращает результат, что обозначено самой крайней правой стрелкой. Согласно еще одному аспекту рассматриваемого варианта возвращаемая величина может быть передана назад вычислительному узлу CN.
На фиг.7 представлена блок-схема потока команд управления, реализующего обратное ускорение, в структуре компьютерного кластера согласно одному из аспектов настоящего изобретения. В рассматриваемом варианте ускорение вычислений при решении вычислительной задачи, выполняемой по меньшей мере одним вспомогательным средством B, происходит в результате назначения по меньшей мере одного вычислительного узла по меньшей мере одному вспомогательному средству B. Таким образом, поток команд управления и информации оказывается направлен в противоположную сторону (обратно) по сравнению с вариантом, показанным на фиг.6.
Выполнение вычислительных задач может быть поэтому ускорено путем передачи вычислительных задач от вспомогательных средств B по меньшей мере одному вычислительному узлу CN.
На фиг.8 представлена блок схема потока команд управления в структуре компьютерного кластера согласно еще одному аспекту настоящего изобретения. В рассматриваемом варианте средство RM управления ресурсами не передает по меньшей мере фрагмент вычислительной задачи вспомогательному средству B, а сам вычислительный узел CN запрашивает адрес или дополнительную идентификацию от вспомогательного средства B, предназначенного для вычислений, специфичных по меньшей мере для одного фрагмента вычислительной задачи. Указанное средство RM управления ресурсами возвращает требуемый адрес вычислительному узлу CN. Этот вычислительный узел CN теперь может непосредственно получить доступ к вспомогательному средству B посредством инфраструктуры IN связи. В рассматриваемом варианте к инфраструктуре IN связи обращаются и получают доступ через интерфейсные модули. Вычислительные узлы CN получают доступ к инфраструктуре IN связи посредством интерфейсного модуля IU1, а вспомогательное средство B взаимодействие с инфраструктурой IN связи посредством интерфейсного модуля IU2.
Более того, средство RM управления ресурсами предназначено для оценки объема ресурсов вспомогательного средства B и осуществляет назначение, иными словами выбор вспомогательного средства B, в функции от оценки объема ресурсов каждого из вспомогательных средств B. Для этого средство RM управления ресурсами может получить метрический показатель назначения, который может быть сохранен в базе DB данных или в источнике данных любого другого типа. Указанное средство RM управления ресурсами предназначено для обновления метрического показателя назначения, что может быть произведено с использованием системы управления базы данных. База DB данных может быть реализована в виде хранилища данных любого типа. Она может быть, например, реализована в виде таблицы, регистра или кэш-памяти.
На фиг.9 представлена схематичная иллюстрация топологии сети в структуре компьютерного кластера согласно одному из аспектов настоящего изобретения.
В одном из вариантов вычислительные узлы совместно используют общую первую инфраструктуру связи, например, с топологией типа звезда, с центральным модулем S переключения. Еще одна, вторая, инфраструктура связи предназначена для связи вычислительных узлов CN с вспомогательными средствами BN. Третья инфраструктура связи предназначена для связи между вспомогательными узлами BN. Следовательно, высокоскоростной сетевой интерфейс между вспомогательными узлами BN может быть организован с использованием специального интерфейса связи BN-BN. Такая инфраструктура связи BN-BN может быть построена в топологической структуре типа 3d.
Еще в одном варианте созданы две инфраструктуры связи, одна из которых предназначена для связи между вычислительными узлами CN, а другая инфраструктура связи предназначена для связи между вспомогательными узлами BN. Обе инфраструктуры связи могут быть соединены одна с другой посредством по меньшей мере одной линии связи от первой сети связи к второй сети связи или от второй сети связи к первой связи. Следовательно, один выбранный вычислительный узел CN или один выбранный вспомогательный узел BN соединен соответственно с другой сетью. Как показано на фиг.9, один вспомогательный узел BN соединен с инфраструктурой связи между вычислительными узлами CN путем использования коммутационного модуля S.
Еще в одном варианте группа BG вспомогательных средств сама может быть соединена с инфраструктурой связи вычислительных узлов CN или промежуточной инфраструктурой связи.
Инфраструктуры связи могут в общем случае отличаться одна от другой такими характеристиками, как топология, ширина полосы пропускания, протоколы связи, пропускная способность и обмен сообщениями. Вспомогательное средство B может содержать, например, от 1 до 10000 вспомогательных узлов BN, хотя допустимое число таких узлов указанным диапазоном не ограничивается. Средство RM управления ресурсами может в общем случае управлять частью вспомогательных узлов BN и может вследствие этого разбивать всю совокупность вспомогательных узлов BN и динамически формировать вспомогательные средства B из совокупности вспомогательных узлов BN. Коммутационный модуль S может быть реализован на основе коммутатора, маршрутизатора или любого сетевого устройства.
Специалисты в рассматриваемой области должны понимать, что возможны и другие варианты структуры компьютерного кластера. Например, доступ к базе DB данных могут получать и другие компоненты, соответственно узлы структуры компьютерного кластера. Представленные вычислительные узлы CN, равно как и представленные группы BG вспомогательных средств, могут представлять собой один из множества других вычислительных узлов CN, равно как одну из множества групп BG вспомогательных средств, соответственно, которые обращаются и получают доступ к средству RM управления ресурсами и/или инфраструктуре IN связи. Более того, ускорение может быть также осуществлено обратным способом путем передачи по меньшей мере фрагменты вычислительной задачи по меньшей мере от одного вспомогательного средства B по меньшей мере одному вычислительному узлу.