RU2761136C1 - Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs - Google Patents

Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs Download PDF

Info

Publication number
RU2761136C1
RU2761136C1 RU2021105737A RU2021105737A RU2761136C1 RU 2761136 C1 RU2761136 C1 RU 2761136C1 RU 2021105737 A RU2021105737 A RU 2021105737A RU 2021105737 A RU2021105737 A RU 2021105737A RU 2761136 C1 RU2761136 C1 RU 2761136C1
Authority
RU
Russia
Prior art keywords
point
network exchange
coordinator
messages
network
Prior art date
Application number
RU2021105737A
Other languages
Russian (ru)
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 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority to RU2021105737A priority Critical patent/RU2761136C1/en
Priority to PCT/RU2021/000217 priority patent/WO2022186718A1/en
Application granted granted Critical
Publication of RU2761136C1 publication Critical patent/RU2761136C1/en

Links

Images

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

Abstract

FIELD: information technology.
SUBSTANCE: invention relates to the field of information technology. The expected result is achieved due to the stages at which: a) the set of network messaging points is determined, where each point is a computing node; b) a graph model for exchanging messages between network exchange points is formed, in which the vertices are network exchange points, and the edges are the fact of sending messages.; c) the point of network exchange, the coordinator of the execution of messaging is determined; d) messages from the point of the coordinator to at least one point of network exchange are sent; e) a response from the point of network exchange that received the message at step d) is received, and the said response contains the identifiers of adjacent network exchange points to which messages will be sent from this network exchange point, while the said network exchange point forms routes for subsequent messaging; f) at the coordinator point, the formed message exchange routes are taken into account for each network exchange point of the graph, based on messages from each network exchange point; g) steps e)-f) are iteratively repeated until the coordinator point informs that there are no network exchange points.
EFFECT: increasing the efficiency and speed of message transmission between the computing nodes of the network.
3 cl, 3 dwg, 2 tbl

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0001] Настоящее техническое решение относится к области информационных технологий, а также к области управления большими графовыми данными, в частности, к способам передачи графовой информации между узлами сети с помощью циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией.[0001] The present technical solution relates to the field of information technology, as well as to the field of managing large graph data, in particular, to methods of transferring graph information between network nodes using cyclic distributed asynchronous messaging with weak synchronization.

УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY

[0002] Из уровня техники известен подход передачи сообщений с помощью построения графовой модели узлов обмена, например, различные реализации модели Bulk Synchronous Parallel (BSP) (https://en.wikipedia.org/wiki/Bulk_synchronous_parallel), в частности, модель, реализованная в Apache Giraph (http://giraph.apache.org/intro.html). Данная модель основана на алгоритме поиска кратчайшего пути между узлами обмена, для чего выполняется определение расстояния между вершинами в графовой структуре.[0002] From the prior art, a message passing approach is known by building a graph model of exchange nodes, for example, various implementations of the Bulk Synchronous Parallel (BSP) model (https://en.wikipedia.org/wiki/Bulk_synchronous_parallel), in particular, the model, implemented in Apache Giraph (http://giraph.apache.org/intro.html). This model is based on the algorithm for finding the shortest path between exchange nodes, for which the distance between the nodes in the graph structure is determined.

[0003] Известными решениями для поиска кратчайшего пути является - поиск кратчайшего пути между двумя вершинами взвешенного графа (Взвешенным называется граф, ребра которого имеют веса). Наиболее эффективным алгоритмом поиска кратчайшего пути на графах с не отрицательными весами является алгоритм Dijkstra (https://en.wikipedia.org/wiki/Diikstra%27s_algorithm). Алгоритм требует последовательного поиска пути от наиболее ближайшей (на текущий момент) вершины в первую очередь. Т.е. если известно, что путь может проходить через обе вершины, то алгоритм продолжает поиск с ближайшей из двух вершин.[0003] Known solutions for finding the shortest path is - finding the shortest path between two vertices of a weighted graph (Weighted graph is called 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 nearest (at the current moment) 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.

[0004] Алгоритм CMMS (критерий - OUT) позволяет выполнять поиск кратчайшего пути в параллельном режиме. Алгоритм по определенному критерию выбирает подмножество вершин, через которые может проходить кратчайший пути. Далее эти вершины могут обрабатываться параллельно (см. https://people.mpi-inf.mpg.de/~mehlhorn/ftp/ParallelizationDiikstra.pdf).[0004] Algorithm CMMS (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).

[0005] Недостатки известных решений заключаются в том, что в решении Giraph вершина в рамках супершага один раз принимает сообщения, и один раз отправляет. В случае применения массивно параллельных вычислительных систем, в ряде случаев, сильная система синхронизации препятствует полной загрузке всех процессоров и увеличивает время работы алгоритма.[0005] The disadvantages of the known solutions are that in the Giraph solution, the vertex within the super step receives messages once and sends once. In the case of massively parallel computing systems, in some cases, a strong synchronization system prevents the full load of all processors and increases the algorithm's running time.

[0006] Таким образом, в заявленном решении предлагается совершать множественные пересылки между вершинами за счет более слабой синхронизации.[0006] Thus, in the claimed solution, it is proposed to perform multiple transfers between nodes due to weaker synchronization.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[0007] Решаемой технической проблемой с помощью заявленного изобретения является создание нового метода циклического распределенного асинхронного обмена сообщениями между узлами сети со слабой синхронизацией, для работы с большими графами.[0007] The technical problem to be solved using the claimed invention is the creation of a new method of circular distributed asynchronous messaging between network nodes with weak synchronization, for working with large graphs.

[0008] Технический результат заключается в повышении эффективности и скорости передачи сообщений между узлами сети, что способствует быстрому решению прикладных задач в системе управления большими графами (FastGraph).[0008] The technical result consists in increasing the efficiency and speed of message transmission between network nodes, which contributes to the rapid solution of applied problems in a large graph management system (FastGraph).

[0009] Заявленный результат достигается за счет компьютерно-реализуемого способа циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, выполняемого с помощью процессора и содержащего этапы, на которых:[0009] The claimed result is achieved by a computer-implemented method of cyclical distributed asynchronous messaging with weak synchronization, performed using a processor and containing the steps at which:

a) определяют множество точек сетевого обмена сообщениями, где каждая точка представляет собой вычислительный узел;a) define a set of network messaging points, where each point represents a computing node;

b) формируют модель графа для обмена сообщениями между точками сетевого обмена, в котором вершинами являются точки сетевого обмена, а ребрами -факт отправки сообщений;b) form a graph model for the exchange of messages between network exchange points, in which the vertices are the network exchange points, and the edges are the fact of sending messages;

