项目源码Orca
Orca v1.0
本版本提供了论文“经典与现代:基于实用学习的互联网拥塞控制”中的源代码和实验材料。
安装指南
安装所需工具
安装Mahimahi
sudo apt-get install build-essential git debhelper autotools-dev dh-autoreconf iptables protobuf-compiler libprotobuf-dev pkg-config libssl-dev dnsmasq-base ssl-cert libxcb-present-dev libcairo2-dev libpango1.0-dev iproute2 apache2-dev apache2-bin iptables dnsmasq-base gnuplot iproute2 apache2-api-20120211 libwww-perl
git clone https://github.com/ravinet/mahimahi
cd mahimahi
./autogen.sh && ./configure && make
sudo make install
sudo sysctl -w net.ipv4.ip_forward=1
Orca的深度强化学习Agent
先决条件
- Python >= 3.4
- Tensorflow 1.14.0
创造一个虚拟环境
mkdir ~/venv
sudo apt update
sudo apt install python3-pip
sudo pip3 install -U virtualenv
virtualenv ~/venv -p python3
如果更改虚拟环境的路径,则需要相应地更改源代码。源代码假定虚拟环境设置为@~/venv。
安装程序包
source ~/venv/bin/activate
pip install --upgrade pip
pip install gym
pip install tensorflow==1.14
pip install sysv_ipc
验证安装
python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
停用venv
(venv) $ deactivate
修补Orca的内核:(选项1)
安装Orca补丁内核的最简单方法是安装准备好的debian软件包:
cd linux
sudo dpkg -i linux-image*
sudo dpkg -i linux-header*
sudo reboot
修补Orca的内核:(选项2)
如果您已经完成了选项1,跳过这一部分!另一个选择是使用提供的补丁编译自己的内核。您可以使用此处提供的说明执行此操作:链接
源代码在linux文件夹中 链接
验证新内核
安装Orca内核并重新启动系统后,请使用以下命令确保系统正在使用新内核:
uname -r
输出应为4.13.1-0521*。如果不是,您需要将4.13.1-0521*内核映像放在grub列表的顶部。例如,gruer可以自定义应用程序。使用以下命令安装grub自定义程序:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
sudo grub-customizer
创建Orca的服务器客户端应用程序
要构建所需的应用程序,请运行以下命令:
./build.sh
这个版本包括两个版本:独立演员版和演员学习版。在独立演员版本中,不会启动学习者。当您只想通过模拟链接测试当前模型时,这是很有用的。然而,actor-learner版本要求在启动任何actor之前启动一个学习者。第二种模式可用于学习新的/更好的模型,也可用于在模拟链接上执行简单的测试。
使用提供的学习模型对独立版本运行一个示例测试
./orca-standalone-emulation.sh 44444
使用提供的学习模型,用acotr学习者版本运行一个示例测试
./orca.sh 4 44444
结果将在rl-module/log/*中自动生成。您可以在rl-module/log/sum-*查看结果摘要。
训练注意事项:
- 要在远程服务器上分发角色,您需要将params.json文件的“ learner_ip”和“ actor_ip”字段更改为相应的服务器IP。
- 首先开始学习。
- 使用远程服务器时,设置remote:true。
- 设置num_actors:N,N是演员数。
蜂窝痕迹:
要使用可用的跟踪@ https://github.com/Soheil-ab/Cellular-Traces-NYC,请将其复制到项目的跟踪文件夹。