- Aug 19, 2021
-
-
Florian Schmaus authored
[IoContext] Remove duplicate CQE_BATCH_COUNT delcaration and definition See merge request i4/manycore/emper!233
-
- Aug 18, 2021
-
-
Florian Schmaus authored
-
Florian Fischer authored
[IO] Implement configurable "simple architecture" See merge request i4/manycore/emper!230
-
Florian Fischer authored
-
Florian Fischer authored
Introduce a new meson option io_single_uring which causes EMPER to only use the GlobalIoContexts for all IO. To submit SQEs to the io_uring SQ SubmitActor is used. Futures can be in a new state where they are submitted to the SubmitActor but not to the io_uring yet. In this state isSubmitted && !isPrepared th Future must not be destroyed to ensure this we yield when forgetting a Future until it is prepared and thus it is safe to destroy it. This commit contains no optimizations (no batching, no try non blocking syscall first, ...) Refacter GlobalIoContext.cpp: * rename globalCompleter to completer * make the completer loop non-static
-
Florian Fischer authored
-
Florian Fischer authored
Move all definitions from emper.hpp in compilation unit See merge request i4/manycore/emper!232
-
Florian Schmaus authored
-
Florian Schmaus authored
Move emper::sleep() implemention from header in compilation unit See merge request !231
-
Florian Schmaus authored
-
- Aug 11, 2021
-
-
Florian Schmaus authored
[AbstractWorkStealingScheduler] Get rid of "rand() % workerCount" See merge request i4/manycore/emper!229
-
Florian Schmaus authored
The "rand() % workerCount" constructed used in the work-stealing scheduler is flawed. It has a bias toward lower worker IDs due the modulo operation. This is something I always wanted to get rid of, but never found the time to do it. Until know. Get rid of it and replace it with std::uniform_int_distribution<workerid_t> (as field the Worker instance). The main changes in AbstractWorkStealingScheduler are - use currentWorker->nextRandomWorkerId() (instead of the flawed construct) - currentWorker->getWorkerId() (instead of Runtime::getWorkerId())
-
- Aug 10, 2021
-
-
Florian Schmaus authored
[stats] blocked contexts See merge request !224
-
- Aug 09, 2021
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
Support distributing multiple echoclient over the network See merge request !228
-
Florian Fischer authored
-
- Aug 08, 2021
-
-
Florian Fischer authored
-
Florian Fischer authored
The Coordinator is used for our echo evaluation and implements a barrier style synchronization mechanism for processes spread across the network.
-
- Aug 02, 2021
-
-
Florian Schmaus authored
[meson] allow building EMPER on systems whithout <filesystem> See merge request !221
-
Florian Schmaus authored
Add meson option for "check anywhere queue while stealing" See merge request !207
-
Florian Schmaus authored
-
Florian Schmaus authored
[io.hpp] add blocking functions using timeouts See merge request !226
-
Florian Schmaus authored
-
Florian Schmaus authored
[stats] Add max-queue-length stats to AbstractWorkStealingScheduler See merge request !223
-
Florian Schmaus authored
-
- Jul 29, 2021
-
-
Florian Fischer authored
-
Florian Fischer authored
[echoclient] print a short description of parameters See merge request !225
-
- Jul 28, 2021
-
-
Florian Fischer authored
-
- Jul 27, 2021
-
-
Florian Schmaus authored
Add docker tooling See merge request i4/manycore/emper!219
-
- Jul 26, 2021
-
-
Florian Fischer authored
Check if std::filesystem::recursive_directory_iterator and std::filesystem::path are available before using those in EMPER code. We do not export the symbols using the not supported filesystem features in our public headers using preprocessor ifdef. But the code in the cpp files using it not removed using the preprocessor. To allow linkage we use a constexpr which throws a logic_error on runtime rendering the rest of the code dead und thus prevents its generation by the compiler. This methods allows the compiler to see the code in its analysis passes but does not fail during linking. Allow meson.build files in emper/ subdirectories add configuration options by consuming the conf_data object after all subdirectories were visited. Introduce a quasi naming standard for cpp feature flags in meson code: cpp_has_<namespace>_<feature> Examples: cpp_has_fs_path
-
Florian Fischer authored
-
Florian Fischer authored
Usage run "docker.sh <your command>" to execute <your command> in the docker image extracted from .gitlab-ci.yml in the emper root directory NOTE: seccomp filtering is disabled for now since io_uring_* syscalls are not working everywhere as expected.
-
Florian Schmaus authored
[fsearch] gracefully terminate the runtime to print the collected stats See merge request i4/manycore/emper!222
-
Florian Fischer authored
-
Florian Schmaus authored
[PipeSleepStrategy] use C++ smart ptrs instead of manual memory management See merge request i4/manycore/emper!220
-
Florian Fischer authored
The destructor of PipeSleepStrategy caused segmentation faults when running optimized. Because the stats pointer is not initialized it was possibly to pass a garbage pointer to delete. Now we use a well defined C++ smart pointer which fixes the problem and is more idiomatic anyway.
-
Florian Schmaus authored
[IoContext] wrap CQ locking in if constexpr See merge request i4/manycore/emper!218
-
Florian Fischer authored
We don't need to pay the overhead of the atomic operations on each dispatch loop if there is no concurrent access to worker CQs.
-