c) определяют точку сетевого обмена - координатора исполнения обмена сообщениями;c) define the point of network exchange - the coordinator of the execution of the exchange of messages;

d) осуществляют отправку сообщений от точки координатора по меньшей мере одной точке сетевого обмена;d) send messages from the coordinator point to at least one network exchange point;

e) получают ответ от точки сетевого обмена, получившей сообщение на этапе d), причем упомянутый ответ содержит идентификаторы смежных точек сетевого обмена, в которые будут направлены сообщения от данной точки сетевого обмена, при этом упомянутая точка сетевого обмена формирует маршруты последующего обмена сообщениями;e) receive a response from the network exchange point that received the message in step d), said response containing identifiers of adjacent network exchange points to which messages will be sent from this network exchange point, said network exchange point generating subsequent messaging routes;

f) на точке координаторе осуществляют учет сформированных маршрутов обмена сообщениями для каждой точки сетевого обмена графа, на основании сообщений от каждой точки сетевого обмена;f) at the coordinator point, the generated message exchange routes are recorded for each network exchange point of the graph, based on messages from each network exchange point;

g) итеративно повторяют этапы e)-f) до того момента, пока точка координатор не сообщит, что точки сетевого обмена отсутствуют.g) repeat steps e) through f) iteratively until the point coordinator reports that there are no network exchange points.

[0010] В одном из частных примеров выполнения способа каждая вершина содержит хранилище состояний, в котором содержится информация о признаке посещения.[0010] In one of the particular examples of the method, each node contains a state store, which contains information about the sign of a visit.

[0011] Заявленный технический результат достигается также за счет системы циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, содержащей по меньшей мере один процессор и по меньшей мере одно средство памяти, которое хранит машиночитаемые инструкции, которые при их исполнении процессором реализуют вышеуказанный способ.[0011] The claimed technical result is also achieved due to a system of cyclic distributed asynchronous messaging with weak synchronization, containing at least one processor and at least one memory means that stores machine-readable instructions that, when executed by the processor, implement the above method.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS

[0012] Фиг. 1 иллюстрирует общий вид конической модели обмена сообщениями (пример реализации)[0012] FIG. 1 illustrates a general view of the conical messaging model (implementation example)

[0013] Фиг. 2 иллюстрирует блок-схему выполнения заявленного способа.[0013] FIG. 2 illustrates a block diagram of the implementation of the claimed method.

[0014] Фиг. 3 иллюстрирует пример вычислительной системы.[0014] FIG. 3 illustrates an example of a computing system.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯCARRYING OUT THE INVENTION

[0015] На Фиг. 1 представлен пример реализации конической модели (100) обмена сообщениями. Точка (110) представляет узел - центр конуса, точка (150) - вершина конуса, точки (101) - (106) - узлы обмена данными, располагаемые на окружности конуса. В рамках реализации заявленного решения узлы конической модели обмениваются заданными типами сообщений, представленными в Таблице 1.[0015] FIG. 1 shows an example of the implementation of the 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. As part of the implementation of the declared solution, the nodes of the conical model exchange the specified types of messages presented in Table 1.

Figure 00000001
Figure 00000001

[0016] Необходимо отметить, что данный пример показывает лишь частную реализацию в виде конической архитектуры, которая может быть представлена различными вариациями графовой модели с сохранением заявленного функционала и основных вычислительных узлов решения (Таблица 2).[0016] It should be noted that 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 and the main computational nodes of the solution (Table 2).

Figure 00000002
Figure 00000002

[0017] Узел сети, расположенный в вершине конуса (150) назначается координатором. С вершиной конуса (150) не ассоциируются никакие вершины (101-106, 110) графа. В координаторе храниться информация необходимая для выполнения обмена и работы (специфично для процесса).[0017] The host located at the apex 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 the information necessary to perform the exchange and work (specific to the process).

[0018] Узел (110), расположенный в центре конуса, может посылать сообщение самому себе (т.е. центр конуса может быть на периферии). Каждое следующее семейство конусов в рамках одной вершины может быть инициировано только по окончании предыдущего. Детектировать окончание семейства конусов является функцией фреймворка. Это - единственная точка синхронизации (барьер) в конической модели.[0018] Node (110) located at the center of the cone can send a message to itself (ie, the center of the cone can be at the periphery). Each next family of cones within one vertex can be initiated only after the end of the previous one. It is a framework function to detect the end of a cone family. This is the only synchronization point (barrier) in the conical model.

