Как вывести FRP из направленных ациклических графов?
В настоящее время я ищу для своего следующего проекта. Это на этапе предварительного планирования, поэтому этот вопрос просто для того, чтобы получить представление о существующих технологиях.
НастроитьУ меня есть ориентированный ациклический граф (DAG) с несколькими входами и выходами, подумайте сейчас об искусственной нейронной сети:
Распространенным способом обработки такой структуры является обработка всей сети на каждом (временном) шаге. Я считаю, что это метод, используемый библиотеками frp, такими какnetwire
.
Теперь я нахожусь в удачном положении, что у меня есть поток событий, каждый из которых представляет изменение водин из входных узлов. Идея состоит в том, что мне, вероятно, не придется переходить на каждый узел в сети, если я могу статически знать, что данное изменение повлияет только на его часть.
пример
На изображении выше 5, 7 и 3 являются входами, 11 и 8 являются «скрытыми», а 2, 9 и 10 являются выходными узлами. Изменение в узле 5 повлияет только на узел 11, а в действительности - на узлы 2, 9 и 10. Мне не нужно обрабатывать узлы 7, 3 и 8.
ЦельОбрабатывайте такие сети с минимальной задержкой. Размер графиков, вероятно, достигнет 100 тыс. Узлов, при этом для каждого узла выполняется умеренное количество вычислений.
ПланЯ надеюсь, что кто-то выйдет и рекламирует библиотеку X, которая просто выполняет свою работу.
В противном случае мой текущий план состоит в том, чтобы получить расчет для каждого входного узла из описания графика. Вероятно, я буду использоватьPar
Монаду, так что мне не придется самостоятельно разбираться с зависимостями данных и все равно получать выгоду от многоядерных машин.
Par
план осуществим? Насколько это зависит от объема обработки, необходимой в каждом узле?