With #40 , it should be possible to partition the graph into subgraphs with no dependencies. These subgraphs are then valid to be executed in a separate thread.
This task would initialize a QThreadPool and the logic for assigning subgraph propagation to threads.
Based on the circuit being simulated, this may induce some load balancing issues, but as long as the number of subgraphs is somewhat greater than the number of executing threads, assigning the subgraph propagations to the QThreadPool, the threadpool will handle the scheduling for maximum operation overlap.
With #40 , it should be possible to partition the graph into subgraphs with no dependencies. These subgraphs are then valid to be executed in a separate thread.
This task would initialize a QThreadPool and the logic for assigning subgraph propagation to threads.
Based on the circuit being simulated, this may induce some load balancing issues, but as long as the number of subgraphs is somewhat greater than the number of executing threads, assigning the subgraph propagations to the QThreadPool, the threadpool will handle the scheduling for maximum operation overlap.
Related to #9