[0019] Может быть несколько вершин конуса, осуществляющих операции параллельно. Порождаемые ими семейства конусов независимы друг от друга. В то же время они используют одни и те же точки, и обработка сообщений внутри точки происходит последовательно и синхронно.[0019] There may be multiple cone vertices operating in parallel. The families of cones they generate are independent of each other. At the same time, they use the same points, and the processing of messages within the point occurs sequentially and synchronously.

[0020] На каждом из этапов исполнения алгоритма коническая модель обеспечивает взаимодействие между вычислительными узлами и координатором (150), в частности, отправления запросов, получение ответов, синхронизацию исполнения через ожидание ответов от всех узлов.[0020] At each of the stages of the algorithm execution, 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.

[0021] На Фиг. 2 представлена блок-схема предлагаемого способа (200) циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией. На первом этапе (201) определяют множество точек сетевого обмена сообщениями, по которым на этапе (202) формируются модель графа для обмена сообщениями между точками сетевого обмена, в котором вершинами являются точки сетевого обмена, а ребрами - факт отправки сообщений.[0021] FIG. 2 shows a block diagram of the proposed method (200) of cyclical distributed asynchronous messaging with weak synchronization. At the first step (201), a plurality of network messaging points are determined, over which, in step (202), a graph model is formed for exchanging messages between network exchange points, in which the vertices are network exchange points, and the edges are the fact of sending messages.

[0022] На этапе (203) определяют точку сетевого обмена - координатора исполнения обмена сообщениями (150), т.е. вершину конуса - Pv, и инициирующие данные алгоритма dv для данной точки. Инициирующий конус в семействе конусов с помощью точки Pv имеет отличия от следующих в том, что он инициируется при помощи сообщения CRAM, в то время как последующие - при помощи сообщений СВМ.[0022] In step (203), the network exchange point is determined - the coordinator of the messaging execution (150), i. E. the apex of the cone is Pv, and the dv algorithm trigger data for that point. The initiating cone in the family of cones using the Pv point differs from the following in that it is initiated using the CRAM message, while the subsequent ones - using the CBM messages.

