Milestone #15372: art multi-threading phase 1
Detect ordering conflicts of modules in paths
The following specification of paths is an error:
p1: [a, b, c] p2: [d, c]
In the above example, the
c module follows either
d. If (e.g.)
c requires products produced by
b, then the above specification can only result in a successful execution if
p1 is executed before
p2. The processing order of paths is unspecified by
art, and in a multi-threaded environment, parallel processing of trigger paths implies that there can be no inconsistent module specifications among them.
The feature request is to catch this type of module-ordering conflict across paths.
#2 Updated by Kyle Knoepfel over 2 years ago
- Status changed from Assigned to Accepted
Preliminary work I did on this feature was based on an incomplete understanding on the functionality required. The estimated time should be updated to take into account using the
consumes information to build the graph of dependencies necessary for catching such an error.
#4 Updated by Kyle Knoepfel about 2 years ago
- Status changed from Accepted to Assigned
- Assignee set to Kyle Knoepfel
- Target version set to 3.00.00
- % Done changed from 0 to 80
This feature has largely been implemented by various commits:
Data-product dependency checking is done for all workflows. If users wish to print out a graph (in DOT format) file for a particular workflow, the
'-g,--data-dependency-graph' command can be used (e.g.):
art -c config.fcl -g config.dot dot config.dot -Tpdf -o config.pdf
Some cleaning up of the implementation and some tests are yet needed.