WO2022186718A1 - Способ и система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами - Google Patents

Способ и система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами Download PDF

Info

Publication number
WO2022186718A1
WO2022186718A1 PCT/RU2021/000217 RU2021000217W WO2022186718A1 WO 2022186718 A1 WO2022186718 A1 WO 2022186718A1 RU 2021000217 W RU2021000217 W RU 2021000217W WO 2022186718 A1 WO2022186718 A1 WO 2022186718A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
exchange
network exchange
network
coordinator
Prior art date
Application number
PCT/RU2021/000217
Other languages
English (en)
French (fr)
Inventor
Валерий Викторович ВЫБОРНОВ
Original Assignee
Публичное Акционерное Общество "Сбербанк России"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное Акционерное Общество "Сбербанк России" filed Critical Публичное Акционерное Общество "Сбербанк России"
Publication of WO2022186718A1 publication Critical patent/WO2022186718A1/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • the present technical solution relates to the field of information technology, as well as to the field of large graph data management, in particular, to methods for transferring graph information between network nodes using cyclic distributed asynchronous messaging with weak synchronization.
  • Known solutions for finding the shortest path is - finding the shortest path between two vertices of a weighted graph (A weighted graph is a graph whose edges have weights).
  • the most efficient algorithm for finding the shortest path on graphs with non-negative weights is the Dijkstra algorithm (https://en.wikipedia.org/wiki/Diikstra%27s algorithm ).
  • the algorithm requires a sequential search for a path from the closest (currently) vertex in the first place. Those. if it is known that the path can pass through both vertices, then the algorithm continues the search from the nearest of the two vertices.
  • the CMMS algorithm (criterion -OUT) allows you to search for the shortest path in parallel.
  • the algorithm according to a certain criterion, selects a subset of vertices through which the shortest path can pass. Further, these vertices can be processed in parallel (see https://people.mpi-inf.mpg.de/ ⁇ mehlhorn/ftp/ParallelizationDiikstra.pdf)
  • the claimed solution proposes to make multiple transfers between nodes due to weaker synchronization.
  • the technical problem to be solved with the help of the claimed invention is the creation of a new method of cyclic distributed asynchronous messaging between network nodes with weak synchronization, to work with large graphs.
  • the technical result is to increase the efficiency and speed of message transmission between network nodes, which contributes to the rapid solution of applied problems in the management system for large graphs (FastGraph).
  • the claimed result is achieved through a computer-implemented method of cyclic distributed asynchronous messaging with weak synchronization, performed using a processor and comprising the steps of: a) defining a set of network messaging points, where each point is a computing node;
  • each vertex contains a state store, which contains information about the sign of the visit.
  • FIG. 1 illustrates the general view of the conical messaging model (implementation example)
  • FIG. 2 illustrates a block diagram of the claimed method.
  • FIG. 3 illustrates an example of a computing system.
  • FIG. 1 shows an example implementation of a conical messaging model (100).
  • Point (110) represents the node - the center of the cone, point (150) - the top of the cone, points (101) - (106) - data exchange nodes located on the circumference of the cone.
  • the nodes of the conical model exchange the specified types of messages presented in Table 1.
  • Axis Message cone is the first cone in the family.
  • this example shows only a particular implementation in the form of a conical architecture, which can be represented by various variations of the graph model while maintaining the declared functionality of the main computing nodes of the solution (Table 2).
  • Cone model A method of cyclic distributed asynchronous messaging with weak synchronization using the example of a cone-shaped messaging graph model. Compute The resource container involved in the message exchange. Each node (VU) of the VU is a fragment (shard) that unites a subset of graph vertices, together with the message processing logic. Messages within each VU are processed synchronously and in single-threaded mode.
  • Cone A messaging loop consisting of a sequence of
  • a family of cones A set of successive cones generated by a single CAM. Similar to the super step in the BSP model.
  • Circumference of a cone A set of points that are recipients of the CBM in the process of a given cone.
  • the network node located at the top of the cone (150) is designated as the coordinator. No vertices (101-106, 110) of the graph are associated with the vertex of the cone (150).
  • the coordinator stores information necessary to perform the exchange and work (specific to the process).
  • the node (110) located at the center of the cone may send a message to itself (i.e., the center of the cone may be on the periphery). Each next family of cones within one vertex can be initiated only after the end of the previous one. Detecting the end of a family of cones is a feature of the framework. This is the only synchronization point (barrier) in the conical model.
  • the conical model provides interaction between the computing nodes and the coordinator (150), in particular, sending requests, receiving responses, synchronizing execution by waiting for responses from all nodes.
  • FIG. 2 is a block diagram of the proposed method (200) for circular distributed asynchronous messaging with loose synchronization.
  • a set of network exchange points is determined, according to which at stage (202) a graph model is formed for the exchange of messages between network exchange points, in which the vertices are network exchange points, and the edges are the fact of sending messages.
  • a network exchange point is determined - a message exchange execution coordinator (150), i.e. the vertex of the cone is Pv, and the trigger data of the algorithm dv for the given point.
  • the initiating cone in a family of cones with a Pv point differs from the following in that it is initiated with a CRAM message, while the subsequent cones are initiated with CBM messages.
  • an execution coordinator (150) and a specified number of computing nodes - cone centers are created to carry out the messaging process.
  • a graph distribution (partitioning) algorithm is also determined, designed to form computing nodes, since each computing node is responsible for processing a part of the graph - it generates its own family of cones.
  • An example of such an algorithm is the algorithm for calculating the hash function of an identifier mod K (htp://personal.kent.edu/ ⁇ rmuhamma/Algorithms/MyAlgorithms/hashTable.htm).
  • the algorithm function Av calculates the node - the center of the cone (110) Pc and the associated data dvc, which constitutes the CRAM message:
  • the next step (204) is to send the coordinator (150) a CRAM message to the network exchange point - the center of the cone (PO).
  • a detailed description of the step is presented in the section describing an example of the implementation of the method using the example of the CMMS-OUT algorithm.
  • step (205) the following occurs - at the node (110) (center of the cone), the algorithm function Ac calculates a list of vertices (101) - (106) on the periphery Pbn and associated dcbn data, which makes up the CBM set; CAM is also calculated, which includes a list of peripheral vertices (needed to track the completion of the cone family in the coordinator node):
  • step (206) the CAM is sent with the data from the previous paragraph from the network exchange point (the center of the cone (110)) to the coordinator node (150).
  • the coordinator node (150) the coordinator node (150).
  • the coordinator point (150) takes into account the generated message exchange routes for each network exchange point of the graph (101)-(106), (110) based on the messages received from each network exchange point.
  • the principle of processing depends on the process. One of the possible principles is to maintain two queues - one with a list of all network exchange points that need to be visited, and the second queue with a list of visited vertices.
  • step (208) a check is made whether all network exchange points have been visited, whether all parallel work has been completed. If yes, then the exchange ends. If not, a new iteration occurs and steps (205-207) are repeated.
  • CMMS-OUT algorithm in the conic model describes the shortest path search algorithm (in the classical version, unidirectional), which allows you to find the shortest paths and distances between a certain vertex (source) and all other vertices in the graph - dist(n).
  • the algorithm is iterative.
  • the vertices are divided into unvisited Q, visited and current C.
  • Each vertex is assigned a dynamically (iteratively) updated time distance tdist(n) - the minimum of currently known distances from the source to the given vertex (preliminary distance).
  • tdist(n) dist(n).
  • ⁇ n I tdist(n) ⁇ min ⁇ tdist(u) + w(u, z)
  • the value L min ⁇ tdist(u) + w(u, z)
  • a coordinator is placed at the top of the cone (cone vertex). No graph vertices are associated with the vertex of the cone.
  • the algorithm involves network exchange points (vertices) and computing nodes (VU).
  • the computing node is associated with a set of vertices - that is, each WU includes several vertices (network exchange points). Each of the vertices (network exchange point) is associated with exactly one VU.
  • Each VU has an associated vU vertex state store (process-specific).
  • the storage also stores the current threshold value (threshold) consolidated for all vertices of the WU.
  • the execution coordinator is determined, and partitioning occurs - the choice of a given number (X) of computing nodes (CN) that will determine the construction of a family of cones and will provide parallel execution of the algorithm.
  • the coordinator does not know where the starting point of the calculation of the shortest path (left) and the final point nyTH(right) are located.
  • the coordinator In order to find the starting point left (to initiate the algorithm), the coordinator sends a message to the computing nodes (WC) and receives a response in which computing node the starting vertex is located.
  • the coordinator at step (204) sends a message to the found WU in which the left point is located.
  • step (204) sends input to step (205) - which is a set of vertices that need to be visited during the execution of step (205), which are distributed over various RTs, in pairs with the weight of the path to it associated with the vertex.
  • the coordinator (150) can send these messages at step (204) to several WOs in parallel, and accordingly steps (205) - (206) will be performed in parallel for each WO.
  • Each WU has its own set of vertices associated with it.
  • the WU that received the message from the coordinator (150) generates routes for subsequent messaging.
  • the VR retrieves a list of adjacent vertices and distributes the work of adding these graph vertices to the visit queue between the corresponding VR.
  • Each computing node must calculate the distance limit L for the next step and report it to the coordinator (150).
  • step (205) the following message exchange routes are formed at the WU.
  • vertex state store for each of the unvisited vertices: a) If there is no state (the vertex was not previously visible), a state object for this vertex is added. When a new vertex is opened, the vertex is considered unvisited, tdist is equal to infinity, minCEW is calculated when the state is initialized and then does not change. b) the preliminary distances of unvisited vertices are updated: if the new preliminary distance pathWeight is less than the current tdist, the new one becomes the current one.
  • a CAM message is sent to the coordinator VisitReport(thresholdOffer, minPath Weight) - information on visiting the WU, containing the current threshold value for this WU, taken from the store, and with a minPath Weight value equal to the minimum tdist over the WU vertices .
  • a CSM ThresholdOffer(thresholdOffer, minPathWeight) message is sent from each vertex to the coordinator (150) with the value of the threshold offer thresholdOffer and with a minPathWeight value equal to the minimum tdist across the vertices of the RT.
  • the coordinator (150) selects the smallest limit and instructs the computing nodes to visit those vertices that fall within this limit.
  • the coordinator calculates a threshold value L and visits those vertices that fall within this limit. [0059] At the next stage (207), the coordinator (150) takes into account information about the generated message exchange routes, namely: a) The coordinator, upon receipt of the VisitReport CAM, updates the priority queues of points. b) In the coordinator, all CSM ThresholdOffer messages are aggregated and an effective threshold is calculated. Prioritized queues are updated.
  • step (207) the vertices for the next visit are calculated - from the prioritized queue in the coordinator, all RTs that have unvisited vertices that satisfy the threshold value are selected.
  • step (207) the end of the algorithm is checked: if the previously received routes have information about the right vertex, then terminate the algorithm and return the value tdist associated with right as the result of the algorithm. If this vertex is not found, then proceed to step 208.
  • step (208) a check is made whether there are new vertices to visit (information about this was generated in the previous step). If there are no new vertices, then terminate the algorithm with a result of infinity (the target right vertex was not found, i.e. there is no path from left to it).
  • step (204) is based on the fact that a CRAM VisitNodes(threshold) message is sent to each of the selected vertices, then at step (205) each WO selects the vertices corresponding to the threshold value. These vertices are declared selected. Their path weights are their current tdist values.
  • Steps (206) - (208) are performed until the desired vertex is found, or it is found that there is no path from the left point to the right point, or the algorithm stops according to another stopping criterion - for example, the maximum number iterations.
  • FIG. 3 is a perspective view of a computing device (300) suitable for performing method (200).
  • Device (300) may be, for example, a server or other type of computing device that can be used to implement the claimed method.
  • the computing device (300) contains one or more processors (301) connected by a common information exchange bus, means memories such as RAM (302) and ROM (303), input/output interfaces (304), input/output devices (305), and a device for networking (306).
  • the processor (301) may be selected from a variety of devices currently widely used, such as IntelTM, AMDTM, AppleTM, Samsung ExynosTM, MediaTEKTM, Qualcomm SnapdragonTM, and etc.
  • the processor (301) can also be a graphics processor such as Nvidia, AMD, Graphcore, etc.
  • RAM (302) is a random access memory and is designed to store machine-readable instructions executable by the processor (301) to perform the necessary data logical processing operations.
  • the RAM (302) typically contains the executable instructions of the operating system and associated software components (applications, program modules, etc.).
  • a ROM (303) is one or more persistent storage devices such as a hard disk drive (HDD), a solid state drive (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R/RW, DVD-R/RW, BlueRay Disc, MD), etc.
  • I/O interfaces are used to organize the operation of device components (300) and organize the operation of external connected devices.
  • the choice of appropriate interfaces depends on the particular design of the computing device, which can be, but not limited to: 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, etc.
  • various means (305) of I / O information are used, for example, a keyboard, a display (monitor), a touch screen, a touch pad, a joystick, a mouse, a light pen, a stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, indicator lights, projector, camera, biometric identification tools (retinal scanner, fingerprint scanner, voice recognition module), etc.
  • the networking means (306) enables data to be transmitted by the device (300) via an internal or external computer network, such as an Intranet, the Internet, a LAN, and the like.
  • an internal or external computer network such as an Intranet, the Internet, a LAN, and the like.
  • one or more means (306) can be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module and others
  • satellite navigation tools in the device (300) can also be used, for example, GPS, GLONASS, BeiDou, Galileo.