[0023] На этапе (203) при выполнении инициализации выполняется создание координатора исполнения (150) и заданного количества вычислительных узлов - центров конусов для осуществления процесса обмена сообщениями. На данном этапе (203) также определяется алгоритм распределения (партиционирования) графа, предназначенный для формирования вычислительных узлов, поскольку каждый вычислительный узел отвечает за обработку части графа - порождает свое семейство конусов. Примером такого алгоритма может служить алгоритм вычисления хеш-функции идентификатора mod K (http://personal.kent.edu/~rmuhamma/Algorithms/MyAlgoritlmis/h[0023] At step (203), when performing initialization, an execution coordinator (150) and a predetermined number of computing nodes - the centers of the cones - are created to carry out the messaging process. At this stage (203), an algorithm for the distribution (partitioning) of the graph is also determined, intended for the formation of computational nodes, since each computational 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 the identifier mod K (http://personal.kent.edu/~rmuhamma/Algorithms/MyAlgoritlmis/h

[0024] На узле-координаторе (150) функция алгоритма Av вычисляет узел - центр конуса (110) Рс и ассоциированные данные dvc, что составляет сообщение CRAM:[0024] At the coordinator node (150), the algorithm function Av calculates the node - the center of the cone (110) Pc and the associated data dvc, which constitutes the CRAM message:

Av(dv) → (Рс, dvc).Av (dv) → (Pc, dvc).

[0025] Следующим шагом (204) является отправка координатором (150) сообщения CRAM точке сетевого обмена - центру конуса (110). Подробное описание шага представлено в разделе с описанием примера реализации способа на примере алгоритма CMMS-OUT.[0025] The next step (204) is the coordinator (150) sending a CRAM message to the network exchange point - the center of the cone (110). 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.

[0026] На шаге (205) происходит следующее - на узле (110) (центр конуса) функция алгоритма Ас вычисляет список вершин (101) - (106) на периферии Pbn и ассоциированные данные dcbn, что составляет набор СВМ; также вычисляется САМ, в который включается список периферийных вершин (необходим для отслеживания завершения семейства конусов в узле-координаторе):[0026] In step (205), the following occurs - at node (110) (center of the cone), the function of the Ac algorithm calculates the list of vertices (101) - (106) at the periphery Pbn and the associated data dcbn, which constitutes the CBM set; CAM is also calculated, which includes a list of peripheral vertices (needed to track the completion of the family of cones in the coordinator node):

Figure 00000003
Figure 00000003

[0027] На шаге (206) происходит отправка САМ с данными из предыдущего пункта от точки сетевого обмена (центра конуса (110)) узлу координатору (150). Подробное описание данного шага представлено в разделе с описанием примера реализации способа на примере алгоритма CMMS-OUT.[0027] At step (206), the CAM is sent with data from the previous point from the network exchange point (the center of the cone (110)) to the coordinator node (150). A detailed description of this step is presented in the section describing an example of the implementation of the method using the example of the CMMS-OUT algorithm.

[0028] На этапе (207) на точке координаторе (150) осуществляют учет сформированных маршрутов обмена сообщениями для каждой точки сетевого обмена графа (101)-(106), (110) на основании получаемых сообщений от каждой точки сетевого обмена. Принцип обработки зависит от процесса. Один из возможных принципов - вести две очереди - одна со списком всех точек сетевого обмена, которые необходимо посетить, а вторая очередь - со списком посещенных вершин.[0028] At step (207), at the point coordinator (150), the generated messaging routes for each network exchange point of the graph (101) - (106), (110) are taken into account based on the received messages from each network exchange point. The processing principle 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 one with a list of visited vertices.

[0029] На шаге (208) происходит проверка - посещены ли все точки сетевого обмена, завершены ли все параллельные работы. Если да, то обмен завершается. Если нет, происходит новая итерация и шаги (205-207) повторяются.[0029] At step (208), it is checked whether all network exchange points have been visited, whether all parallel operations have been completed. If so, the exchange ends. If not, a new iteration occurs and steps (205-207) are repeated.

[0030] Далее рассмотрим пример реализации способа (200) на примере алгоритма CMMS-OUT.[0030] Next, consider an example of implementation of the method (200) using the example of the CMMS-OUT algorithm.

[0031] Приведем пример реализации способа (200) на примере алгоритма CMMS-OUT (см. Фиг. 1). Алгоритм CMMS-OUT в конической модели описывает алгоритм поиска кратчайших путей (в классическом варианте однонаправленное), позволяющий находить кратчайшие пути и расстояния между некоторой вершиной (источником) и всеми остальными вершинами в графе - dist(n).[0031] Let us give an example of implementation of the method (200) using the example of the CMMS-OUT algorithm (see Fig. 1). The CMMS-OUT algorithm in the conical model describes an algorithm for finding the shortest paths (in the classical version, unidirectional), which allows finding the shortest paths and distances between a certain vertex (source) and all other vertices in the graph - dist (n).

[0032] Алгоритм итеративный. Вершины делятся на непосещенные Q, посещенные и текущие С. Каждой вершине сопоставляется динамически (итеративно) обновляемое временное расстояние tdist(n) - минимальное из известных на данный момент расстояний от источника до данной вершины (предварительное расстояние). В посещенных вершинах tdist(n) = dist(n).[0032] The algorithm is iterative. Vertices are divided into unvisited Q, visited and current C. Each vertex is matched dynamically (iteratively) updated time distance tdist (n) - the minimum of the currently known distances from the source to the given vertex (preliminary distance). At the visited vertices tdist (n) = dist (n).

[0033] На первом шаге (итерации) tdist(s) = 0 для источника и tdist(n) = Infinity для всех остальных вершин n.[0033] In the first step (iteration), tdist (s) = 0 for the source and tdist (n) = Infinity for all other vertices n.

[0034] При каждом шаге (итерации) обновляется временное расстояние от текущих вершин до их инцидентов (вершин, к которым идут исходящие из них ребра), после чего текущие вершины объявляются посещенными. Следующие текущие вершины (следующие вершины для посещения) определяются условием:[0034] At each step (iteration), the time distance from the current vertices to their incidents (the vertices to which the outgoing edges go) is updated, after which the current vertices are declared visited. The next current peaks (the next peaks to visit) are determined by the condition:

С={ n | tdist(n) ≤ min { tdist(u) + w(u, z) | u in Q, u connected to z } }С = {n | 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).The quantity L = min {tdist (u) + w (u, z) | u in Q, u connected to z} (which is part of condition C) is hereinafter referred to as a threshold.

[0035] Для удобства описания опишем поиск кратчайшего пути из двух точек сетевого обмена - из точки left (101) в точку right (106), то есть найти dist(right). Описание алгоритма будет соотнесено с этапами модели описанными выше (этапы из Фиг. 2).[0035] For convenience of description, let us describe the search for the shortest path from two points of network exchange - from point left (101) to point right (106), that is, find dist (right). The description of the algorithm will be related to the steps of the model described above (steps from Fig. 2).

[0036] Первые этапы модели одинаковы для всех алгоритмов (и для CMMS-OUT в частности), и подготавливают возможность работы алгоритмов. Этапы (201) - (203) выполняются аналогично описанному выше способу реализации.[0036] The first steps of the model are the same for all algorithms (and for CMMS-OUT in particular), and prepare the algorithms to work. Steps (201) - (203) are performed similarly to the above-described implementation method.

[0037] В координаторе (150) ведется две приоритезированные очереди точек, одна с приоритетом по порогу (threshold), и вторая с приоритетом по минимальному весу пути - minPathWeight = min { tdist по вершинам точки }.[0037] In the coordinator (150), two prioritized queues of points are maintained, one with priority according to the threshold, and the second with priority according to the minimum path weight - minPathWeight = min {tdist on the vertices of the point}.

[0038] В вершине конуса (cone vertex) помещается координатор. С вершиной конуса не ассоциируются никакие вершины графа.[0038] A coordinator is placed at the cone vertex. No vertices of the graph are associated with the vertex of the cone.

[0039] В работе алгоритма участвуют точки сетевого обмена (вершины) и вычислительные узлы (ВУ). Вычислительный узел ассоциирован с набором вершин - то есть каждый ВУ включает в себя несколько вершин (точек сетевого обмена). Каждая из вершин (точка сетевого обмена) ассоциирована ровно с одним ВУ.[0039] The operation of the algorithm involves network exchange points (vertices) and computing nodes (VU). A computing node is associated with a set of nodes - that is, each VU includes several nodes (network exchange points). Each of the vertices (network exchange point) is associated with exactly one VU.

[0040] С каждым ВУ ассоциировано хранилище состояний вершин ВУ (специфическое для процесса). В хранилище для каждой вершины ВУ хранятся:[0040] With each VU there is an associated node state store (process specific). The storage for each VU vertex contains:

предварительное расстояние (tdist);preliminary distance (tdist);

признак посещения;sign of visiting;

значение minCEW(u) = min { w(u, z) | u connected to z } - minimum connected edge weight, определяющее минимум веса исходящего ребра.value minCEW (u) = min {w (u, z) | u connected to z} - minimum connected edge weight, which specifies the minimum weight of the outgoing edge.

[0041] Также в хранилище хранится текущее консолидированное для всех вершин ВУ пороговое значение (threshold).[0041] The storage also stores the current threshold value, consolidated for all nodes of the VC.

[0042] Как уже отмечалось выше на этапе (203) происходит определение координатора исполнения, а также происходит партиционирование - выбор заданного количества (X) вычислительных узлов (ВУ), которые будут определять построение семейства конусов и будут обеспечивать параллельное исполнение алгоритма.[0042] As noted above, at step (203), the execution coordinator is determined, and partitioning also occurs - the selection of a given number (X) of computational nodes (VN), which will determine the construction of a family of cones and will provide parallel execution of the algorithm.

[0043] Координатор не знает где располагается стартовая точка вычисления кратчайшего пути (left) и финальная точка nyra(right).[0043] The coordinator does not know where the starting point for calculating the shortest path (left) and the ending point nyra (right) are located.

[0044] Для того чтобы найти стартовую точку left (для инициации алгоритма) координатор отправляет сообщение вычислительным узлам (ВУ) и получает ответ в каком вычислительном узле находится стартовая вершина.[0044] In order to find the starting point left (to initiate the algorithm), the coordinator sends a message to the computational nodes (CA) and receives a response in which computational node the starting vertex is located.

[0045] Далее координатор на этапе (204) отправляет сообщение найденному ВУ в котором находится точка left.[0045] Next, the coordinator at step (204) sends a message to the found VU where the left point is.

[0046] На данном этапе (204) происходит отправка сообщения CRAM Init(left(101)) к точке сетевого обмена left (101) (начало пути). Вершина left (101) посещается (все пути к ней = 0). Это происходит при первой итерации алгоритма.[0046] At this stage (204), the CRAM Init message (left (101)) is sent to the network exchange point left (101) (the beginning of the path). The vertex left (101) is visited (all paths to it = 0). This happens on the first iteration of the algorithm.

[0047] В дальнейшем координатор (150) (в дальнейших итерациях) на этапе (204) отправляет входные данные для этапа (205) - которые являются набором вершин, которые необходимо посетить в ходе выполнения этапа (205), которые распределены по различным ВУ, в парах с ассоциированным с вершиной весом пути к ней.[0047] Subsequently, the coordinator (150) (in further iterations) at step (204) sends the input data for step (205) —which is a set of vertices to be visited during step (205), which are distributed across different VUs, in pairs with the weight of the path to it associated with the vertex.

[0048] Таким образом координатор (150) может отправлять эти сообщения на этапе (204) нескольким ВУ параллельно, и соответственно шаги (205) - (206) будут выполняться в параллели для каждого ВУ. С каждым ВУ ассоциирован свой набор вершин.[0048] Thus, the coordinator (150) can send these messages in step (204) to several TDs in parallel, and accordingly, steps (205) - (206) will be performed in parallel for each TD. Each VU has its own set of vertices associated with it.

[0049] На этапе (205) ВУ, получившая сообщение от координатора (150), формирует маршруты последующего обмена сообщениями. ВУ извлекает список смежных вершин и распределяет работу по добавлению этих вершин графа в очередь для посещения между соответствующим ВУ.[0049] In step (205), the VU, having received the message from the coordinator (150), generates routes for the subsequent exchange of messages. The VU retrieves a list of adjacent vertices and distributes the work of adding these graph vertices to the queue for visiting between the corresponding VU.

[0050] Каждый вычислительный узел должен рассчитать предел расстояния L для следующего шага и сообщить его координатору (150).[0050] Each computing node must calculate the distance limit L for the next hop and report it to the coordinator (150).

[0051] На этапе (205) происходит формирование на ВУ маршрутов последующего обмена сообщениями.[0051] At step (205), subsequent message exchange routes are generated at the WU.

[0052] Для каждой точки сетевого обмена которая получила сообщение, отправленное на предыдущем этапе (204):[0052] For each network exchange point that received the message sent in the previous step (204):

а) Ставится признак посещения (в хранилище состояний)a) The sign of a visit is set (in the state store)

