Overview
Gthulhu is a next-generation scheduler designed for the cloud-native ecosystem, built with Golang and powered by the qumun framework.
The name Gthulhu is inspired by Cthulhu, a mythical creature known for its many tentacles. Just as tentacles can grasp and steer, Gthulhu symbolizes the ability to take the helm and navigate the complex world of modern distributed systems — much like how Kubernetes uses a ship’s wheel as its emblem.
The prefix “G” comes from Golang, the language at the core of this project, highlighting both its technical foundation and its developer-friendly design.
Underneath, Gthulhu runs on the qumun framework (qumun means “heart” in the Bunun language, an Indigenous people of Taiwan), reflecting the role of a scheduler as the beating heart of the operating system. This not only emphasizes its central importance in orchestrating workloads but also shares a piece of Taiwan’s Indigenous culture with the global open-source community.
Inspiration
The project is inspired by the Andrea Righi's talk "Crafting a Linux kernel scheduler in Rust". So I spent sometime to re-implement the scx_rustland, which is called qumun (scx_goland). After I done all of infrastructure setup, I redefine the project's mission, I make Gthulhu to be a generic scheduling solution dedicated to cloud-native workloads.
What it does
Gthulhu simplfies the transformation from user's intents to scheduling policies. User can use machine friendly language (e.g. json) or use AI agent with MCP to communicate with Gthulhu, then Gthulhu will optimize specific workloads based on what you gave!
How we built it
Like scx_rustland, We built a user-space scheduler and eBPF scheduler. The eBPF scheduler is responsible to pass the scheduling event to user-space scheduler (Gthulhu), then Gthulhu make a decision (which cpu will execute the task, how long the cpu should remain for the task).
In addition, we also built the api server for receiving the user's intent, MCP tool for transfoming the user's needs, helm chart for kubernetes deployment.
Challenges we ran into
- How to make a user-space scheduler in Go
- How to design a user-friendly scheduling solution
- How to manage multi-node k8s cluster's workloads under Gthulhu
Accomplishments that we're proud of
- Integration with free5GC (a Linux Foundation project), we use Gthulhu to significantly reduce the data plane latency: https://free5gc.org/blog/20250726/index.en/
- Recognition from CNCF landscape's maintainer: https://github.com/cncf/landscape/pull/4466
- Adopted by research org (NYCU, NCKU in Taiwan)
What we learned
- How to troubleshoot the customized kernel module with eBPF
- How to trace the scheduler's event in kernel (Perfetto)
- Deeply understand how golang runtime works
- Understeand how libbpfgo works, and also contribute a series of patches to support user-ring buffer and struct_ops API.
What's next for Gthulhu
- CNCF landscape adoption
- Integration with Agent Builder
- Multi-node management system
- Preparation to join CNCF Sandbox
Log in or sign up for Devpost to join the conversation.