УСТРОЙСТВО И СПОСОБ ДИНАМИЧЕСКОЙ ОПТИМИЗАЦИИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ Российский патент 2025 года по МПК G06F9/50 

Описание патента на изобретение RU2839361C2

Настоящее изобретение относится к оптимизации возможностей обработки системы параллельных вычислений.

Экспоненциальное увеличение вычислительных мощностей, доступное в суперкомпьютере и центрах данных, наблюдавшееся за прошлые три десятилетия, является, в основном, результатом повышенного параллелизма, который допускает повышенную совместимость во времени вычислений, выполняемых на микросхеме (несколько ядер), на узле (несколько центральных процессорах (central processor unit, CPU)) и на системном уровне (растущее количество узлов в системе). Хотя параллельная обработка на уровне микросхем частично сохраняет постоянство потреблении энергии в расчете на одну микросхему, по мере увеличения количества ядер количество CPU на каждый узел и количество узлов в системе пропорционально увеличивают требования к питанию и необходимым инвестициям.

В то же время становится очевидным, что многочисленные и различные вычислительные задачи могли бы выполняться более эффективно на различных типах аппаратных средств. Примерами таких вычислительных элементов являются многопоточные многоядерные CPU, многоядерные CPU, GPU, TPU или FPGA. Кроме того, в перспективе видны процессоры, снабженные различными типами ядер, как, например, CPU с добавленными сопроцессорами потоков данных, такие как конфигурируемый пространственный акселератор (configurable spatial accelerator, CSA) фирмы Intel. Примерами различных категорий вычислительных задач в области науки среди многих прочих являются умножения матриц, умножения разреженных матриц, моделирование, основанное на шаблонах, моделирование, основанное на событиях, проблемы глубокого обучения и т.д., а в области промышленности конкретно создание технологических процессов для исследования операций, вычислительной гидроаэродинамики (computational fluid dynamics, CFD), разработки лекарственных средств и т.д. Информационно емкие вычисления становятся доминирующими высокопараллельными вычислениями (highly parallel computing, HPC) и становятся еще более важными в центрах данных. Очевидно, что для данной задачи нужно использовать наиболее энергетически эффективные элементы.

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

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

Ясно, что сочетание и взаимодействие различных аппаратных ресурсов с точки зрения модульной супервычислительной системы, такой как описано в патентной заявке WO 2012/049247, или различных модулей в центре данных, адаптированных к различным задачам, которые должны выполняться, стали гигантской технологической проблемой, если нужно удовлетворять требованиям сегодняшних и будущих сложных вычислительных проблем.

Соображения по проектированию ускоренной кластерной архитектуры для суперкомпьютеров Exascale изложены в статье "An accelerated Cluster-Architecture for the Exascale" авторов N. Eickerand Th. Lippert, в PARS '11, PARS-Mitteilungen, Mitteilungen - Gesellschaft fur Informatik e.V., Parallel-Algorithmen und Rechnerstrukturen, стр. 110-119, в которой обсуждается уместность закона Амдала (Amdahl).

Исходная версия закона Амдала (Amdahl’s law, AL), которая обсуждалась в статье "Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities" автора Gene Amdahl в AFIPS Conference Proceedings. Band 30, 1967, S. 483-485, определяет верхний предел ускорения S для вычисления задачи посредством параллельных вычислений в высоко идеализированной среде. AL может быть выражен словами как "при распараллелировании, если p является частью системы или программы, которая может быть сделана выполняемой параллельно, и 1-p является частью, которая остается последовательной, то тогда максимальное ускорение, которое может быть достигнуто с помощью k процессоров, равно

