Arachne: Core-Aware Thread Management

  • Authors:
    Henry Qin (Stanford), Jacqeline Speiser (Stanford), John Ousterhout (Stanford)
    Publication ID:
    P090937
    Publication Type:
    Paper
    Received Date:
    18-May-2017
    Last Edit Date:
    18-May-2017
    Research:
    2384.007 (University of Michigan)

Abstract

Arachne is a new user-level implementation of threads that provides both low latency and high throughput for applications consisting of extremely short-lived threads (only a few microseconds). Arachne is core-aware: a lightweight runtime within each application computes how many cores are needed based on its load, and a central core arbiter allocates cores among competing applications. Each runtime always knows its current core allocation, so it can schedule user threads to match the available resources. The runtime is optimized to minimize cache misses; it can initiate a new user thread on a different core (with load balancing) in about 180 ns and wake up a blocked thread on another core in about 130 ns. Adding Arachne to the RAMCloud storage system increased its write throughput by more than 2.5x. Both the Arachne runtime and the core arbiter run at user level on Linux; no kernel modifications are needed.

4819 Emperor Blvd, Suite 300 Durham, NC 27703 Voice: (919) 941-9400 Fax: (919) 941-9450