GraphX ​​- пригодность для мультифронтального решателя - PullRequest
0 голосов
/ 21 октября 2018

Я представляю огромную систему линейных уравнений в виде дерева, в котором все узлы связаны с небольшими матрицами 7x7 (3 из них действительно).Чтобы решить эту систему, мне нужно выполнить операции на соседних узлах.

Пример дерева:

        A
     B     C
  D     E     F
0 1 2 3 4 5 6 7 8

Сначала мне нужно объединить матрицы в конечных узлах (триплетах) с их родителями (D, E, F).Затем значения от родителей к родителям (от D и E до B, а также от E и F до C).Ясно, что мне нужно пройти уровень дерева за уровнем.Хоть и об использовании pregel для выполнения этой работы, но он может обрабатывать только одно ребро за раз, тогда как мне нужно обработать 2 или 3 (я имею в виду значения дочерних элементов, доступных для вычислений).Позже мне нужно пойти вниз по дереву, подставляя значения в родительских узлах дочерним элементам.Это то, что я могу сделать эффективно в pregel (или в GraphX)?

Я предполагаю, что из-за того, что

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

это на самом деле не возможно по замыслу ... я прав?

...