Abstract
The problem of parallel computation of the value of a function of multiset of values recorded at the vertices of a directed strongly connected graph is considered. Computation is performed by automata that are located at the graph vertices. The automaton has local information on the graph: it "knows" only about arcs outgoing from the vertex it resides in, but it "does not know" where (to which vertices) those arcs go. The automata exchange messages with each other that are transmitted along the graph arcs that play role of message transfer channels. Computation is initiated by a message coming from outside to the automaton located at the initial vertex of the graph. At the end of work, this automaton sends outside the calculated function value. Two algorithms are proposed to solve this problem. The first algorithm carries out an analysis of the graph. Its purpose is to mark the graph by a change of the states of the automata at the vertices. Such marking is used by the second algorithm, which calculates the function value. This calculation is based on a pulsation algorithm: first, request messages are distributed from the automaton of the initial vertex over the graph, which should reach each vertex, and then response messages are sent from each vertex back to the initial vertex. In fact, the pulsation algorithm calculates aggregate functions for which the value of a function of a union of multisets is calculated by the values of the function of these multisets. However, it is shown that any function F(x) has an aggregate extension; that is, an aggregate function can be calculated as H(G(x)), where G is an aggregate function. Note that the marking of a graph does not depend on a function that will be calculated. This means that the marking of a graph is carried out once; after that, it can be reused for calculating various functions. Since the automata located in different vertices of the graph work in parallel, both graph marking and function calculation are performed in parallel. It is the first feature of this work. The second feature is that calculations are performed on a dynamically changing graph: its arcs can disappear, reappear or change their target vertices. The constraints put on the graph changes are as minimal as it allows solving this problem in limited time. Estimate of working time is given for both algorithms.
Highlights
Computation is performed by automata that are located at the graph vertices
Computation is initiated by a message coming from outside to the automaton located at the initial vertex of the graph
This calculation is based on a pulsation algorithm: first, request messages are distributed from the automaton of the initial vertex over the graph, which should reach each vertex, and response messages are sent from each vertex back to the initial vertex
Summary
Данная работа находится на пересечении двух направлений исследования, результаты которых опубликованы в статьях [1] и [2]. Так и оценка времени их работы, существенно зависят от того, имеют ли автоматы в вершинах графа какую-то информацию о графе, или каждый автомат находится в начальном состоянии и «ничего не знает» о графе. Алгоритм разметки выполняет первичный обхода графа с помощью пересылаемых сообщений, когда в начальный момент времени все автоматы находятся в начальном состоянии. С помощью алгоритма пульсации можно параллельно вычислять любую функцию от мультимножества значений, записанных в памяти автоматов по всем вершинам графа (мы будем говорить «записанных в вершинах»). Особенность в том, что дуги графа могут динамически изменяться: появляться, исчезать или менять свою конечную вершину. Чтобы через время, ограниченное сверху величиной T0, после изменения дуги корень графа «узнал» об этом или более позднем изменении дуги. Если в какой-то момент времени все изменения в графе прекращаются, то через время, ограниченное сверху величиной T1, в корне. Формальное описание алгоритма приведено в разделе 5, а доказательство правильности работы алгоритма, а также оценка времени работы алгоритма, размеров памяти автомата и сообщений приведены в разделе 6
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Proceedings of the Institute for System Programming of the RAS
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.