Iroko is an open source project that is focused on providing openAI compliant gyms. The aim is to develop machine learning algorithms that address data center problems and to fairly evaluate solutions again traditional techniques.
A more concrete description is available in our short paper.
The data center emulator makes heavy uses of Linux tooling and its networking features. It operates most reliably on a recent Linux kernel (4.15+
). The supported platform is Ubuntu (at least 16.04
is required). Using the emulator requires full sudo access.
GCC
orClang
and thebuild-essentials
are required.git
for version controllibnl-route-3-dev
to compile the traffic managersbwn-ng
andifstat
to monitor trafficpython
andpython-setuptools
to build Python packages and run the emulator
The generator supports both Python2 and Python3. pip
and pip3
can be used to install the packages.
numpy
for matrix operationsgym
to install openAI gymseaborn
andmatplotlib
to generate plots
The datacenter networks are emulated using Mininet. At minimum Mininet requires the installation of
openvswitch-switch
,cgroup-bin
,help2man
The emulator uses Ray to implement and evaluate reinforcement learning algorithms. Ray's dependencies include:
tensorflow
,setproctitle
,psutil
,opencv-python
The emulator generates and measures traffic using Goben. While an amd64 binary is already provided in the repository, the generator submodule can also be compiled using Go 1.11
. The contrib/
folder contains a script to install Goben locally.
A convenient, self-contained way to install the emulator is to run the ./install.sh
. It will install most dependencies locally via Poetry.