[001] Представленное техническое решение, в общем, относится к области вычислительной техники, а в частности к способу и системе распределения вычислительных задач в облачной среде, содержащей суперкомпьютеры и квантовые вычислители.
УРОВЕНЬ ТЕХНИКИ
[002] Из уровня техники известны различные решения, направленные на анализ программного кода приложений для распределения вычислительных задач между квантовыми и классическими вычислителями.
[003] Например, известны методы, системы и аппаратура для обучения модели машинного обучения маршрутизации вычислительных задач в системе, содержащей хотя бы один ресурс квантовых вычислений, раскрытые в документе US 20180308000 А1, опубл. 25.10.2018. В данном документе упоминается, получение из кэша первого набора данных, содержащего данные, представляющие собой множество вычислительных задач, ранее выполненных системой; получение из базы данных второго набора данных, содержащего данные, представляющие свойства, связанные с использованием одного или нескольких квантовых вычислительных ресурсов для решения множества вычислительных задач; получение из кэша входных данных для множества вычислительных задач, ранее выполненных системой, включая данные, представляющие тип вычислительного ресурса, на который была направлена задача; обеспечение доступа к первому набору данных, второму набору данных и входным данным в генераторе обучающих примеров; генерация в генераторе обучающих примеров набора обучающих примеров; обучение модели машинного обучения на наборе обучающих примеров для маршрутизации полученных данных, представляющих собой вычислительную задачу, которую необходимо выполнить; предоставление обученной модели машинного обучения системе, включающей по крайней мере один ресурс квантовых вычислений, для маршрутизации вычислительных задач, полученных системой, по меньшей мере к одному ресурсу квантовых вычислений и по крайней мере к одному классическому вычислительному ресурсу; получение в обученном модуле машинного обучения данных, представляющих вычислительную задачу, которую должна выполнить система, включающая один или несколько квантовых вычислительных ресурсов и один или несколько классических вычислительных ресурсов; обработка полученных данных с помощью обученной модели машинного обучения для определения того, к какому из одного или нескольких квантовых вычислительных ресурсов или к одному или нескольким классическим вычислительным ресурсам направлять данные, представляющие вычислительную задачу; маршрутизация модулем машинного обучения данных, представляющих вычислительную задачу, к определенному вычислительному ресурсу; получение в модуле машинного обучения и с определяемого вычислительного ресурса данных, представляющих собой решение вычислительной задачи; формирование выходных данных, в том числе представляющих собой решение вычислительной задачи; и получение у брокера выходных данных и генерация одного или нескольких действий, которые необходимо предпринять.
[004] Также известны системы, компьютерные методы и компьютерные программные продукты для облегчения планирования заданий квантовых вычислений, раскрытые в документе US 20210201189 А1. В данном документе упоминается система, содержащая: процессор, который выполняет исполняемые компоненты компьютера, хранящиеся в памяти, при этом исполняемые компоненты компьютера включают: компонент планировщика, определяющий порядок выполнения заданий квантовых вычислений на основе одного или нескольких ограничений выполнения на основе квантовых вычислений, при этом одно или несколько ограничений выполнения на основе квантовых вычислений включают доступность количества кубитов одного или нескольких квантовых вычислительных устройств, содержащих определенный уровень точности; и компонент Submit, который выполняет по крайней мере одно из заданий квантовых вычислений с использованием одного или нескольких устройств квантовых вычислений в зависимости от порядка выполнения.
[005] Недостатком известных решений является отсутствие механизма управления очередью задач с учетом наличия средств, симулирующих/эмулирующих вычислительные ресурсы, и сложности задач. Также в известных решениях отсутствуют средства, позволяющие преобразовывать данные задачи для разных типов вычислителей, оценивать сложность задач и валидировать полученные результаты выполнения задач при помощи квантовых алгоритмов.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[006] Технической проблемой или задачей, поставленной в данном техническом решении, является создание простого и надежного способа и системы распределения вычислительных задач в облачной среде.
[007] Техническим результатом, достигаемым при решении вышеуказанной технической задачи, является повышение скорости выполнения задач.
[008] Указанный технический результат достигается благодаря осуществлению способа распределения вычислительных задач, выполняемого по меньшей мере одним вычислительным устройством, содержащего этапы, на которых:
- получают данные задачи, необходимые для выполнения вычислительной задачи;
- осуществляют анализ данных задачи для определения набора подзадач и параметров подзадач;
- определяют для по меньшей мере одной подзадачи типы вычислителей, на которых может быть выполнена подзадача, причем тип вычислителя указывает на то, что вычислитель является: универсальным (гейтовым) квантовым вычислителем; классическим вычислителем, эмулятором (симулятором) квантового вычислителя или адиабатическим квантовым вычислителем;
- на основе параметров подзадачи определяют параметры выполнения подзадачи для каждого типа вычислителя;
- сравнивают параметры выполнения подзадачи, полученные для каждого типа вычислителя, и выбирают тот тип вычислителя, параметры выполнения подзадачи которого имеют минимальные значения;
- определяют наличие очереди к типу вычислителя, имеющего минимальные значения параметров выполнения подзадачи;
- выбирают другой тип вычислителя, имеющий минимальные значения параметров выполнения подзадачи, к которому нет очереди, либо количество подзадач в очереди которого не превышает заданное пороговое значение;
- преобразуют программный код подзадачи для ее выполнения на другом типе вычислителя;
- направляют данные подзадачи для выполнения подзадачи на определенный ранее тип вычислителя, к которому нет очереди, либо количество подзадач в очереди не превышает заданное пороговое значение.
[009] В одном из частных примеров осуществления способа для типа вычислителя - квантовый вычислитель дополнительно определяют квантовой алгоритм, необходимый для выполнения подзадачи.
[0010] В другом частном примере осуществления способа параметры выполнения
подзадачи характеризуют значение времени выполнения подзадачи и/или объем
вычислительных ресурсов, требуемых для выполнения подзадачи.
[0011] В другом частном примере осуществления способа параметры выполнения
подзадачи определяются на основе сложности выполнения подзадачи.
[0012] В другом частном примере осуществления способа выбранный тип
вычислителя указывает на то, что вычислитель является квантовым вычислителем,
а способ дополнительно содержит этапы, на которых:
- направляют данные подзадачи или заданный разработчиком объем данных подзадачи и идентификатор квантового алгоритма в эмулятор квантового вычислителя для их обработки;
- посредством постобработчика получают от упомянутого эмулятора результаты выполнения подзадачи;
- проводят посредством постобработчика валидацию результатов выполнения подзадачи для проверки работоспособности квантового алгоритма;
- причем если результаты выполнения подзадачи не проходят валидацию, то выбирают другой тип вычислителя для выполнения подзадачи.
[0013] В другом частном примере осуществления способа тип вычислителя, на который были направлены данные подзадачи для выполнения подзадачи, указывает на то, что вычислитель является квантовым вычислителем, эмулятором (симулятором) квантового вычислителя или адиабатическим квантовым вычислителем, а способ дополнительно содержит этапы, на которых:
- получают посредством постобработчика результаты выполнения подзадачи;
- проводят посредством постобработчика валидацию результатов выполнения подзадачи;
- определяют, что результаты выполнения подзадачи не прошли валидацию;
- направляют данные подзадачи для выполнения подзадачи на классический вычислитель.
[0014] В другом частном примере осуществления способа данные подзадачи для выполнения подзадачи на классический вычислитель направляются вместе с результатами выполнения подзадачи для получения уточненных результатов выполнения подзадачи, причем для получения уточненных результатов выполнения подзадачи данные подзадачи и результаты выполнения подзадачи обрабатываются посредством метода стохастического градиентного спуска для корректировки значений данных, не прошедших валидацию.
[0015] В другом предпочтительном варианте осуществления заявленного решения представлена система распределения вычислительных задач, состоящая по меньшей мере из декомпозера, аналитического устройства, планировщика задач и системы вычислителей, причем упомянутая система выполнена с возможностью осуществлять вышеуказанный способ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0016] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:
На фиг. 1 - представлен пример реализации системы распределения вычислительных задач.
На фиг. 2 - представлена примерная схема распределения вычислительных задач. На фиг. 3 - представлен пример общего вида вычислительного устройства.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0017] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.
[0018] В данном техническом решении под системой подразумевается, в том числе компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).
[0019] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
[0020] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройств хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[0021] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0022] В соответствии со схемой, приведенной на фиг. 1, система распределения вычислительных задач, в частном варианте ее реализации, содержит: по меньшей мере одно устройство 10 пользователя, декомпозер 20, аналитическое устройство 40, планировщик 50 задач, устройство 60 мониторинга, систему 70 вычислителей и постобработчик 80. Указанные компоненты системы распределения вычислительных задач могут соединиться между собой широко известными проводными или беспроводными каналами передачи данных.
[0023] Устройство 10 пользователя может быть выполнено на базе по меньшей мере одного вычислительного устройства, оснащенного средствами передачи данных, и представлять, например, портативный или стационарный компьютер, мобильный телефон или смартфон, планшет и пр.
[0024] Декомпозер 20 может быть реализован на базе вычислительного устройства, оснащенного модулем парсинга программного кода, причем декомпозер 20 выполнен с возможностью разделения задач на набор подзадач для их запуска на классических или квантовых вычислителях, на эмуляторе или симуляторе квантовых вычислителей.
[0025] Аналитическое устройство 40 может быть реализовано на базе вычислительного устройства и выполнено с возможностью определения параметров выполнения подзадачи на различных типах вычислителей, например, время выполнения подзадачи, и/или количество вычислительных ресурсов, требуемых для выполнения подзадачи (например, количество оперативной памяти, количество кубитов и пр.). Дополнительно устройство 40 может быть оснащено по меньшей мере одной заранее обученной на типовых данных нейронной сетью, на вход которой подаются параметры выполнения подзадач, а на выходе формируется список решений подзадач, состоящий из: ID типов вычислителей, которыми может быть решена подзадача; значения количества вычислительных ресурсов, которое требуется задействовать для каждого типа вычислителя; значения времени выполнения подзадачи для каждого типа вычислителя.
[0026] Планировщик 50 задач может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного программно-аппаратными средствами для управления очередью для каждого типа вычислителя, содержащегося в системе 70 вычислителей, подключенной к планировщику 50. В альтернативном варианте реализации представленного решения к планировщику 50 может быть подключено более одной системы 70, а планировщик 50 может быть выполнен с возможностью опроса систем 70 посредством направления соответствующих сигналов для определения наличия свободных вычислительных ресурсов для обработки задачи.
[0027] Устройство 60 мониторинга может быть реализовано на базе по меньшей мере одного вычислительного устройства, подключенного к вычислителям и выполненного с возможностью сбора параметров, характеризующих работу вычислителей, например, время выполнения подзадачи, количество вычислительных ресурсов, использованных для выполнения подзадачи и пр.
[0028] Система 70 вычислителей может состоять из разного типа вычислителей, в частности по меньшей мере одного: универсального (гейтового) квантового вычислителя 71; классического вычислителя 72; эмулятора (симулятора) 73 квантового вычислителя; адиабатического квантового вычислителя 74 и пр.
[0029] Универсальный (гейтовый) квантовый вычислитель 71 может представлять собой широко известный квантовый компьютер, оперирующий при обработке данных кубитами при помощи квантовых гейтов. На квантовых вычислителях могут быть запущены: алгоритм Шора (факторизации целых числе, Shor's algorithm); квантовое фурье преобразование (quantum Fourier transform); квантовый алгоритм оценки фазы (Quantum phase estimation algorithm); квантовый алгоритм решения задачи перебора (алгоритм Гровера, Graver's algorithm); квантовый оптимизационный алгоритм (Quantum approximate optimization algorithm (QAOA); вариационный поиск собственных значений (Variational quantum eigensolver (VQE) и пр.
[0030] Классический вычислитель 72 может быть выполнен на базе суперкомпьютера, оперирующего при обработке данных битами, состоящего из по меньшей мере одного процессора (CPU), по меньшей мере одного графического процессора (GPU), тензорного процессора (TPU), оптического вычислителя или пр. Эмулятор 73 квантового вычислителя может представлять суперкомпьютер с запущенной моделью для обработки задач с помощью квантовых алгоритмов, либо реализован на базе кремниевого чипа, например, Digital Annealer, разработанного компанией Fujitsu. Адиабатический квантовый вычислитель 74 может представлять собой широко известную машину для квантового отжига, разработанную, например, компанией D-Wave, либо когерентную машину Изинга, раскрытую в статье Рождественский Ю. В., «Когерентная Машина Изинга и QUBO-решатели», Молодой ученый, 2022, №47.1 (442.1), с. 48-51.
[0031] Постобработчик 80 может быть реализован на базе по меньше мере одного вычислительного устройства, реализованного на базе кремниевого чипа, например, Digital Annealer, разработанного компанией Fujitsu.
[0032] Соответственно, пользователь посредством устройства 10 формирует задачу, которая должна быть выполнена по меньшей мере одним вычислителем, и которая направляется устройством 10 в декомпозер 20. Задача пользователя может содержать название задачи, а также данные задачи, необходимые для выполнения задачи. Например, название задачи может указывать на то, что необходимо определить оптимальную траекторию движения ремонтной бригады по ветряным и солнечным электростанциям, расположенным на заданной территории, а данные задачи могут содержать информацию о расположении электростанций.
[0033] Например, список операций может содержать такие операции, как загрузка библиотек, загрузка интерфейса квантового вычислителя, загрузка данных (расположение городов) из файла cities.txt, вычисление дистанций и пр., и может быть представлен в виде скрипта:
# загрузка библиотек
import numpy as np
import matplotlib.pyplot as pit
from numpy import random
import itertools
# загрузка интерфейса квантового вычислителя (квантовый отжиг в данном случае)
import QuantumAnnealing as qa
# загрузка данных (расположение городов) из файла cities.txt
with open('cities.txt', ‘r’) as file:
positions=[(line.strip().split(‘ ’)[0], line.strip().split(‘ ’)[1]) for line in file] x_pos - [i[0] for i in positions]
y_pos=[i[1] for i in positions]
# вычисление дистанций
distances=np.zeros((N, N))
for i in range(N):
for j in range(i+1, N):
distances[i][j]=np.sqrt((x_pos[i] - x_pos[j])**2+(y_pos[i] - y_pos[j])**2)
distances[j][i]=distances[i][j]
# функция преобразования дистанций в QUBO формулировку
def qubo_from_distaces(w: np.matrix):
‘’’’’’
Make qubo matrix from distaces of points
‘’’’’’
# make costs function
n - w.shape[0]
# super index
super=lambda ij: i*n+j
Q=np.zeros((n**2,n**2))
# cost function
for i in range(n):
for j in range(n):
for p in range(n-l):
Q[super(i,p),super(j,p+1)]+=w[i,j]
# constraints
A - 2*np.max(w)+1
С=np.zeros((n**2,n**2))
# constraints
for p in range(n):
for i in range(n):
for j in range(n):
C[super(i,p),super(j,p)]+=-1 if (i= =j) else 1
for i in range(n):
for p in range(n):
for к in range(n):
C[super(i,p),super(i,k)]=-1 if (p= =k) else 1
Q+=A*C
return np.triu(Q)+np.tril(Q,k=-1).T
# преобразование задачи в QUBO формулировке
Q=qubo_from_distaces(distances)
# преобразование из QUBO в модель Изинга
J, h, of=qubo_to_ising(Q)
# запуск на квантовом вычислителе (устройство квантового отжига)
# х - это полученное решение
# Парсер обнаруживает, что эта функция должна быть реализована на квантовом вычислителе
qa. Solve I sing(J,h,x)
# для отрисовки вектор х преобразуется в матрицу
tr=x.reshape((N,N), order='F')
# вывод в файл последовательности городов, номера, разделенные пробелом
with open(myfile, "w") as f:
for p in tr:
number=(np.where(tr[:,p]= =1))[0]
f.write(number+’ ‘)
[0034] Соответственно, декомпозер 20 после получения задачи пользователя (этап 100, см. фиг. 2) осуществляет анализ данных задачи для формирования набора подзадач (этап 101) и очередности их выполнения (например, посредством назначения ID очередности), после чего для каждой подзадачи декомпозер 20 определяет тип вычислителя (этап 102), который следует использовать для выполнения подзадачи. Для формирования набора подзадач декомпозер 20 может быть оснащен модулем памяти, в который заранее занесен образец программного кода, идентифицирующий операции задачи, а также указан тип вычислителя, который следует использовать для выполнения подзадачи.
[0035] Например, для операций загрузки координат и номеров электростанций, определения времени и потребления ресурсов, например, расхода топлива для перемещения между станциями и пр. может быть указано, что их следует выполнить на классическом вычислителе, а операцию qa.Solvelsing(J,h,x) - на адиабатическом квантовом вычислителе. Таким образом, декомпозер 20 при анализе данных задачи сравнивает программный код с образцами программного кода и в случае совпадения формирует подзадачу для набора подзадач с указанием по меньшей мере одного типа вычислителя, на котором может быть решена подзадача.
[0036] Соответственно, для указанного выше примера скрипта может быть определен следующий набор подзадач и типов вычислителей:
- загрузка координат и номеров электростанций - классический вычислитель;
- определение расхода топлива для перемещения между станциями - классический вычислитель;
- кодирование данных расхода топлива в формат для QUBO (Quadratic unconstrained binary optimization, квадратичная оптимизация без ограничений) - классический вычислитель;
- преобразование данных расхода топлива из QUBO в формат для модели Изинга;
- классический вычислитель;
- обработка данных посредством модели Изинга для получения решения -квантовый вычислитель, классический вычислитель, эмулятор квантового вычислителя или адиабатический квантовый вычислителя;
- и т.д.
[0037] Дополнительно декомпозер 20 может быть выполнен с возможностью определения квантового алгоритма, необходимого для выполнения подзадачи. Список подзадач и квантовых алгоритмов может быть заранее задан в памяти декомпозера 20, а для подзадачи «обработка данных посредством модели Изинга» может быть определен, например, алгоритм квантовой оптимизации QAOA.
[0038] Набор подзадач и типы вычислителей с идентификатором квантового алгоритма (для квантовых вычислителей и их эмуляторов/симуляторов) для выполнения подзадач направляются декомпозером 20 в аналитическую систему 40. Дополнительно набор подзадач может включать параметры подзадачи, указывающие, например, размер модели Изинга, который следует использовать для выполнения подзадачи на вычислителе, либо количество переменных, используемых для решения уравнения. Параметры подзадачи могут быть извлечены из данных задачи и, например, в качестве параметров подзадачи может быть указан размер модели Изинга J или размер вектора х.
[0039] Аналитическая система 40 после получения упомянутых данных для каждой подзадачи определяет параметры выполнения подзадачи с учетом типа вычислителя (этап 103), на котором может быть решена подзадача, и параметров подзадачи, причем параметры выполнения подзадачи могут включать значение времени время выполнения подзадачи и/или объем вычислительных ресурсов, требуемых для выполнения подзадачи. Для определения времени выполнения подзадачи и объема вычислительных ресурсов система 40 может быть оснащена базой данных (БД), содержащей исторические данные о выполненных подзадачах, их типах, параметрах, значениях времени выполнения подзадач и объеме вычислительных ресурсов.
[0040] В альтернативном варианте реализации представленного решения, если исторических данных недостаточно для определения параметров выполнения подзадачи или исторические данные отсутствуют, то аналитическая система 40 может быть выполнена с возможностью определения сложности выполнения подзадачи для каждого типа вычислителя. Сложность выполнения подзадачи может быть определена на основе параметров подзадачи и параметров производительности вычислителей, заранее заданной в системе 40.
[0041] Например, сложность выполнения подзадачи может быть определена на основе параметра подзадачи, характеризующего размер подзадачи (п), в качестве которого может быть выбран размер модели J или вектора x, и параметра (С) производительности вычислителя, определенного как значение количества кубитов, либо как значение количества ядер CPU, помноженное на их частоту, причем значение сложности выполнения подзадачи определяется как: С*ехр(n). Далее для каждого полученного значения сложности система 40 подбирает значение времени выполнения подзадачи, причем список значений времени и значений сложности может быть заранее задан в памяти системы 40.
[0042] Например, для подзадачи «обработка данных посредством модели Изинга для получения решения» на основе исторических данных могут быть определены следующие параметры подзадачи:
- для универсального квантового вычислителя - 1 минута и/или 20000 кубитов;
- для классического вычислителя - месяц и/или 5 Гб памяти;
- для эмулятора квантового вычислителя - месяц и/или 256 Гб оперативной памяти;
- для адиабатического квантового вычислителя - 2 секунды и/или 20000 кубитов. Поскольку в указанном примере адиабатический квантовый вычислитель изначально сконфигурирован для выполнения задач с использованием модели Изинга, то время выполнения подзадачи будет минимальным по сравнению с другими типами вычислителей.
[0043] В том случае, если системой 40 определено, что для по меньшей мере одной подзадачи отсутствует значение времени ее выполнения, то упомянутое значение может быть определено известным методом экстраполяции или интерполяции.
[0044] После того, как параметры выполнения подзадачи были определены, система 40 направляет данные подзадачи и параметры выполнения подзадачи в планировщик 50. Если для подзадачи был определен тип вычислителя - классический вычислитель, то планировщик 50, который направляет данные подзадачи в вычислитель 71 для ее выполнения, либо ставит ее в очередь подзадач для выполнения согласно списку очереди.
[0045] Если для подзадачи определено несколько типов вычислителей, на которых подзадача может быть выполнена, то планировщик 50 сравнивает параметры выполнения подзадачи, полученные для каждого типа вычислителя, и выбирает тот тип вычислителя, параметры выполнения подзадачи которого имеют минимальные значения, в частности минимальное значение времени выполнения подзадачи и/или объема вычислительных ресурсов, требуемых для выполнения подзадачи.
[0046] Например, для повышения скорости выполнения задач в планировщике 50 может быть задано, чтобы определялся вычислитель с минимальным значением времени выполнения подзадачи, а для повышения пропускной способности системы 70 вычислителей может быть задано, чтобы определялся вычислитель, требующий минимальный объем вычислительных ресурсов.
[0047] Дополнительно планировщик 50 может быть выполнен с возможностью уточнения типа вычислителя, на который следует направить подзадачу для ее выполнения, с учетом наличия очереди к вычислителю (этап 104). Например, планировщик 50 может определить, что минимальными значениями параметров выполнения подзадачи обладает квантовый вычислитель. Далее планировщик 50 может обратиться к списку очереди к квантовому вычислителю и при определении наличия очереди к упомянутому вычислителю или при определении того, что количество подзадач в очереди превышает пороговое значение, планировщик 50 может направить задачу другому типу вычислителя (этап 105), имеющему минимальное значение времени выполнения подзадачи, к которому нет очереди, либо количество подзадач в очереди которого не превышает заданное пороговое значение, либо к другому типу вычислителя.
[0048] Дополнительно планировщик 50 может быть оснащен транслятором, который может осуществить преобразование программного года подзадачи для ее выполнения на квантовом вычислителе, если программный код подзадачи был написан для классического компьютера.
[0049] Таким образом, за счет определения вычислителя, имеющего минимальные значения параметров выполнения подзадачи, и выбора другого типа вычислителя при определении наличия очереди подзадач к упомянутому вычислителю, повышается скорость обработки как подзадач, так и задач в целом.
[0050] Дополнительно планировщик 50 может быть выполнен с возможностью проверки работоспособности квантового алгоритма, определенного для выполнения подзадачи. Для выполнения проверки работоспособности квантового алгоритма планировщик 50 направляет данные подзадачи или заданный разработчиком объем данных подзадачи и идентификатор квантового алгоритма в эмулятор 73 квантового вычислителя, который известными методами обрабатывает данные подзадачи для получения результатов выполнения подзадачи. Далее результаты выполнения подзадачи поступают в постобработчик 80, который проводит их валидацию. Если результаты выполнения подзадачи проходят процесс валидации, то постобработчик 80 направляет соответствующий сигнал в планировщик 50, который при получении упомянутого сигнала направляет данные подзадачи и идентификатор квантового алгоритма в квантовый вычислитель 71 для ее выполнения или для постановки в очередь подзадач на выполнение.
[0051] Если результаты выполнения подзадачи не проходят валидацию, в частности, например, результаты выполнения подзадачи - полученная последовательность номеров электростанций, по которой должна перемещаться бригада, содержит два одинаковых номера электростанций, то постобработчик 80 направляет соответствующих сигнал в планировщик 50, который при получении упомянутого сигнала направляет данные подзадачи к другому типу вычислителя для ее выполнения или для постановки в очередь подзадач на выполнение. Перед направлением данных подзадачи на вычислитель 72 программный код может быть преобразован посредством транслятора для его выполнения на классическом вычислителе, если упомянутый код был написан для квантового вычислителя.
[0052] Таким образом, дополнительно расширяются функциональные возможности системы распределения вычислительных задач за счет наличия функции проверки работоспособности квантового алгоритма.
[0053] Если планировщиком 50 для выполнения подзадачи был выбран квантовый вычислитель 71 и было определено наличие очереди, то планировщик 50 уточняет тип вычислителя описанным ранее способом, например, как эмулятор квантового вычислителя 73 или адиабатический квантовый вычислитель 74, после чего планировщик 50 направляет данные подзадачи на вычислитель 73 или 74 для ее выполнения. В альтернативном варианте планировщик 50 может уточнить тип вычислителя как классический вычислитель, после чего перед направлением данных подзадачи на вычислитель 72 программный код может быть преобразован посредством транслятора для его выполнения на классическом вычислителе, если упомянутый код был написан для квантового вычислителя.
[0054] Результаты выполнения подзадачи, полученные вычислителем 73 или вычислителем 74 (например, последовательность номеров электростанций, по которой должна перемещаться бригада), передаются в постобработчик 80, который проводит их валидацию. Если результаты выполнения подзадачи проходят процесс валидации, то результаты направляются в планировщик 50. Если данные не проходят валидацию, в частности, например, результаты выполнения подзадачи - полученная последовательность номеров электростанций, по которым должна перемещаться бригада, содержит два одинаковых номера электростанции, то постобработчик 80 обращается к классическому вычислителю 72 для выполнения подзадачи и получения результатов выполнения подзадачи. Результаты выполнения подзадачи могут быть также провалидированы описанным ранее способом.
[0055] Таким образом, дополнительно расширяются функциональные возможности системы распределения вычислительных задач за счет наличия функции валидации результатов выполнения подзадач.
[0056] Также дополнительно для повышения скорости обработки данных классический вычислитель 72 может быть сконфигурирован с возможностью выполнения подзадачи с учетом результатов выполнения подзадачи, полученных от других упомянутых типов вычислителей. Соответственно, данные подзадачи, результаты выполнения подзадачи и значения данных, не прошедших валидацию, постобработчик 80 направляет в вычислитель 72, который известными методами обрабатывает полученные данные для получения уточненных результатов выполнения подзадачи. В частности, полученные данные могут быть обработаны посредством метода стохастического градиентного спуска для корректировки значений данных, не прошедших валидацию. Полученные результаты выполнения подзадачи со скорректированными значениями данных могут быть также провалидированы описанным ранее способом.
[0057] Таким образом, дополнительно расширяются функциональные возможности системы распределения вычислительных задач за счет наличия функции уточнения результатов выполнения подзадач, не прошедших валидацию, а также повышается точность полученных результатов.
[0058] После получения результата выполнения подзадачи планировщик 50 фиксирует время выполнения подзадачи, после чего значение времени выполнения подзадачи, параметры подзадачи и данные о типе вычислителя направляются в устройство 60 мониторинга для их хранения. Далее планировщик 50 уведомляет декомпозер 20 о выполненной подзадаче, после чего декомпозер 50 переходит к обработке следующей подзадачи согласно очередности. Результаты выполнения подзадачи также направляются в устройство 10 для отображения на средствах вывода информации.
[0059] В общем виде (см. фиг. 3) вычислительное устройство содержит объединенные общей шиной информационного обмена один или несколько процессоров (201), средства памяти, такие как ОЗУ (202) и ПЗУ (203), интерфейсы ввода/вывода (204), устройства ввода/вывода (205), и устройство для сетевого взаимодействия (206).
[0060] Процессор (201) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве (200) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.
[0061] ОЗУ (202) представляет собой оперативную память и предназначено для хранения исполняемых процессором (201) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (202), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом в качестве ОЗУ (202) может выступать доступный объем памяти графической карты или графического процессора.
[0062] ПЗУ (203) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[0063] Для организации работы компонентов устройства (200) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (204). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.
[0064] Для обеспечения взаимодействия пользователя с устройством (200) применяются различные средства (205) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0065] Средство сетевого взаимодействия (206) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (206) может использоваться, но не ограничиваться: Ethernet-карта, GSM-модем, GPRS-модем, LTE-модем, 5G-модем, модуль спутниковой связи, NFC-модуль, Bluetooth и/или BLE-модуль, Wi-Fi-модуль и др.
[0066] Дополнительно могут применяться также средства спутниковой навигации в составе устройства (200), например, GPS, ГЛОНАСС, BeiDou, Galileo. Конкретный выбор элементов устройства (200) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.
[0067] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО КВАНТОВОЙ ОБРАБОТКИ | 2016 |
|
RU2742504C2 |
СПОСОБ И СИСТЕМА РАСПРЕДЕЛЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ ДЛЯ ОБРАБОТКИ ЗАПРОСОВ ПОЛЬЗОВАТЕЛЕЙ | 2023 |
|
RU2818490C1 |
СПОСОБ И СИСТЕМА ПЕРЕМЕЩЕНИЯ ДАННЫХ В ОБЛАЧНОЙ СРЕДЕ | 2023 |
|
RU2822554C1 |
Управляющая система для квантовых вычислительных устройств | 2023 |
|
RU2814936C1 |
СПОСОБ И СИСТЕМА ВЫЯВЛЕНИЯ ЭМУЛИРУЕМОЙ МОБИЛЬНОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ | 2018 |
|
RU2713760C1 |
СПОСОБ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА | 2016 |
|
RU2626350C1 |
Архитектура квантовых вычислительных устройств для решения прикладных задач в области материаловедения | 2023 |
|
RU2821360C1 |
Система и способ решения прикладных задач материаловедения с помощью сопряжения квантовых и классических устройств | 2023 |
|
RU2814969C1 |
ИНТЕЛЛЕКТУАЛЬНАЯ ГРИД-СИСТЕМА ДЛЯ ВЫСОКОПРОИЗВОДИТЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ | 2009 |
|
RU2411574C2 |
Квантовая вычислительная система на основе фотонных чипов | 2023 |
|
RU2806840C1 |
Изобретение относится к способу и системе распределения вычислительных задач в облачной среде. Техническим результатом является повышение скорости выполнения задач. Способ содержит этапы, на которых: получают данные задачи, необходимые для выполнения вычислительной задачи; осуществляют анализ данных задачи для определения набора подзадач и параметров подзадач; определяют для по меньшей мере одной подзадачи типы вычислителей, на которых может быть выполнена подзадача, причем тип вычислителя указывает на то, что вычислитель является: гейтовым квантовым вычислителем; классическим вычислителем, эмулятором квантового вычислителя или адиабатическим квантовым вычислителем; на основе параметров подзадачи определяют параметры выполнения подзадачи для каждого типа вычислителя; сравнивают параметры выполнения подзадачи, полученные для каждого типа вычислителя, и выбирают тот тип вычислителя, параметры выполнения подзадачи которого имеют минимальные значения; определяют наличие очереди к типу вычислителя, имеющего минимальные значения параметров выполнения подзадачи; выбирают другой тип вычислителя, имеющий минимальные значения параметров выполнения подзадачи, к которому нет очереди, либо количество подзадач в очереди которого не превышает заданное пороговое значение; преобразуют программный код подзадачи для ее выполнения на другом типе вычислителя; направляют данные подзадачи для выполнения подзадачи на определенный ранее тип вычислителя, к которому нет очереди, либо количество подзадач в очереди не превышает заданное пороговое значение. 2 н. и 6 з.п. ф-лы, 3 ил.
1. Способ распределения вычислительных задач, выполняемый по меньшей мере одним вычислительным устройством, содержащий этапы, на которых:
- получают данные задачи, необходимые для выполнения вычислительной задачи;
- осуществляют анализ данных задачи для определения набора подзадач и параметров подзадач;
- определяют для по меньшей мере одной подзадачи типы вычислителей, на которых может быть выполнена подзадача, причем тип вычислителя указывает на то, что вычислитель является: гейтовым квантовым вычислителем, классическим вычислителем, эмулятором квантового вычислителя или адиабатическим квантовым вычислителем;
- на основе параметров подзадачи определяют параметры выполнения подзадачи для каждого типа вычислителя;
- сравнивают параметры выполнения подзадачи, полученные для каждого типа вычислителя, и выбирают тот тип вычислителя, параметры выполнения подзадачи которого имеют минимальные значения;
- определяют наличие очереди к типу вычислителя, имеющего минимальные значения параметров выполнения подзадачи;
- выбирают другой тип вычислителя, имеющий минимальные значения параметров выполнения подзадачи, к которому нет очереди, либо количество подзадач в очереди которого не превышает заданное пороговое значение;
- преобразуют программный код подзадачи для ее выполнения на другом типе вычислителя;
- направляют данные подзадачи для выполнения подзадачи на определенный ранее тип вычислителя, к которому нет очереди, либо количество подзадач в очереди не превышает заданное пороговое значение.
2. Способ по п. 1, характеризующийся тем, что для типа вычислителя - квантовый вычислитель дополнительно определяют квантовый алгоритм, необходимый для выполнения подзадачи.
3. Способ по п. 1, характеризующийся тем, что параметры выполнения подзадачи характеризуют значение времени выполнения подзадачи и/или объем вычислительных ресурсов, требуемых для выполнения подзадачи.
4. Способ по п. 1, характеризующийся тем, что параметры выполнения подзадачи определяются на основе сложности выполнения подзадачи.
5. Способ по п. 1, характеризующийся тем, что выбранный тип вычислителя указывает на то, что вычислитель является квантовым вычислителем, а способ дополнительно содержит этапы, на которых:
- направляют данные подзадачи или заданный разработчиком объем данных подзадачи и идентификатор квантового алгоритма в эмулятор квантового вычислителя для их обработки;
- посредством постобработчика получают от упомянутого эмулятора результаты выполнения подзадачи;
- проводят посредством постобработчика валидацию результатов выполнения подзадачи для проверки работоспособности квантового алгоритма;
- причем если результаты выполнения подзадачи не проходят валидацию, то выбирают другой тип вычислителя для выполнения подзадачи.
6. Способ по п. 1, характеризующийся тем, что тип вычислителя, на который были направлены данные подзадачи для выполнения подзадачи, указывает на то, что вычислитель является квантовым вычислителем, эмулятором квантового вычислителя или адиабатическим квантовым вычислителем, а способ дополнительно содержит этапы, на которых:
- получают посредством постобработчика результаты выполнения подзадачи;
- проводят посредством постобработчика валидацию результатов выполнения подзадачи;
- определяют, что результаты выполнения подзадачи не прошли валидацию;
- направляют данные подзадачи для выполнения подзадачи на классический вычислитель.
7. Способ по п. 6, характеризующийся тем, что данные подзадачи для выполнения подзадачи на классический вычислитель направляются вместе с результатами выполнения подзадачи для получения уточненных результатов выполнения подзадачи, причем для получения уточненных результатов выполнения подзадачи данные подзадачи и результаты выполнения подзадачи обрабатываются посредством метода стохастического градиентного спуска для корректировки значений данных, не прошедших валидацию.
8. Система распределения вычислительных задач, состоящая по меньшей мере из декомпозера, аналитического устройства, планировщика задач и системы вычислителей, причем упомянутая система выполнена с возможностью осуществлять способ по любому из пп. 1-7.
СПОСОБ РАСПРЕДЕЛЕНИЯ ЗАДАЧ СЕРВЕРОМ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ, МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ИНФОРМАЦИИ И СИСТЕМА ДЛЯ РЕАЛИЗАЦИИ СПОСОБА | 2013 |
|
RU2538920C2 |
US 20200174836 A1, 04.06.2020 | |||
US 20210012233 A1, 14.01.2021 | |||
US 11206221 B1, 21.12.2021 | |||
US 20220197306 A1, 23.06.2022 | |||
US 20140331233 A1, 06.11.2014 | |||
US 20220309371 A1, 29.09.2022 | |||
US 20230023333 A1, 26.01.2023 | |||
US 11270220 B1, 08.03.2022 | |||
US 20210158425 A1, 27.05.2021 | |||
US 11250334 B2, 15.02.2022. |
Авторы
Даты
2024-09-10—Публикация
2024-03-19—Подача