- 19 May, 2020 1 commit
-
-
FritzFlorian committed
-
- 17 May, 2020 1 commit
-
-
Add key-points required to capture an execution DAG. Currently all data is in-memory and printed out. In future work it would be good to store the DAG's and/or process them further.
FritzFlorian committed
-
- 16 May, 2020 1 commit
-
-
Remove easy profiler for now. It might be useful for later on to get a grasp of general behaviour, but because of its issues with coroutines it is not worth profiling code with it right now.
FritzFlorian committed
-
- 23 Apr, 2020 1 commit
-
-
FritzFlorian committed
-
- 26 Mar, 2020 1 commit
-
-
I am not sure if this is appropriate, but it works and is no focus of this project.
FritzFlorian committed
-
- 24 Mar, 2020 1 commit
-
-
It is now possible to use a memory mapped stack that throws a SIGSEV if thes coroutine stacks are exhausted.
FritzFlorian committed
-
- 18 Mar, 2020 1 commit
-
-
Remove the strict static memory allocation scheme in favour of placing objects on the heap at startup. This still keeps the requirements posed for modern, high performance embedded systems, but makes APIs a lot cleaner.
FritzFlorian committed
-
- 27 Jan, 2020 1 commit
-
-
The project is currently really messy and there are sporadic sigsevs. This indicates that we still have a race in our code. Thread Sanitizer does not work with our current implementation, as it needs annotations for fibers. The next step is to clean up the project and maybe add thread sanitizer support to our fiber implementation. This should help finding the remaining bugs.
FritzFlorian committed
-
- 26 Jan, 2020 1 commit
-
-
FritzFlorian committed
-
- 24 Jan, 2020 1 commit
-
-
The current state shows the minimum actions taken to execute a parallel call: get the thread local, find the active frame, execute on the next frame and return to the active frame.
FritzFlorian committed
-
- 23 Jan, 2020 1 commit
-
-
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
-
- 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
-
- 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
-
- 11 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 10 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 07 Jun, 2019 1 commit
-
-
FritzFlorian committed
-
- 06 Jun, 2019 2 commits
-
-
FritzFlorian committed
-
This should have been fine without the atomic property (as it is only a single writer and multiple readers to a single bit). Nevertheless we fixed the 'race' to remove a warning in the thread sanitizer.
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
-
- 17 Apr, 2019 1 commit
-
-
FritzFlorian committed
-
- 11 Apr, 2019 1 commit
-
-
FritzFlorian committed
-
- 09 Apr, 2019 1 commit
-
-
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
-
- 05 Apr, 2019 2 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 -
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
-
- 04 Apr, 2019 1 commit
-
-
FritzFlorian committed
-
- 02 Apr, 2019 1 commit
-
-
There are serval ways we could optimize the calls, but for now this should be enough for first tests.
FritzFlorian committed
-
- 01 Apr, 2019 1 commit
-
-
FritzFlorian committed
-
- 29 Mar, 2019 1 commit
-
-
FritzFlorian committed
-
- 27 Mar, 2019 1 commit
-
-
FritzFlorian committed
-
- 26 Mar, 2019 1 commit
-
-
This means that high level tasks can be stolen and lays the groundwork for implementing different tasks like classic work stealing.
FritzFlorian committed
-
- 25 Mar, 2019 1 commit
-
-
FritzFlorian committed
-
- 22 Mar, 2019 2 commits
-
-
FritzFlorian committed
-
Right now no work can be spawned, we simply have a proove of concept that we start up each thread, work for the master to finish and then synchronize back to the main thread.
FritzFlorian committed
-