б) Выполняется макрошаг (Конус). Ассоциированная точка становится cone center.b) A macro step (Cone) is performed. The associated point becomes cone center.

в) Строится список вершин, куда идут ребра от данной вершины (incident nodes), в парах с ассоциированным с вершиной весом пути к ней (через текущую вершину). Применяется, при необходимости, фильтрация ребер и вершин.c) A list of vertices is built, where the edges go from the given vertex (incident nodes), in pairs with the associated weight of the path to it (through the current vertex). Filtering of edges and vertices is applied, if necessary.

г) По списку рассылается СВМ запроса порогового значения ThresholdRequest([(node, pathWeight)]). Сообщения агрегируются по ВУ, к которым принадлежат целевые вершины.d) ThresholdRequest ([(node, pathWeight)]) is sent according to the list. Messages are aggregated by VUs to which the target vertices belong.

[0053] Внутри каждой вершины (точки сетевого обмена) по получении ThresholdRequest:[0053] Within each vertex (network exchange point) upon receipt of the ThresholdRequest:

1. В хранилище состояний вершин для каждой из непосещенных вершин:1. In the storage of vertex states for each of the unvisited vertices:

а) Если нет состояния (вершина не была ранее видима), добавляется объект состояния для данной вершины. При открытии новой вершины вершина считается непосещенной, tdist равен бесконечности, minCEW рассчитывается при инициализации состояния и далее не меняется.a) If there is no state (the vertex was not previously visible), a state object is added for this vertex. 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 does not change further.

