- 29 Nov, 2019 2 commits
-
-
The main issue seems to still be the fact that we have a lock free protocol where a steal can be pending. We plan to remove this fact next by introducing a protocol that works on a single atomic update.
FritzFlorian committed -
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
-
- 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 1 commit
-
-
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
-
- 16 Sep, 2019 1 commit
-
-
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
-
- 01 Aug, 2019 1 commit
-
-
This allows the stack and deque class to use the same offset, making it work better with each other.
FritzFlorian committed
-
- 18 Jun, 2019 1 commit
-
-
Threads must be joined on scheduler termination and tasks must be pushed onto the stack to allow better memory management.
FritzFlorian committed
-
- 12 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 10 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 07 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 06 Jun, 2019 3 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
This was highlighted as an issue in the steal_work routine, as frequent calls to virtual functions are expensive.
FritzFlorian committed
-
- 05 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 04 Jun, 2019 2 commits
-
-
Please note that this does currently not execute, but only removed the 'old aspecs'. We are still missing launching the root fork_join task.
FritzFlorian committed -
FritzFlorian committed
-
- 03 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 28 May, 2019 1 commit
-
-
FritzFlorian committed
-
- 10 May, 2019 1 commit
-
-
This is required to correctly execute multiple, consecutive wait_for_all calls in one fork_join_sub_task.
FritzFlorian committed
-
- 02 May, 2019 1 commit
-
-
FritzFlorian committed
-
- 30 Apr, 2019 3 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
FritzFlorian committed
-
- 18 Apr, 2019 3 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
FritzFlorian committed
-
- 17 Apr, 2019 2 commits
-
-
FritzFlorian committed
-
These currently do nothing but being boilerplate required to implement a new top level task.
FritzFlorian committed
-
- 12 Apr, 2019 1 commit
-
-
FritzFlorian committed
-
- 11 Apr, 2019 1 commit
-
-
FritzFlorian committed
-
- 09 Apr, 2019 2 commits
-
-
FritzFlorian committed
-
We do this to properly separate the cache alginment logic in the next step, allowing us to port all cache aligned objects without worrying about portability.
FritzFlorian committed
-
- 08 Apr, 2019 1 commit
-
-
FritzFlorian committed
-
- 05 Apr, 2019 3 commits
-
-
We do so by pulling out the profiling macros in our own iclude file. In the future we might even be able to use this to build up further visualisations of the executing programm.
FritzFlorian committed -
Use only placement new on pre-allocated memory. This makes sure that we have to have no assumptions on the inital state of the memory region.
FritzFlorian committed -
This lead to some bug-fixes that covered move constructors not correctly assigning memory. We might clean this up further by only allowing in place creation of these types (placement new).
FritzFlorian committed
-