improve scheduling for visitor-like pattern

Link: https://github.com/GeneAssembly/biosal/issues/673
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
rename ACTION_ASSEMBLY_GET_STARTING_VERTEX to ACTION_ASSEMBLY_GET_STARTING_KMER

Link: https://github.com/GeneAssembly/biosal/issues/668
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
select parent and child

Link: https://github.com/GeneAssembly/biosal/issues/664
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
add some steps in visitor

Link: https://github.com/GeneAssembly/biosal/issues/664
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
unitig_visitor: check parent for mismatch

Link: https://github.com/GeneAssembly/biosal/issues/664
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
thorium: add multiplexer for small messages

Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
spate: change "Run actor computation" for "Total"

Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
thorium: add code for message multiplexer

Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
implement multiplexer for graph traversal workflow

Link: https://github.com/GeneAssembly/biosal/issues/674
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
thorium: the multiplexer speeds things up as expected

Before:

[boisvert@bigmem biosal]$ grep TIMER log
TIMER [Load input / Count input data] 634.423279 milliseconds
TIMER [Load input / Distribute input data] 1.890401 seconds
TIMER [Load input] 2.524824 seconds
TIMER [Build assembly graph / Distribute vertices] bsal_manager/1000121 dies
TIMER [Build assembly graph / Distribute arcs] 9.988458 seconds
TIMER [Build assembly graph] 15.554747 seconds
TIMER [Traverse graph for unitigs] 1 minutes, 23.689400 seconds
TIMER [Total] 1 minutes, 43.168083 seconds

After:

configuration: 1 KiB, 128 us

100 s 1.16/7 (0.17) 0.17 0.15 0.13 0.17 0.20 0.18 0.15

[boisvert@bigmem biosal]$ grep TIMER log
TIMER [Load input / Count input data] 622.886536 milliseconds
TIMER [Load input / Distribute input data] 1.882216 seconds
TIMER [Load input] 2.505103 seconds
TIMER [Build assembly graph / Distribute vertices] 5.450977 secondsbsal_manager/1000121 dies
TIMER [Build assembly graph / Distribute arcs] 9.020116 seconds
TIMER [Build assembly graph] 14.471093 seconds
TIMER [Traverse graph for unitigs] 1 minutes, 26.395370 seconds
TIMER [Total] 1 minutes, 44.814034 seconds

After:

config with 1 KiB and 512 us

DEBUG_MULTIPLEXER original_message_count 9602584 real_message_count 1151690

[boisvert@bigmem biosal]$ grep TIMER log
TIMER [Load input / Count input data] 637.006165 milliseconds
TIMER [Load input / Distribute input data] 1.780862 seconds
TIMER [Load input] 2.417869 seconds
TIMER [Build assembly graph / Distribute vertices] 5.321532 secondsbsal_manager/1000121 dies
TIMER [Build assembly graph / Distribute arcs] 9.176888 seconds
TIMER [Build assembly graph] 14.498420 seconds
TIMER [Traverse graph for unitigs] 1 minutes, 6.244438 seconds
TIMER [Total] 1 minutes, 25.049934 seconds
Link: https://github.com/GeneAssembly/biosal/issues/674
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
change tag for action

Link: https://github.com/GeneAssembly/biosal/issues/669
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
add option to debug a worker, like -debug-worker 0 0

Link: https://github.com/GeneAssembly/biosal/issues/670
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>