Abstract

Заявлен способ передачи информации между узлами сети с помощью циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами. Способ содержит этапы, на которых: а) определяют множество точек сетевого обмена сообщениями, где каждая точка представляет собой вычислительный узел; b) формируют модель графа для обмена сообщениями между точками сетевого обмена, в котором вершинами являются точки сетевого обмена, а ребрами - факт отправки сообщений; с) определяют точку сетевого обмена - координатора исполнения обмена сообщениями; d) осуществляют отправку сообщений от точки координатора точке сетевого обмена; е) получают ответ от точки сетевого обмена, получившей сообщение, причем упомянутый ответ содержит идентификаторы смежных точек сетевого обмена, в которые будут направлены сообщения от данной точки сетевого обмена, при этом упомянутая точка сетевого обмена формирует маршруты последующего обмена сообщениями; f) на точке координаторе осуществляют учет сформированных маршрутов обмена сообщениями; g) повторяют этапы e)-f) до того момента, пока точка координатор не сообщит, что точки сетевого обмена отсутствуют.

Description

СПОСОБ И СИСТЕМА ЦИКЛИЧЕСКОГО РАСПРЕДЕЛЕННОГО АСИНХРОННОГО ОБМЕНА СООБЩЕНИЯМИ СО СЛАБОЙ СИНХРОНИЗАЦИЕЙ ДЛЯ РАБОТЫ С БОЛЬШИМИ ГРАФАМИ
ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее техническое решение относится к области информационных технологий, а также к области управления большими графовыми данными, в частности, к способам передачи графовой информации между узлами сети с помощью циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией.
УРОВЕНЬ ТЕХНИКИ
[0002] Из уровня техники известен подход передачи сообщений с помощью построения графовой модели узлов обмена, например, различные реализации модели Bulk Synchronous Parallel (BSP) (https://en.wikipedia.org/wiki/Bulk_synchronous_parallel), в частности, модель, реализованная в Apache Giraph (http://giraph.apache.org/intro.html). Данная модель основана на алгоритме поиска кратчайшего пути между узлами обмена, для чего выполняется определение расстояния между вершинами в графовой структуре.
[0003] Известными решениями для поиска кратчайшего пути является - поиск кратчайшего пути между двумя вершинами взвешенного графа (Взвешенным называется граф, ребра которого имеют веса). Наиболее эффективным алгоритмом поиска кратчайшего пути на графах с не отрицательными весами является алгоритм Dijkstra (https://en.wikipedia.org/wiki/Diikstra%27s algorithm ). Алгоритм требует последовательного поиска пути от наиболее ближайшей (на текущий момент) вершины в первую очередь. Т.е. если известно, что путь может проходить через обе вершины, то алгоритм продолжает поиск с ближайшей из двух вершин.
[0004] Алгоритм CMMS (критерий -OUT) позволяет выполнять поиск кратчайшего пути в параллельном режиме. Алгоритм по определенному критерию выбирает подмножество вершин, через которые может проходить кратчайший пути. Далее эти вершины могут обрабатываться параллельно (см. https://people.mpi- inf.mpg.de/~mehlhorn/ftp/ParallelizationDiikstra.pdf)·
[0005] Недостатки известных решений заключаются в том, что в решении Giraph вершина в рамках супершага один раз принимает сообщения, и один раз отправляет. В случае применения массивно параллельных вычислительных систем, в ряде случаев, сильная система синхронизации препятствует полной загрузке всех процессоров и увеличивает время работы алгоритма.
[0006] Таким образом, в заявленном решении предлагается совершать множественные пересылки между вершинами за счет более слабой синхронизации.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0007] Решаемой технической проблемой с помощью заявленного изобретения является создание нового метода циклического распределенного асинхронного обмена сообщениями между узлами сети со слабой синхронизацией, для работы с большими графами.
[0008] Технический результат заключается в повышении эффективности и скорости передачи сообщений между узлами сети, что способствует быстрому решению прикладных задач в системе управления большими графами (FastGraph).
[0009] Заявленный результат достигается за счет компьютерно-реализуемого способа циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, выполняемого с помощью процессора и содержащего этапы, на которых: a) определяют множество точек сетевого обмена сообщениями, где каждая точка представляет собой вычислительный узел;
B) формируют модель графа для обмена сообщениями между точками сетевого обмена, в котором вершинами являются точки сетевого обмена, а ребрами - факт отправки сообщений; c) определяют точку сетевого обмена - координатора исполнения обмена сообщениями; d) осуществляют отправку сообщений от точки координатора по меньшей мере одной точке сетевого обмена; e) получают ответ от точки сетевого обмена, получившей сообщение на этапе d), причем упомянутый ответ содержит идентификаторы смежных точек сетевого обмена, в которые будут направлены сообщения от данной точки сетевого обмена, при этом упомянутая точка сетевого обмена формирует маршруты последующего обмена сообщениями; f) на точке координаторе осуществляют учет сформированных маршрутов обмена сообщениями для каждой точки сетевого обмена графа, на основании сообщений от каждой точки сетевого обмена; g) итеративно повторяют этапы e)-f) до того момента, пока точка координатор не сообщит, что точки сетевого обмена отсутствуют. [0010] В одном из частных примеров выполнения способа каждая вершина содержит хранилище состояний, в котором содержится информация о признаке посещения.
[ООП] Заявленный технический результат достигается также за счет системы циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, содержащей по меньшей мере один процессор и по меньшей мере одно средство памяти, которое хранит машиночитаемые инструкции, которые при их исполнении процессором реализуют вышеуказанный способ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0012] Фиг. 1 иллюстрирует общий вид конической модели обмена сообщениями (пример реализации)
[0013] Фиг. 2 иллюстрирует блок-схему выполнения заявленного способа.
[0014] Фиг. 3 иллюстрирует пример вычислительной системы.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0015] На Фиг. 1 представлен пример реализации конической модели (100) обмена сообщениями. Точка (110) представляет узел - центр конуса, точка (150) - вершина конуса, точки (101) - (106) - узлы обмена данными, располагаемые на окружности конуса.
В рамках реализации заявленного решения узлы конической модели обмениваются заданными типами сообщений, представленными в Таблице 1.
Таблица 1 - Тип сообщений
Аббревиатура Расшифровка Направление Значение CRAM Cone Reverse Вершина Обратное осевое сообщение. Инициирует
Axis Message конуса первый конус в семействе.
Центр конуса
CAM Cone Axis Центр конуса Осевое сообщение. Обеспечивает
Message Вершина отслеживание периферийных точек конуса. конуса
CBM Cone Base Центр конуса Основное сообщение. Переносит данные
Message — » Окружность между точками распределенной системы и, конуса опционально, порождает новые конусы.
CSM Cone Side Окружность Боковое сообщение. Набор CSM завершает
Message конуса — > каждый конус.
Вершина конуса
[0016] Необходимо отметить, что данный пример показывает лишь частную реализацию в виде конической архитектуры, которая может быть представлена различными вариациями графовой модели с сохранением заявленного функционала основных вычислительных узлов решения (Таблица 2).
Таблица 2 - Описание узлов
Название Описание
Коническая модель Способ циклического распределенного асинхронного обмена обмена сообщениями со слабой синхронизацией на примере модели графа сообщениями в виде конуса. Вычислительный Контейнер ресурсов, участвующий в обмене сообщениями. Каждый узел (ВУ) ВУ представляет собой фрагмент (shard), объединяющий подмножество вершин графа, вместе с логикой обработки сообщений. Сообщения внутри каждого ВУ обрабатываются синхронно и в однопоточном режиме.
Вершина (конуса) Менеджер (управляющий узел) обмена сообщениями. Инициирует семейства конусов (супершаги) и обрабатывает результаты, полученные от точек.
Конус Цикл обмена сообщениями, состоящий из последовательности
(CRAM|CBM) -> N*CBM + САМ -> N*CSM
Может порождать от 0 до N дочерних конусов. Можно также использовать название "макрошаг"
Семейство конусов Набор последовательных конусов, порожденных одним САМ. Аналогичен супершагу в модели BSP.
Центр конуса Точка, являющаяся адресатом CRAM в процессе данного конуса.
Порождает СВМ. Понятие "локально" для конуса.
Окружность конуса Набор точек, являющихся получателями СВМ в процессе данного конуса.
[0017] Узел сети, расположенный в вершине конуса (150) назначается координатором. С вершиной конуса (150) не ассоциируются никакие вершины (101-106, 110) графа. В координаторе храниться информация необходимая для выполнения обмена и работы (специфично для процесса). [0018] Узел (110), расположенный в центре конуса, может посылать сообщение самому себе (т.е. центр конуса может быть на периферии). Каждое следующее семейство конусов в рамках одной вершины может быть инициировано только по окончании предыдущего. Детектировать окончание семейства конусов является функцией фреймворка. Это - единственная точка синхронизации (барьер) в конической модели. [0019] Может быть несколько вершин конуса, осуществляющих операции параллельно. Порождаемые ими семейства конусов независимы друг от друга. В то же время они используют одни и те же точки, и обработка сообщений внутри точки происходит последовательно и синхронно.
[0020] На каждом из этапов исполнения алгоритма коническая модель обеспечивает взаимодействие между вычислительными узлами и координатором (150), в частности, отправления запросов, получение ответов, синхронизацию исполнения через ожидание ответов от всех узлов.
[0021] На Фиг. 2 представлена блок-схема предлагаемого способа (200) циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией. На первом этапе (201) определяют множество точек сетевого обмена сообщениями, по которым на этапе (202) формируются модель графа для обмена сообщениями между точками сетевого обмена, в котором вершинами являются точки сетевого обмена, а ребрами - факт отправки сообщений.
[0022] На этапе (203) определяют точку сетевого обмена - координатора исполнения обмена сообщениями (150), т.е. вершину конуса - Pv, и инициирующие данные алгоритма dv для данной точки. Инициирующий конус в семействе конусов с помощью точки Pv имеет отличия от следующих в том, что он инициируется при помощи сообщения CRAM, в то время как последующие - при помощи сообщений СВМ.
[0023] На этапе (203) при выполнении инициализации выполняется создание координатора исполнения (150) и заданного количества вычислительных узлов - центров конусов для осуществления процесса обмена сообщениями. На данном этапе (203) также определяется алгоритм распределения (партиционирования) графа, предназначенный для формирования вычислительных узлов, поскольку каждый вычислительный узел отвечает за обработку части графа - порождает свое семейство конусов. Примером такого алгоритма может служить алгоритм вычисления хеш-функции идентификатора mod К (htp://personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/hashTable.htm).
[0024] На узле-координаторе (150) функция алгоритма Av вычисляет узел - центр конуса (110) Рс и ассоциированные данные dvc, что составляет сообщение CRAM:
Av(dv) — > (Pc, dvc).
[0025] Следующим шагом (204) является отправка координатором (150) сообщения CRAM точке сетевого обмена - центру конуса (ПО). Подробное описание шага представлено в разделе с описанием примера реализации способа на примере алгоритма CMMS-OUT.
[0026] На шаге (205) происходит следующее - на узле (110) (центр конуса) функция алгоритма Ас вычисляет список вершин (101) - (106) на периферии Pbn и ассоциированные данные dcbn, что составляет набор CBM; также вычисляется САМ, в который включается список периферийных вершин (необходим для отслеживания завершения семейства конусов в узле-координаторе):
Ac(dvc, d(Pc)) — » {
(Pbl, dcbl),
(Pb2, dcb2),
(PbN, dcbN),
(Pv, (dev, Pbl, Pb2, ..., PbN))
[0027] На шаге (206) происходит отправка CAM с данными из предыдущего пункта от точки сетевого обмена (центра конуса (110)) узлу координатору (150). Подробное описание данного шага представлено в разделе с описанием примера реализации способа на примере алгоритма CMMS-OUT.
[0028] На этапе (207) на точке координаторе (150) осуществляют учет сформированных маршрутов обмена сообщениями для каждой точки сетевого обмена графа (101)-(106), (110) на основании получаемых сообщений от каждой точки сетевого обмена. Принцип обработки зависит от процесса. Один из возможных принципов - вести две очереди - одна со списком всех точек сетевого обмена, которые необходимо посетить, а вторая очередь - со списком посещенных вершин.
[0029] На шаге (208) происходит проверка - посещены ли все точки сетевого обмена, завершены ли все параллельные работы. Если да, то обмен завершается. Если нет, происходит новая итерация и шаги (205-207) повторяются.
[0030] Далее рассмотрим пример реализации способа (200) на примере алгоритма CMMS-OUT.
[0031] Приведем пример реализации способа (200) на примере алгоритма CMMS-OUT (см. Фиг. 1). Алгоритм CMMS-OUT в конической модели описывает алгоритм поиска кратчайших путей (в классическом варианте однонаправленное), позволяющий находить кратчайшие пути и расстояния между некоторой вершиной (источником) и всеми остальными вершинами в графе - dist(n).
[0032] Алгоритм итеративный. Вершины делятся на непосещенные Q, посещенные и текущие С. Каждой вершине сопоставляется динамически (итеративно) обновляемое временное расстояние tdist(n) - минимальное из известных на данный момент расстояний от источника до данной вершины (предварительное расстояние). В посещенных вершинах tdist(n) = dist(n).
[0033] На первом шаге (итерации) tdist(s) = 0 для источника и tdist(n) = Infinity для всех остальных вершин п.
[0034] При каждом шаге (итерации) обновляется временное расстояние от текущих вершин до их инцидентов (вершин, к которым идут исходящие из них ребра), после чего текущие вершины объявляются посещенными. Следующие текущие вершины (следующие вершины для посещения) определяются условием:
С = { n I tdist(n) < min { tdist(u) + w(u, z) | u in Q, u connected to z } }
Величина L = min { tdist(u) + w(u, z) | u in Q, u connected to z } (которая является частью условия С) далее называется пороговым значением (threshold).
[0035] Для удобства описания опишем поиск кратчайшего пути из двух точек сетевого обмена - из точки left (101) в точку right (106), то есть найти dist(right). Описание алгоритма будет соотнесено с этапами модели описанными выше (этапы из Фиг. 2).
[0036] Первые этапы модели одинаковы для всех алгоритмов (и для CMMS-OUT в частности), и подготавливают возможность работы алгоритмов. Этапы (201) - (203) выполняются аналогично описанному выше способу реализации.
[0037] В координаторе (150) ведется две приоритезированные очереди точек, одна с приоритетом по порогу (threshold), и вторая с приоритетом по минимальному весу пути - minPathWeight = min { tdist по вершинам точки }.
[0038] В вершине конуса (cone vertex) помещается координатор. С вершиной конуса не ассоциируются никакие вершины графа.
[0039] В работе алгоритма участвуют точки сетевого обмена (вершины) и вычислительные узлы (ВУ). Вычислительный узел ассоциирован с набором вершин - то есть каждый ВУ включает в себя несколько вершин (точек сетевого обмена). Каждая из вершин (точка сетевого обмена) ассоциирована ровно с одним ВУ.
[0040] С каждым ВУ ассоциировано хранилище состояний вершин ВУ (специфическое для процесса). В хранилище для каждой вершины ВУ хранятся:
• предварительное расстояние (tdist);
• признак посещения;
• значение minCEW(u) = min { w(u, z) | u connected to z } - minimum connected edge weight, определяющее минимум веса исходящего ребра.
[0041] Также в хранилище хранится текущее консолидированное для всех вершин ВУ пороговое значение (threshold). [0042] Как уже отмечалось выше на этапе (203) происходит определение координатора исполнения, а также происходит партиционирование - выбор заданного количества (X) вычислительных узлов (ВУ), которые будут определять построение семейства конусов и будут обеспечивать параллельное исполнение алгоритма.
[0043] Координатор не знает где располагается стартовая точка вычисления кратчайшего пути (left) и финальная точка nyTH(right).
[0044] Для того чтобы найти стартовую точку left (для инициации алгоритма) координатор отправляет сообщение вычислительным узлам (ВУ) и получает ответ в каком вычислительном узле находится стартовая вершина.
[0045] Далее координатор на этапе (204) отправляет сообщение найденному ВУ в котором находится точка left.
[0046] На данном этапе (204) происходит отправка сообщения CRAM Init(left( 101)) к точке сетевого обмена left (101) (начало пути). Вершина left (101) посещается (все пути к ней == 0). Это происходит при первой итерации алгоритма.
[0047] В дальнейшем координатор (150) (в дальнейших итерациях) на этапе (204) отправляет входные данные для этапа (205) - которые являются набором вершин, которые необходимо посетить в ходе выполнения этапа (205), которые распределены по различным ВУ, в парах с ассоциированным с вершиной весом пути к ней.
[0048] Таким образом координатор (150) может отправлять эти сообщения на этапе (204) нескольким ВУ параллельно, и соответственно шаги (205) - (206) будут выполняться в параллели для каждого ВУ. С каждым ВУ ассоциирован свой набор вершин.
[0049] На этапе (205) ВУ, получившая сообщение от координатора (150), формирует маршруты последующего обмена сообщениями. ВУ извлекает список смежных вершин и распределяет работу по добавлению этих вершин графа в очередь для посещения между соответствующим ВУ.
[0050] Каждый вычислительный узел должен рассчитать предел расстояния L для следующего шага и сообщить его координатору (150).
[0051] На этапе (205) происходит формирование на ВУ маршрутов последующего обмена сообщениями.
[0052] Для каждой точки сетевого обмена которая получила сообщение, отправленное на предыдущем этапе (204): а) Ставится признак посещения (в хранилище состояний) б) Выполняется макрошаг (Конус). Ассоциированная точка становится cone center. в) Строится список вершин, куда идут ребра от данной вершины (incident nodes), в парах с ассоциированным с вершиной весом пути к ней (через текущую вершину). Применяется, при необходимости, фильтрация ребер и вершин. г) По списку рассылается СВМ запроса порогового значения ThresholdRequest([(node, pathWeight)]). Сообщения агрегируются по ВУ, к которым принадлежат целевые вершины.
[0053] Внутри каждой вершины (точки сетевого обмена) по получении ThresholdRequest:
1. В хранилище состояний вершин для каждой из непосещенных вершин: а) Если нет состояния (вершина не была ранее видима), добавляется объект состояния для данной вершины. При открытии новой вершины вершина считается непосещенной, tdist равен бесконечности, minCEW рассчитывается при инициализации состояния и далее не меняется. б) производится обновление предварительных расстояний непосещенных вершин: если новое предварительное расстояние pathWeight меньше текущего tdist, новое становится текущим.
2. Вычисляется предложение по пороговому значению от ВУ : пороговое значение для всех непосещенных вершин из списка, принадлежащих данному вычислительному узлу (ВУ) (с использованием веса пути к ней и минимума веса исходящего ребра minCEW). Данная величина запоминается в хранилище.
[0054] После того как на этапе (205) сформированы предложения, они на этапе (206) отправляются координатору.
[0055] На этапе (206) на координатор высылается сообщение САМ VisitReport(thresholdOffer, minPath Weight) - информация по посещению ВУ, содержащая текущее пороговое значение для данного ВУ, взятое из хранилища, и со значением minPath Weight, равным минимуму tdist по вершинам ВУ.
[0056] Также на данном этапе от каждой вершины на координатор (150) отсылается сообщение CSM ThresholdOffer(thresholdOffer, minPathWeight) со значением предложения порогового значения thresholdOffer и со значением minPathWeight, равным минимуму tdist по вершинам ВУ.
[0057] На этапе (207) координатор (150) выбирает наименьший предел и дает команду вычислительным узлам посетить те вершин, которые попадают в данный предел.
[0058] Координатор вычисляет пороговое значение L и посещает те вершины, которые попали в данный предел. [0059] На следующем этапе (207) на координаторе (150) происходит учет информации о сформированных маршрутах обмена сообщениями, а именно: а) Координатор по получении САМ VisitReport обновляет приоритезированные очереди точек. б) В координаторе все сообщения CSM ThresholdOffer агрегируются и вычисляется эффективное пороговое значение. Обновляются приоритезированные очереди.
[0060] Также на этапе (207) происходит вычисление вершин для следующего посещения - из приоритезированной очереди в координаторе выделяются все ВУ, имеющие непосещенные вершины, удовлетворяющие пороговому значению.
[0061] Также после учета сформированных маршрутов на этапе (207) происходит проверка окончания работы алгоритма: если в ранее полученных маршрутах имеется информация о вершине right, то завершить алгоритм и вернуть ассоциированное с right значение tdist как результат работы алгоритма. Если данной вершины не обнаружено, то происходит переход на этап 208.
[0062] На этапе (208) происходит проверка - есть ли новые вершины для посещения (информация об этом была сформирована на предыдущем этапе). Если новых вершин нет, то завершить алгоритм с результатом бесконечность (целевая вершина right не найдена, т.е. нет никакого пути, идущего к ней из left).
[0063] Если вершины имеются, то дальше происходит итеративный повтор этапов (204_ - (207) алгоритма способа (200).
[0064] Переход к этапу (204) осуществляется исходя их того, что по каждой из выбранных вершин рассылается сообщение CRAM VisitNodes(threshold), далее на этапе (205) каждый ВУ отбирает вершины, соответствующие пороговому значению. Эти вершины объявляются выбранными. Весами пути к ним являются их текущие значения tdist.
[0065] Этапы (206) - (208) выполняются до того момента, пока не будет найдена искомая вершина, или же не обнаружится что пути из точки left в точку right нет, или же алгоритм не остановится по другому критерию остановки - например максимальное количество итераций.
[0066] На Фиг. 3 представлен общий вид вычислительного устройства (300), пригодного для выполнения способа (200). Устройство (300) может представлять собой, например, сервер или иной тип вычислительного устройства, который может применяться для реализации заявленного способа.
[0067] В общем случае вычислительное устройство (300) содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (305), и устройство для сетевого взаимодействия (306).
[0068] Процессор (301) (или несколько процессоров, многоядерный процессор) могут выбираться из ассортимента устройств, широко применяемых в текущее время, например, компаний Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. В качестве процессора (301) может также применяться графический процессор, например, Nvidia, AMD, Graphcore и пр.
[0069] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.).
[0070] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш- память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD- R/RW, BlueRay Disc, MD) и др.
[0071] Для организации работы компонентов устройства (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: 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 и т.п. [0072] Для обеспечения взаимодействия пользователя с вычислительным устройством (300) применяются различные средства (305) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0073] Средство сетевого взаимодействия (306) обеспечивает передачу данных устройством (300) посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (306) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др. [0074] Дополнительно могут применяться также средства спутниковой навигации в составе устройства (300), например, GPS, ГЛОНАСС, BeiDou, Galileo.
[0075] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.