б) производится обновление предварительных расстояний непосещенных вершин: если новое предварительное расстояние pathWeight меньше текущего tdist, новое становится текущим.b) the preliminary distances of unvisited vertices are updated: if the new preliminary distance of pathWeight is less than the current tdist, the new one becomes the current one.

2. Вычисляется предложение по пороговому значению от ВУ: пороговое значение для всех непосещенных вершин из списка, принадлежащих данному вычислительному узлу (ВУ) (с использованием веса пути к ней и минимума веса исходящего ребра minCEW). Данная величина запоминается в хранилище.2. The sentence is calculated by the threshold value from the VU: the threshold value for all unvisited vertices from the list belonging to the given computational node (VU) (using the weight of the path to it and the minimum weight of the outgoing edge minCEW). This value is stored in the storage.

[0054] После того как на этапе (205) сформированы предложения, они на этапе (206) отправляются координатору.[0054] After the proposals are generated in step (205), they are sent to the coordinator in step (206).

[0055] На этапе (206) на координатор высылается сообщение САМ VisitReport(thresholdOffer, minPathWeight) - информация по посещению ВУ, содержащая текущее пороговое значение для данного ВУ, взятое из хранилища, и со значением minPath Weight, равным минимуму tdist по вершинам ВУ.[0055] At step (206), the message CAM VisitReport (thresholdOffer, minPathWeight) is sent to the coordinator - information on visiting the VU containing the current threshold value for this VU, taken from the storage, and with the minPath Weight value equal to the minimum tdist for the VC vertices.

[0056] Также на данном этапе от каждой вершины на координатор (150) отсылается сообщение CSM ThresholdOffer(thresholdOffer, minPath Weight) со значением предложения порогового значения thresholdOffer и со значением minPathWeight, равным минимуму tdist по вершинам ВУ.[0056] Also at this stage, a CSM ThresholdOffer (thresholdOffer, minPath Weight) message is sent from each vertex to the coordinator (150) with a thresholdOffer proposal value and a minPathWeight value equal to the minimum tdist for the VC vertices.

[0057] На этапе (207) координатор (150) выбирает наименьший предел и дает команду вычислительным узлам посетить те вершин, которые попадают в данный предел.[0057] In step (207), the coordinator (150) selects the smallest limit and instructs the computational nodes to visit those vertices that fall within this limit.

[0058] Координатор вычисляет пороговое значение L и посещает те вершины, которые попали в данный предел.[0058] The coordinator calculates the threshold value L and visits those vertices that fall within this limit.

[0059] На следующем этапе (207) на координаторе (150) происходит учет информации о сформированных маршрутах обмена сообщениями, а именно:[0059] At the next stage (207) on the coordinator (150), the information about the generated message exchange routes is taken into account, namely:

а) Координатор по получении САМ VisitReport обновляет приоритезированные очереди точек.a) Upon receipt of the VisitReport CAM, the coordinator updates the prioritized queues of points.

б) В координаторе все сообщения CSM ThresholdOffer агрегируются и вычисляется эффективное пороговое значение. Обновляются приоритезированные очереди.b) In the coordinator, all CSM ThresholdOffer messages are aggregated and the effective threshold value is calculated. Prioritized queues are updated.

[0060] Также на этапе (207) происходит вычисление вершин для следующего посещения - из приоритезированной очереди в координаторе выделяются все ВУ, имеющие непосещенные вершины, удовлетворяющие пороговому значению.[0060] Also at step (207), the vertices for the next visit are calculated - from the prioritized queue in the coordinator, all VUs that have unvisited vertices that satisfy the threshold value are selected.

[0061] Также после учета сформированных маршрутов на этапе (207) происходит проверка окончания работы алгоритма: если в ранее полученных маршрутах имеется информация о вершине right, то завершить алгоритм и вернуть ассоциированное с right значение tdist как результат работы алгоритма. Если данной вершины не обнаружено, то происходит переход на этап 208.[0061] Also, after taking into account the generated routes at step (207), the algorithm completion is checked: if the previously received routes contain information about the vertex right, then terminate the algorithm and return the tdist value associated with right as a result of the algorithm. If this vertex is not found, then flow to step 208.

[0062] На этапе (208) происходит проверка - есть ли новые вершины для посещения (информация об этом была сформирована на предыдущем этапе). Если новых вершин нет, то завершить алгоритм с результатом бесконечность (целевая вершина right не найдена, т.е. нет никакого пути, идущего к ней из left).[0062] At step (208), it is checked 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 the result infinity (the target vertex right was not found, i.e. there is no path going to it from left).

[0063] Если вершины имеются, то дальше происходит итеративный повтор этапов (204_ - (207) алгоритма способа (200).[0063] If there are vertices, then steps (204_ - (207) of the algorithm of method (200) are iteratively repeated).

[0064] Переход к этапу (204) осуществляется исходя их того, что по каждой из выбранных вершин рассылается сообщение CRAM VisitNodes(threshold), далее на этапе (205) каждый ВУ отбирает вершины, соответствующие пороговому значению. Эти вершины объявляются выбранными. Весами пути к ним являются их текущие значения tdist.[0064] The transition to step (204) is carried out based on the fact that a CRAM VisitNodes (threshold) message is sent to each of the selected nodes, then at step (205) each VU selects the nodes corresponding to the threshold value. These vertices are declared selected. The path weights to them are their current tdist values.

[0065] Этапы (206) - (208) выполняются до того момента, пока не будет найдена искомая вершина, или же не обнаружится что пути из точки left в точку right нет, или же алгоритм не остановится по другому критерию остановки - например максимальное количество итераций.[0065] Steps (206) - (208) are performed until the desired vertex is found, or it is not found that there is no path from the left point to the right point, or the algorithm will not stop on another stopping criterion - for example, the maximum number iterations.

[0066] На Фиг. 3 представлен общий вид вычислительного устройства (300), пригодного для выполнения способа (200). Устройство (300) может представлять собой, например, сервер или иной тип вычислительного устройства, который может применяться для реализации заявленного способа.[0066] FIG. 3 shows a general view of a computing device (300) suitable for performing the method (200). The device (300) can be, for example, a server or other type of computing device that can be used to implement the claimed method.

[0067] В общем случае вычислительное устройство (300) содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (305), и устройство для сетевого взаимодействия (306).[0067] In the General case, the computing device (300) contains one or more processors (301) united by a common data exchange bus, memory means such as RAM (302) and ROM (303), input / output interfaces (304), input devices / output (305), and a device for networking (306).

[0068] Процессор (301) (или несколько процессоров, многоядерный процессор) могут выбираться из ассортимента устройств, широко применяемых в текущее время, например, компаний Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. В качестве процессора (301) может также применяться графический процессор, например, Nvidia, AMD, Graphcore и пр.[0068] The processor (301) (or multiple processors, multi-core processor) can be selected from a range of devices currently widely used, for example, Intel ™, AMD ™, Apple ™, Samsung Exynos ™, MediaTEK ™, Qualcomm Snapdragon ™ and etc. The processor (301) can also be a graphics processor, for example, Nvidia, AMD, Graphcore, etc.

[0069] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.).[0069] RAM (302) is a random access memory and is intended for storing machine-readable instructions executed by the processor (301) for performing the necessary operations for logical processing of data. RAM (302), as a rule, contains executable instructions of the operating system and corresponding software components (applications, software modules, etc.).

[0070] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0070] ROM (303) is one or more persistent storage devices such as a hard disk drive (HDD), solid state data storage device (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R / RW, BlueRay Disc, MD), etc.

[0071] Для организации работы компонентов устройства (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, Fire Wire, 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 и т.п.[0071] Various types of I / O interfaces (304) are used to organize the operation of the components of the device (300) and to organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, Fire Wire, 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.

[0072] Для обеспечения взаимодействия пользователя с вычислительным устройством (300) применяются различные средства (305) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0072] To ensure the interaction of the user with the computing device (300), various means (305) I / O information are used, for example, a keyboard, display (monitor), touch display, touch-pad, joystick, mouse manipulator, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.

[0073] Средство сетевого взаимодействия (306) обеспечивает передачу данных устройством (300) посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (306) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0073] The means of networking (306) allows the device (300) to transmit data via an internal or external computer network, for example, Intranet, Internet, LAN, and the like. One or more means (306) may 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 dr.

[0074] Дополнительно могут применяться также средства спутниковой навигации в составе устройства (300), например, GPS, ГЛОНАСС, BeiDou, Galileo.[0074] In addition, satellite navigation aids can also be used as part of the device (300), for example, GPS, GLONASS, BeiDou, Galileo.

[0075] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.[0075] The presented materials of the application disclose the preferred examples of the implementation of the technical solution and should not be construed as limiting other, particular examples of its implementation, not going beyond the scope of the claimed legal protection, which are obvious to specialists in the relevant field of technology.

Claims (10)

