- 29 Nov, 2019 1 commit
-
-
The start_chain property does not make sense, as chains are purely 'virtual', i.e. they only fully exist when walking through the computation (by patching them on important events). We initially added the property as a helper for better runtime and simpler implementation, but we think without it we will not get as much inconsistency in the runtime state. Performance can be 're-added' later on.
FritzFlorian committed
-
- 27 Nov, 2019 2 commits
-
-
FritzFlorian committed
-
It is still not working, however we now have no more redundant code, making debugging it simpler.
FritzFlorian committed
-
- 25 Nov, 2019 1 commit
-
-
We changed up some of the memory constraints in the lock free deque and will need to see if this is ok. If so, the single threaded performance looks very good.
FritzFlorian committed
-
- 19 Nov, 2019 1 commit
-
-
Everything so far is untested. We only made sure tha fast path still seems to function correctly. Next up is writing tests for both the fast and slow path to then introduce the slow path. After that we can look at performance optimizations.
FritzFlorian committed
-
- 07 Nov, 2019 1 commit
-
-
This showcases the expected performance when a task executes a sub-tree without inference from other threads. We target to stay about 6x slower than a normal function call.
FritzFlorian committed
-
- 06 Nov, 2019 3 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
This first sketch of the classes captures what we think is needed in terms of general interface and very mich WIP.
FritzFlorian committed
-
- 05 Nov, 2019 1 commit
-
-
We changed how the memory is allocated from passing char* buffers to then store objects into to creating 'fat objects' for all scheduler state. This eases development for us, as we can make changes to data structures without too much effort (e.g. add a second array to manage tasks if required).
FritzFlorian committed
-
- 02 Oct, 2019 1 commit
-
-
Our stack is not calling deconstructors of its elements. This is problematic for e.g. the graph implementation where reference counted images are hold in tasks. To solve this for now we manually call the deconstructor after each tasks (we do so, because a generic, virtual deconstructor adds runtime costs to primitive tasks, requiring us to re-run all benchmarks; with this change we do not need to do this and as we re-work the scheduler anyways we postpone a clean implementation for then).
FritzFlorian committed
-
- 01 Oct, 2019 1 commit
-
-
FritzFlorian committed
-
- 30 Sep, 2019 1 commit
-
-
FritzFlorian committed
-
- 16 Sep, 2019 2 commits
-
-
FritzFlorian committed
-
This allows us to more easily handle them and makes their interface closer to std::thread.
FritzFlorian committed
-
- 02 Sep, 2019 1 commit
-
-
The scheduler yields if it failed to steal any work due to the task lists being empty. This should improve performance on multiprogrammed systems, as it potentially makes room for other worker threads which still have work to perform.
FritzFlorian committed
-
- 30 Aug, 2019 2 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
- 02 Aug, 2019 1 commit
-
-
This might allow us to do lock free, conditional waits in our stealing loop.
FritzFlorian committed
-
- 01 Aug, 2019 2 commits
-
-
FritzFlorian committed
-
This allows the stack and deque class to use the same offset, making it work better with each other.
FritzFlorian committed
-
- 31 Jul, 2019 6 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
Merge: Dataflow See merge request !12
Florian Fritz committed -
FritzFlorian committed
-
Now end users only have to #include<pls/dataflow/dataflow.h> to use all parts of the API. We split dataflow out from the general algorithms header, as it is a rather big API and could bloat the users namespace/includes.
FritzFlorian committed -
FritzFlorian committed
-
- 30 Jul, 2019 2 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
- 29 Jul, 2019 6 commits
-
-
This makes the programming model a full dataflow implementation, as it allows for branching and recursion.
FritzFlorian committed -
FritzFlorian committed
-
FritzFlorian committed
-
FritzFlorian committed
-
Recursion works by using a function node, calling the graph again. We separated an graph invocation form an function invocation within an graph, making the graph only handle one concern.
FritzFlorian committed -
Now all expressions in the assert macro are enclosed in parentheses, avoiding issues.
FritzFlorian committed
-
- 24 Jul, 2019 1 commit
-
-
FritzFlorian committed
-
- 22 Jul, 2019 1 commit
-
-
FritzFlorian committed
-
- 19 Jul, 2019 1 commit
-
-
We separated the structure (input-output flow) from the rest of the architecture and reworked some template programming to have better access to the types required at compile time.
FritzFlorian committed
-
- 11 Jul, 2019 2 commits
-
-
The data can now flow into a graph, follow its path on inptus/outputs and be fetched from the graph after execution. Currently graphs are executed synchronous.
FritzFlorian committed -
The data can now flow into a graph, follow its path on inptus/outputs and be fetched from the graph after execution. Currently graphs are executed synchronous.
FritzFlorian committed
-