Claims

ФОРМУЛА
1. Компьютерно-реализуемый способ циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, выполняемый с помощью процессора и содержащий этапы, на которых: a) определяют множество точек сетевого обмена сообщениями, где каждая точка представляет собой вычислительный узел;
B) формируют модель графа для обмена сообщениями между точками сетевого обмена, в котором вершинами являются точки сетевого обмена, а ребрами - факт отправки сообщений; c) определяют точку сетевого обмена - координатора исполнения обмена сообщениями; d) осуществляют отправку сообщений от точки координатора по меньшей мере одной точке сетевого обмена; e) получают ответ от точки сетевого обмена, получившей сообщение на этапе d), причем упомянутый ответ содержит идентификаторы смежных точек сетевого обмена, в которые будут направлены сообщения от данной точки сетевого обмена, при этом упомянутая точка сетевого обмена формирует маршруты последующего обмена сообщениями; f) на точке координаторе осуществляют учет сформированных маршрутов обмена сообщениями для каждой точки сетевого обмена графа, на основании сообщений от каждой точки сетевого обмена; g) итеративно повторяют этапы e)-f) до того момента, пока точка координатор не сообщит, что точки сетевого обмена отсутствуют.
2. Способ по п.1, характеризующийся тем, что каждая вершина содержит хранилище состояний, в котором содержится информация о признаке посещения.
3. Система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, содержащая по меньшей мере один процессор и по меньшей мере одно средство памяти, которое хранит машиночитаемые инструкции, которые при их исполнении процессором реализуют способ по любому из пп. 1-2.
PCT/RU2021/000217 2021-03-05 2021-05-27 Способ и система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами WO2022186718A1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2021105737A RU2761136C1 (ru) 2021-03-05 2021-03-05 Способ и система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами
RU2021105737 2021-03-05

Publications (1)

Publication Number Publication Date
WO2022186718A1 true WO2022186718A1 (ru) 2022-09-09

Family

ID=79174459

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2021/000217 WO2022186718A1 (ru) 2021-03-05 2021-05-27 Способ и система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами

Country Status (2)

Country Link
RU (1) RU2761136C1 (ru)
WO (1) WO2022186718A1 (ru)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1553732A2 (de) * 2003-12-09 2005-07-13 Volkswagen AG Verfahren und Vorrichtung zum Hochfahren eines Knotens eines Kommunikationssystems
US20060155729A1 (en) * 2005-01-12 2006-07-13 Yeturu Aahlad Distributed computing systems and system compnents thereof
US20090307467A1 (en) * 2008-05-21 2009-12-10 International Business Machines Corporation Performing An Allreduce Operation On A Plurality Of Compute Nodes Of A Parallel Computer
US20170006135A1 (en) * 2015-01-23 2017-01-05 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
RU2722538C1 (ru) * 2019-12-13 2020-06-01 Общество С Ограниченной Ответственностью "Убик" Компьютерно-реализуемый способ обработки информации об объектах, с использованием методов совместных вычислений и методов анализа данных

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1553732A2 (de) * 2003-12-09 2005-07-13 Volkswagen AG Verfahren und Vorrichtung zum Hochfahren eines Knotens eines Kommunikationssystems
US20060155729A1 (en) * 2005-01-12 2006-07-13 Yeturu Aahlad Distributed computing systems and system compnents thereof
US20090307467A1 (en) * 2008-05-21 2009-12-10 International Business Machines Corporation Performing An Allreduce Operation On A Plurality Of Compute Nodes Of A Parallel Computer
US20170006135A1 (en) * 2015-01-23 2017-01-05 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
RU2722538C1 (ru) * 2019-12-13 2020-06-01 Общество С Ограниченной Ответственностью "Убик" Компьютерно-реализуемый способ обработки информации об объектах, с использованием методов совместных вычислений и методов анализа данных