1. Компьютерно-реализуемый способ циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, выполняемый с помощью процессора и содержащий этапы, на которых:1. Computer-implemented method of cyclical distributed asynchronous messaging with weak synchronization, performed using a processor and containing the stages at which: a) определяют множество точек сетевого обмена сообщениями, где каждая точка представляет собой вычислительный узел;a) define a set of network messaging points, where each point represents a computing node; b) формируют модель графа для обмена сообщениями между точками сетевого обмена, в котором вершинами являются точки сетевого обмена, а ребрами - факт отправки сообщений;b) form a graph model for the exchange of messages between network exchange points, in which the nodes are network exchange points, and the edges are the fact of sending messages; c) определяют точку сетевого обмена - координатора исполнения обмена сообщениями;c) define the point of network exchange - the coordinator of the execution of the exchange of messages; d) осуществляют отправку сообщений от точки координатора по меньшей мере одной точке сетевого обмена;d) send messages from the coordinator point to at least one network exchange point; e) получают ответ от точки сетевого обмена, получившей сообщение на этапе d), причем упомянутый ответ содержит идентификаторы смежных точек сетевого обмена, в которые будут направлены сообщения от данной точки сетевого обмена, при этом упомянутая точка сетевого обмена формирует маршруты последующего обмена сообщениями;e) receiving a response from the network exchange point that received the message in step d), said response containing identifiers of adjacent network exchange points to which messages will be sent from this network exchange point, said network exchange point generating subsequent messaging routes; f) на точке координаторе осуществляют учет сформированных маршрутов обмена сообщениями для каждой точки сетевого обмена графа, на основании сообщений от каждой точки сетевого обмена;f) at the coordinator point, the generated message exchange routes are recorded for each network exchange point of the graph, based on messages from each network exchange point; g) итеративно повторяют этапы e)-f) до того момента, пока точка координатор не сообщит, что точки сетевого обмена отсутствуют.g) repeat steps e) through f) iteratively until the point coordinator reports that there are no network exchange points. 2. Способ по п. 1, характеризующийся тем, что каждая вершина содержит хранилище состояний, в котором содержится информация о признаке посещения.2. The method according to claim 1, characterized in that each vertex contains a state store, which contains information about the sign of a visit. 3. Система циклического распределенного асинхронного обмена сообщениями со слабой синхронизацией, содержащая по меньшей мере один процессор и по меньшей мере одно средство памяти, которое хранит машиночитаемые инструкции, которые при их исполнении процессором реализуют способ по любому из пп. 1, 2.3. A system of circular distributed asynchronous messaging with weak synchronization, containing at least one processor and at least one memory means that stores machine-readable instructions, which, when executed by the processor, implement the method according to any one of claims. 12.
RU2021105737A 2021-03-05 2021-03-05 Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs RU2761136C1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2021105737A RU2761136C1 (en) 2021-03-05 2021-03-05 Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs
PCT/RU2021/000217 WO2022186718A1 (en) 2021-03-05 2021-05-27 Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2021105737A RU2761136C1 (en) 2021-03-05 2021-03-05 Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs

Publications (1)

Publication Number Publication Date
RU2761136C1 true RU2761136C1 (en) 2021-12-06

Family

ID=79174459

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2021105737A RU2761136C1 (en) 2021-03-05 2021-03-05 Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs

Country Status (2)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1553732A2 (en) * 2003-12-09 2005-07-13 Volkswagen AG Method and arrangement for starting a node in a communication system
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 (en) * 2019-12-13 2020-06-01 Общество С Ограниченной Ответственностью "Убик" Computer-implemented method of processing information on objects, using combined calculations and methods of analyzing data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1553732A2 (en) * 2003-12-09 2005-07-13 Volkswagen AG Method and arrangement for starting a node in a communication system
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 (en) * 2019-12-13 2020-06-01 Общество С Ограниченной Ответственностью "Убик" Computer-implemented method of processing information on objects, using combined calculations and methods of analyzing data

Also Published As

Publication number Publication date
WO2022186718A1 (en) 2022-09-09

Similar Documents

Publication Publication Date Title
US20220391771A1 (en) Method, apparatus, and computer device and storage medium for distributed training of machine learning model
JP6612469B2 (en) Method and system for decomposing problems with discrete optimization into multiple smaller subproblems and their use to solve problems
US9848306B2 (en) Contextually aware dynamic group formation
US20160087875A1 (en) Parallel top-k simple shortest paths discovery
US9805140B2 (en) Striping of directed graphs and nodes with improved functionality
TW201820165A (en) Server and cloud computing resource optimization method thereof for cloud big data computing architecture
WO2018077181A1 (en) Method and device for graph centrality calculation, and storage medium
CN104796270A (en) Method and device for recommending suspicious components during problem diagnosis of cloud application
JP6178004B2 (en) System and method for distance approximation in graphs
JP6608972B2 (en) Method, device, server, and storage medium for searching for group based on social network
US20230057068A1 (en) Request throttling using pi-es controller
JP6155833B2 (en) Transmission information fluctuation detection method, transmission information fluctuation detection apparatus, and transmission information fluctuation detection program
US20190141604A1 (en) Method and system for achieving auto adaptive clustering in a sensor network
JP2023546040A (en) Data processing methods, devices, electronic devices, and computer programs
CN113568860A (en) Deep learning-based topology mapping method, apparatus, medium, and program product
US9300712B2 (en) Stream processing with context data affinity
RU2761136C1 (en) Method and system for cyclic distributed asynchronous messaging with weak synchronization for working with big graphs
WO2020248633A1 (en) Group member management method and apparatus, group message processing method and apparatus, device, and storage medium
TWI758223B (en) Computing method with dynamic minibatch sizes and computing system and computer-readable storage media for performing the same
Jain et al. An edge computing paradigm for time-sensitive applications
EA044373B1 (en) METHOD AND SYSTEM OF CYCLIC DISTRIBUTED ASYNCHRONOUS MESSAGE EXCHANGE WITH WEAK SYNCHRONIZATION FOR WORKING WITH LARGE GRAPHS
US20230252306A1 (en) Asynchronous architecture for evolutionary computation techniques
CN111127230A (en) Dynamic social circle determination method, device, equipment and storage medium
Hui et al. Modelling the protocol stack in NCS with deterministic and stochastic petri net
WO2022021199A1 (en) Neural network model construction method and device therefor