ManyThreads / mythos

Many Threads Operating System
https://manythreads.github.io/mythos/
MIT License
16 stars 3 forks source link
knc microkernel xeonphi

About MyThOS

MyThOS is a micro-kernel for many-core processors with cache-coherent shared memory. Its design aims for high-throughput operation for highly-dynamic workloads. Examples are task-based high-performance computing frameworks and service clouds with very fine-grained application tasks.

Scalability to a high degree of parallelism is achieved as follows: All kernel objects are allocated explicitly by the application from freely partitioned memory pools in order to eliminate hidden synchronisation. Any kernel object can be accessed concurrently from any core in order to enable parallel system management. Concurrent operations on kernel objects are serialised through delegation-based object monitors. Granting and revoking access rights (object capabilities) affects just a small set of rights in order to minimise synchronisation.

Current State of Implementation

Work in Progress

Future Work

Quick Usage Guide

Running Mythos in QEMU within docker

Qemu is using X11 to display the virtual display. Thus we need to activate X11 output for docker. Install and start XQuartz. In the XQuartz settings under security enable "Allow connections from network clients" and reboot the laptop, not just restart XQuartz neither just log out and in again.

git clone https://github.com/ManyThreads/mythos.git
cd mythos
git submodule update --init --recursive
docker build -f Dockerfile -t mythos --progress=plain .

xhost +localhost
XAUTH=$HOME/.Xauthority
docker run --rm -it \
    -e DISPLAY=host.docker.internal:0 \
    -e XAUTHORITY=$XAUTH \
    -v $XAUTH:$XAUTH \
    mythos

Running in the QEMU virtual machine

Running on the Intel XeonPhi KNC

In order to run MyThOS on an Intel XeonPhi Knights Corner processor, a recent version of Intel's MPSS software stack is needed. In addition a not too old C++ compiler is needed for the host tools. After loading the respective environment variables:

Running as IHK cokernel next to CentOS GNU/Linux

Running as IHK cokernel next to Ubuntu GNU/Linux

Problems and Solutions

Acknowledgements

The MyThOS project was funded by the Federal Ministry of Education and Research (BMBF) under Grant No. 01IH13003 from October 2013 to September 2016. The grant was part of the 3rd HPC-Call of the Gauss Allianz.

The high-level kernel design is inspired by the many good ideas from seL4, Nova, Fiasco, and L4. The delegation-based monitors are inspired by delegation locks.