Also Published As

Publication number Publication date
RU2761136C1 (ru) 2021-12-06

Similar Documents

Publication Publication Date Title
US9983901B2 (en) Dynamic shard allocation adjustment
WO2018076791A1 (zh) 一种资源负载均衡控制方法及集群调度器
EP3565219B1 (en) Service execution method and device
RU2688270C2 (ru) Вычисление долгосрочных расписаний для передач данных по глобальной вычислительной сети
US20160087875A1 (en) Parallel top-k simple shortest paths discovery
US9848306B2 (en) Contextually aware dynamic group formation
WO2016177279A1 (zh) 数据处理的方法及系统
JP6178004B2 (ja) グラフにおける距離近似のためのシステムおよび方法
CN104796270A (zh) 在云应用的问题诊断中推荐可疑组件的方法及装置
JP2020535517A (ja) 量子計算対応のクラウド環境におけるジョブ処理のための方法、量子クラウド環境(qce)、およびコンピュータ・プログラム
WO2018120810A1 (zh) 一种解决数据冲突的方法和系统
WO2020024650A1 (zh) 数据处理方法和装置、客户端
CN110912990B (zh) 一种共识周期的更新方法及相关设备
EP4170498A2 (en) Federated learning method and apparatus, device and medium
Carnero et al. Managing and deploying distributed and deep neural models through Kafka-ML in the cloud-to-things continuum
JP6728227B2 (ja) エフェメラルデータに基づいてクエリ応答を提供するためのデバイスおよび/または方法
US20160036878A1 (en) Stream processing with context data affinity
WO2020248633A1 (zh) 群成员管理和群消息处理的方法、装置、设备及存储介质
Gandhi et al. Performance comparison of parallel graph coloring algorithms on bsp model using hadoop
WO2022186718A1 (ru) Способ и система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами
Alam et al. A proposal of resource allocation management for cloud computing
WO2023066198A1 (zh) 分布式数据处理
EA044373B1 (ru) Способ и система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией для работы с большими графами
US20220224762A1 (en) Queuing control for distributed compute network orchestration
JP2023024357A (ja) システム、コンピュータ実装方法、コンピュータプログラム(サービストランザクションのためのコンセンサスに近づくための要求の促進)

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21929333

Country of ref document: EP

Kind code of ref document: A1