(см. https://www.techopedia.com/definition/17035/amdahls-law).

Исходный пример Амдала относится к скалярным и параллельно обрабатываемым участкам кода задачи вычисления, которые оба выполняются на вычислительных элементах одного и того же технического типа. Для приложений с преобладающими числовыми операциями такие участки кода могут обоснованно определяться как отношения количеств операций с плавающей точкой (flop), для другого типа операций, таких как целочисленные вычисления, могут быть даны эквивалентные определения. Пусть скалярный участок кода, s, который не может быть обрабатываться параллельно, характеризуется количеством скалярных операций с плавающей точкой, деленным на общее количество операций с плавающей точкой, имеющих место при исполнении кода,

s =

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

p =

Таким образом, s = 1 - p, как представлено выше. Время выполнения скалярного участка, очевидно, пропорционально s, поскольку он может вычисляться только на одном вычислительном элементе, в то время как выполнение участка p может быть вычислено в течение времени, пропорционального p, поскольку нагрузка может быть распределена по k вычислительным элементам. Поэтому ускорение S получают следующим образом:

.

Эту формулу называют AL. Для k, стремящегося к бесконечности, т.е., если участок параллельного выполнения кода, как предполагается, бесконечно масштабируем, асимптотическое ускорение Sa, может быть получено как

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

Из AL становится очевидным, что для достижения разумного ускорения нужно уменьшить процентную долю s.

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

При дополнительном подходе изобретение обеспечивает способ разработки системы параллельных вычислений, имеющей множество элементов обработки различных типов, включая, по меньшей мере, множество элементов обработки первого типа и, по меньшей мере, множество элементов обработки второго типа, причем способ для каждого типа элемента обработки содержит этапы, на которых определяют параметр, указывающий долю соответствующей задачи обработки, которая может обрабатываться параллельно элементами обработки этого типа; определяют оптимальное количество элементов обработки по меньшей мере первого или второго типа посредством: (i) определения точки, в которой скорость обработки системой приложения не изменяется при изменении количества элементов обработки этого типа в уравнении, связанном со скоростью обработки, параметров элементов обработки первого и второго типа, количества элементов обработки первого типа, количества элементов обработки этого типа и затраты на элементы обработки первого и второго типа; и (ii) для желаемого изменения времени обработки в системе параллельных вычислений, используют параметры, определенные для каждого типа элемента обработки, чтобы определить достаточное изменение количества элементов обработки, требующееся для получения желаемого изменения времени обработки, и используют определенное оптимальное количество для построения системы параллельных вычислений.

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

При еще одном дополнительном подходе изобретение обеспечивает способ разработки системы параллельных вычислений, содержащей множество элементов обработки, включающих, по меньшей мере, множество элементов обработки первого типа и, по меньшей мере, множество элементов обработки второго типа, причем упомянутый способ содержит этапы, на которых: устанавливают первое количество элементов обработки первого типа, kd; определяют участок параллельной обработки первого параллелизма, по которому распределяют первое количество обработки первого типа, pd; определяют участок параллельной обработки параллелизма, по которому распределяют второе количество элементов обработки второго типа, ph; и определяют второе количество элементов обработки второго типа, требующееся для обеспечения необходимого ускорения, S, системы параллельных вычислений с помощью значений kd, pd, ph и S.

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

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

Обеспечивается способ оптимизации эффективности параллельных и распределенных вычислений в отношении потребляемой энергии, эксплуатационных и инвестиционных затрат, а также характеристик и других возможных условий. Изобретение соответствует новой обобщенной форме закона Амдала (generalized form of Amdahl’s Law, GAL). GAL применяется к ситуациям, в которых информационный процесс вычислений (обычно содержащий различные интерактивные программы) или заданную одиночную программу демонстрирует различные параллелизмы их частей или участков программы, соответственно. Способ обладает конкретным преимуществом, но не ограничивается теми вычислительными проблемами, в которых большинство участков программы могут эффективно выполняться на ускоренных компьютерных элементах, таких как, например, GPU, и могут масштабироваться для больших количеств вычислительных элементов на мелкоструктурной основе, в то время как другие участки программы, характеристики которых ограничиваются доминирующим параллелизмом, являются наилучшими для исполнения на мощных вычислительных элементах, как в случае, представленном ядрами современных многопоточных центральных процессоров.

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

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

Схематичное изображение применения изобретения представлено на фиг. 1. На фиг. 1 показана система 100 параллельных вычислений, содержащая множество вычислительных узлов 10 и множества узлов 20 бустеров. Вычислительные узлы 10 соединяются друг с другом, а также с узлами бустеров 20. Инфраструктура 30 связи соединяет вычислительные узлы 10 с узлами бустеров 20. Каждый из вычислительных узлов 10 может быть стоечным блоком, содержащим микросхемы многоядерных CPU и узлы бустеров 20, каждый из которых может быть стоечным блоком, содержащим микросхемы многоядерных GPU.

В реальной рабочей ситуации, выполняя заданный технологический процесс или индивидуальную программу, каждый столкнется более чем с двумя параллелизмами (как это только что использовалось выше). Пусть имеет место n различных параллелизмов ki, i = 1,.., n, причем каждый вносит свой вклад с различным участком кода pi (i=1 может определять скалярный параллелизм из упомянутого выше). Каждый участок такой программы может масштабироваться до ее индивидуального максимального количества ядер, kt. Это означает, помимо kt, что для этого участка кода нет никакого соответствующего улучшения в отношении минимального времени вычисления, если распределено больше, чем kt, вычислительных элементов. В этой ситуации вышеупомянутая настройка AL простым способом обобщается до следующего:

В дальнейшем это уравнение называют "обобщенным законом Амдала" (Generalized Amdahl’s Law, GAL). Доминирующий параллелизм, kd, определяется таким образом, что влияния на параллелизмы ki для i d при ускорении S меньше, чем влияние доминирующего параллелизма kd, т.е.:

Для определения соответствующих асимптот для GAL можно следовать исходному AL и предположить, что все параллелизмы kt для i > d могут масштабироваться до бесконечности. Максимальное асимптотическое ускорение Sa, которое может теоретически быть достигнуто, тогда представляется как:

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

В этом идеализированном случае возможное ускорение полностью определяется доминирующим параллелизмом kd.

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

В качестве примера, модульный суперкомпьютер может состоять из множества стандартных центральных процессоров, соединенных суперкомпьютерной сетью, и множеством графических процессоров (вместе с хостинговыми (или главными) центральными процессорами, необходимыми для его работы), также соединенных быстродействующей сетью. Обе сети предполагаются связанными и, в идеале, но не обязательно, имеют один и тот же тип. Наиболее важное замечание состоит в том, что сегодняшние центральные процессоры и графические процессоры работают на очень разных частотах в отношении основной скорости их базовых компьютерных элементов, обычно называемых ядрами. Различие может быть большим в зависимости от коэффициента f, где различие между центральными процессорами и графическими процессорами может больше или меньше 20 ≤ f ≤ 100. Подобные соображения справедливы и для других технологий, как определено выше.

Настоящее изобретение усиливает это различие в общем смысле. Пусть коэффициент f > 1 относительно пиковой производительности между вычислительными элементами системы C и вычислительными элементами системы B. Для C можно иметь кластер центральных процессоров CPU, а для B – кластер "Booster", т.е. кластер графических процессоров GPU (где для последнего GPU, не управляющие им CPU являются устройствами с их вычислительными элементами (ядрами), важными для этого соображения).

Учитывая коэффициент f в отношении пиковой производительности в случае использования двух различных вычислительных элементов, более низкие параллелизмы для i ≤ d будут выделены вычислительным элементам с более высокой производительностью в системе C (в которой вычислительные элементы обычно доступны в меньшем количестве), в то время как масштабируемые участки кода выделяют вычислительным элементам с более низкой производительностью (которые доступны в большем количестве) в системе B. Пусть для характеристик, которые должны измеряться относительно пиковых характеристик вычислительных элементов системы B, для последней принимают f = 1. Из этого следует, что

вводит в вышеупомянутые соображения коэффициенты fi (для общности можно предположить наличие множества различных реализаций вычислительных элементов), которые здесь выбраны как fi = f для С и fi = 1 для B.

В асимптотическом пределе и, опять, же, пренебрегая более мелкими доминирующими параллелизмами, ускорение для GAL в случае системы с различными вычислительными элементами, таким образом, становится равным:

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

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

В дополнение к GAL, вычислительная скорость модуля определяется характеристиками производительности памяти и производительности ввода/вывода используемых элементов обработки, характеристиками модульной системы связи, а также характеристиками системы связи между модулями.

Действительно, эти функции оказывают различные действия на различные приложения. Поэтому в приближении первого порядка, второй объект необходимо вводить, учитывая эти характеристики. ηA зависит от приложения. Этот коэффициент может определяться динамически во время выполнения кода, что позволяет изменять характеристики распределения задач в соответствии с GAL динамическим способом. Это также можно определить заранее, когда стоит задача разработки системы на нескольких тестовых центральных процессорах и графических процессорах, соответственно.

Сокращая GAL до описания двух модульных систем C для более низкого доминирующего параллелизма (d) и B, чтобы вычислять высокий параллелизм (h), можно получить зависимую от приложения эффективность, определяемую на CPU и GPU, учитывая совместный коэффициент ηA, и получить:

Учитывая предыдущую формулу, практическая цель состоит в оптимизации ускорения S. Здесь в качестве целей могут рассматриваться: разработка модульной системы, которая потребуется при будущих супервычислениях или в центрах данных, а также динамически оптимизированное распределение ресурсов в модульной вычислительной системе во время работы, т.е. выполнение рабочих процессов или модульных программ. Формула открыта для применения для многих других целей.

Она напрямую пригодна для определения параметров, чтобы прогонять специальные программы в модульной вычислительной системе. Тогда можно с легкостью определять параметры в уравнении (1) априорно или во время выполнения и определять конфигурацию разделений на модульной системе или в оптимизированной системе для данного применения.

Разрабатывая модульный суперкомпьютер или модульный центр данных, можно выбирать средние характеристики для данного портфеля или можно учитывать определенные характеристики важных кодов, в зависимости от предпочтений при супервычислениях или в центре данных. Результатом будет набор средних параметров или конкретных параметров pd, ph, ηA. Ограничения, такие как затраты или потребление энергии, также могут приниматься во внимание.

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

Здесь, для иллюстрации на простом примере, инвестиционный бюджет может быть зафиксирован как K в качестве ограничения, хотя, как указывается, могут рассматриваться и другие ограничения, такие как потребление энергии, время принятия решений или производительность и т.д. Для простоты, предполагая, что затраты на модули и их межсоединения должны быть примерно пропорциональны количеству и затратам на вычислительные элементы kd, kh и cd, ch, соответственно, из этого следует, что

Вставляя уравнение (2) в уравнение (1), получаем:

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

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

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

Типичным вопросом в центре данных является, какое количество дополнительных ресурсов потребуется, чтобы удвоить (или умножить на какой-либо коэффициент) данное ускорение в случае, если должны быть выполнены условие времени принятия решения или конкретные соглашения об уровне обслуживания. На этот вопрос можно напрямую ответить посредством уравнения (1).

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

Вопрос, на который нужно ответить, состоит в том, какое количество вычислительных элементов kh для соответствующей части на модуле B в модульной вычислительной системе или в центре данных необходимо для достижения заранее назначенного ускорения, S. Можно предположить, что параметры pd, ph, ηA и f либо известны заранее, либо могут быть определены при повторяющемся выполнении кода. В последнем случае регулирование может осуществляться динамически во время прогона модульного кода. Как уже сказано, для этой постановки задачи kd предполагается фиксированным количеством. Можно начать с фиксированного количества kh на модуле B или с ограничения, взятого из фактических затрат на операции. Снова, можно с легкостью распространить подход на более сложные проблемы или ввести больше различных типов вычислительных элементов.

Простое преобразование уравнения (1) приводит к выражению

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

Второй, связанный с этим вопрос, состоит в том, то, какой объем ресурсов потребуется, чтобы увеличить или уменьшить ускорение S с полученного при покупке Sold до требуемого Snew, возможно, при ограничении изменяющегося соглашения об уровне обслуживания в отношении времени принятия решения. Применение уравнения (1) к этому случаю приводит к выражению:

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

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

Вычислительные узлы 10 могут рассматриваться как соответствующие кластеру C CPU упомянутому выше, в то время как узлы 20 бустеров могут рассматриваться как соответствующие кластеру В GPU. Как указано выше, изобретение не ограничивается системой всего из двух типов блоков обработки. В систему могут быть добавлены также другие блоки обработки, такие как кластер тензорных блоков обработки(tensor processing unit, TPU) или кластер квантовых блоков обработки (quantum processing unit, QPU).

Применение изобретения, связанного с обработкой данных на модульном суперкомпьютере, может быть основано на любом подходящем протоколе связи, таком как MPI (например, интерфейс передачи сообщений, message passing interface, MPI) или другие варианты, которые, в принципе, позволяют осуществление связи между двумя или более модулями.

Архитектура центра данных, которая рассматривается для применения этого изобретения, является архитектурой способных существовать совместно неагрегированных инфраструктур в смысле модулей, но только по аналогии с модульными суперкомпьютерами. Такие архитектуры стремятся обеспечивать уровень гибкости, масштабируемость и предсказуемые характеристики, что трудно и дорого, и, таким образом, менее эффективно для осуществления систем, образованных из фиксированных стандартных блоков, каждый из которых повторяет конфигурацию CPU, GPU, DRAM и запоминающего устройства. Применение изобретения, связанное с такими архитектурами способных существовать совместно неагрегированных инфраструктур центров данных, может быть основано на любом подходящем протоколе виртуализации. Виртуальные серверы могут состоять из таких ресурсных модулей, содержащих вычисление (CPU), ускорение (GPU), запоминающее устройство (DRAM, SDD, параллельные файловые системы) и сети. Виртуальные серверы могут предоставляться и повторно предоставляться в отношении выбранной стратегии оптимизации или определенного SLA, применения концепции GAL и ее возможных расширений. Это может выполняться динамически.

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

Похожие патенты RU2839361C2

название год авторы номер документа
УСТРОЙСТВО И СПОСОБ ЭФФЕКТИВНОГО ПАРАЛЛЕЛЬНОГО ВЫЧИСЛЕНИЯ 2019
  • Фровиттер, Бернхард
  • Липперт, Томас
RU2815262C2
ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ НЕОДНОРОДНЫХ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ, ОПРЕДЕЛЯЕМОЕ ВО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ 2019
  • Липперт, Томас
  • Фровиттер, Бернхард
RU2787958C2
СИСТЕМА И СПОСОБ ИНТЕРПРЕТАЦИИ И АНАЛИЗА ДИНАМИЧЕСКИХ ХАРАКТЕРИСТИК ТЕКУЩЕГО СОСТОЯНИЯ ВЫПОЛНЯЕМЫХ ЗАДАЧ 2016
  • Антонов Александр Сергеевич
  • Воеводин Вадим Владимирович
  • Воеводин Владимир Валентинович
  • Жуматий Сергей Анатольевич
  • Никитенко Дмитрий Александрович
  • Стефанов Константин Сергеевич
  • Теплов Алексей Михайлович
  • Швец Павел Артемович
RU2649748C2
ОПТИМИЗИРОВАННАЯ ДЛЯ ПОТОКОВ МНОГОПРОЦЕССОРНАЯ АРХИТЕКТУРА 2007
  • Фиш Рассел Х. Iii
RU2427895C2
СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ИНФОРМАЦИИ В ГЕТЕРОГЕННОЙ МНОГОПРОЦЕССОРНОЙ СИСТЕМЕ НА КРИСТАЛЛЕ (СнК) 2022
  • Петричкович Ярослав Ярославович
  • Янакова Елена Сергеевна
  • Мачарадзе Георгий Тамазьевич
  • Волков Алексей Николаевич
RU2790094C1
СТРУКТУРА КОМПЬЮТЕРНОГО КЛАСТЕРА ДЛЯ ВЫПОЛНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ И СПОСОБ ФУНКЦИОНИРОВАНИЯ УКАЗАННОГО КЛАСТЕРА 2011
  • Липперт Томас
RU2597556C2
СПОСОБ И СИСТЕМА РАСПРЕДЕЛЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ В ОБЛАЧНОЙ СРЕДЕ 2024
  • Хапов Игорь Александрович
  • Кривцова Екатерина Николаевна
  • Ремнев Михаил Анатольевич
RU2826431C1
ВЫСОКОПРОИЗВОДИТЕЛЬНАЯ КОМПЬЮТЕРНАЯ СИСТЕМА И СПОСОБ 2017
  • Липперт, Томас
RU2733058C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОМПИЛЯЦИИ НЕЙРОННЫХ СЕТЕЙ 2024
  • Уткин Константин Дмитриевич
  • Золотарёв Андрей Сергеевич
RU2835757C1
ТЕХНОЛОГИИ ДЛЯ ВЫДЕЛЕНИЯ КОНФИГУРИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ 2015
  • Бартфэй-Уолкотт Каталин К.
  • Леки Александер
  • Кеннеди Джон
  • Вудс Крис
  • Эстрада Джовани
  • Батлер Джозеф
  • Макгрэт Майкл Дж.
  • Путырский Славомир
RU2646323C2

Иллюстрации к изобретению RU 2 839 361 C2

Реферат патента 2025 года УСТРОЙСТВО И СПОСОБ ДИНАМИЧЕСКОЙ ОПТИМИЗАЦИИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ

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

Формула изобретения RU 2 839 361 C2

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

для каждого вычислительного приложения

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

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

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

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

3. Способ по п. 1 или 2, в котором первый тип элементов обработки представляет собой центральные процессоры, а второй тип элементов обработки представляет собой графические процессоры.

4. Способ по любому из пп. 1-3, в котором учитывают энергопотребление различных типов элементов обработки при распределении элементов обработки.

5. Способ по любому из пп. 1-4, в котором количество определяется путем оперирования формулой

где S - коэффициент ускорения,

pd - пригодная для параллельной обработки доля части кода доминантного параллелизма,

ph - пригодная для параллельной обработки доля параллельно обрабатываемой части кода с более высокой масштабируемостью, чем доминантный параллелизм,

kd - количество элементов обработки первого типа,

kh - количество элементов обработки второго типа,

ηA - поправочный коэффициент, и

f - коэффициент относительной скорости обработки.

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

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

для вычислительного приложения

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

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

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

8. Способ по п. 7, в котором этап распределения выполняют, оперируя формулой

где S - коэффициент ускорения,

pd - пригодная для параллельной обработки доля части кода доминантного параллелизма,

ph - пригодная для параллельной обработки доля параллельно обрабатываемой части кода с более высокой масштабируемостью, чем доминантный параллелизм,

kd - количество элементов обработки первого типа,

kh - количество элементов обработки второго типа,

ηA - поправочный коэффициент, и

f - коэффициент относительной скорости обработки.

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

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

Документы, цитированные в отчете о поиске Патент 2025 года RU2839361C2

Yatish Turakhia et al
HaDeS: Architectural synthesis for heterogeneous dark silicon chip multi-processors, опубл
Способ использования делительного аппарата ровничных (чесальных) машин, предназначенных для мериносовой шерсти, с целью переработки на них грубых шерстей 1921
  • Меньщиков В.Е.
SU18A1
Santanu Sarma et al
Cross-Layer Exploration of HeterogeneousMulticore Processor Configurations, опубл

RU 2 839 361 C2

Авторы

Фровиттер, Бернхард

Липперт, Томас

Даты

2025-04-30Публикация

2020-04-29Подача