Arachne Open Issues
PACKING REPLICATED WRITES (Utilizing CPU Time while waiting on replicated writes)
Choosing an idle core for a new task
New task creation when all cores are busy (Slow path for user thread creation)
Single Global Queue vs Per-Core Queues needs an experiment.
Task migration to balance load? (may not be needed if tasks are sufficiently short-lived)
LOGICAL CONCURRENCY VS DESIRED PARALLELISM (CORE COUNT)
When should we ask the kernel for more cores, and when should we return cores to the kernel?
TIMING GUARANTEES UNDER COOPERATIVE THREADING
Can we have any kind of timing guarantees without preemption?
BENEFITS / SELLING POINTS / CONTRIBUTIONS
How much of knowledge of cores should bubble up to the application?
What kind of guidance / hints can application offer to Arachne? e.g. priorities.
Mostly Solved Issues
MINIMUM TIME TO SCHEDULE A USER THREAD ONTO ANOTHER CORE
What is the correct architecture for the fast path, and what is the lowest possible time to schedule to another core?
DEFINITION OF CORE AWARE
Knowledge of the number of nature of physical cores must move up the stack from the kernel into user-level libraries and possibly into applications