Closed psychocoderHPC closed 9 months ago
Another more simple config which is broken and uses only one thread
std::chrono::microseconds task_duration(2);
unsigned n_resources = 2;
unsigned n_tasks = 128;
unsigned n_threads = 1;
unsigned min_dependencies = 0;
unsigned max_dependencies = 10;
Increasing max_dependencies
is starting to trigger the error. The problem should be debug-able because 2 tasks already trigger the issue.
Could be that random graph test only supports up to 5 dependencies and that this is the reason for the error.
The test does not support more than 5 resources.
The test does not support more than 5 resources.
Yes thats why the verification fails. generate_access_pattern()
will create a task graph with up to 10 dependencies but all tasks with >5 dependencies are simply ignored by the execution of this access pattern.
At least we should add asserts, but otherwise I don't see any other way to allow more dependencies , except we would need some macro magic to generate all cases up to a compile-time-defined number of max-dependencies..
At least we should add asserts, but otherwise I don't see any other way to allow more dependencies , except we would need some macro magic to generate all cases up to a compile-time-defined number of max-dependencies..
Macros are not required as soon as we switch to C++17 we can use generator expressions for this.
The dev branch and upcoming fixes #48 fail the random graph test with slide changes.
Changin: https://github.com/ComputationalRadiationPhysics/redGrapes/blob/5f71af63d5cbf2bc51ae795784ad42e133aa9f25/test/random_graph.cpp#L39-L45 to
will result into: