Scheduler Exec Time is exponential
Required prerequisites
- from
aidge_core
:
git remote add fork git@gitlab.eclipse.org:hrouis/aidge_core.git
- from
aidge
:
git remote add fork git@gitlab.eclipse.org:hrouis/aidge.git
git fetch fork # you should then be able to see our branch
git switch fix/scheduler_exec_time
git submodule update # should change the commit of aidge core to the branch fix/scheduler_exec_time
What commit version of aidge do you use
-
aidge_core
: fix/scheduler_exec_time -
aidge
: fix/scheduler_exec_time
Problem description
The recent merge of the branch introducing lstm support also reworked the scheduler. Even thought the tests passed its because they were operating on small graphs.
Trying to call generateScheduling a bigger graph like the following (400+nodes) doesn't work. I am not sure if the execution time is exponential or if an infinite loop occurs. I would more say the first one but I am not sure. However the graph passes multiple time through each branch of the node because for each node it tries to find every possible path in the graph. The more vertices they're are in the graph the longer the execution time.
For the networks mentionned above I have spent 15 minutes on a single node before cancelling exécution.
Reproducible example code
I enhanced the size of the randomGraph
to be tested (and diminished the number of tests) in Test_Scheduler.cpp
to show the problem. Also added an operator<< for the Node class to ease debug.
note
- Currently this issue is blocking for me and @hrouis.
- Make sure to synch aidge_core submodule in aidge repo to ensure CI/CD trigger