多核优化
作者:互联网
多核优化脚本环境配置及使用
环境配置
- 安装docker
sudo apt-get install curl
curl -sSL https://get.daocloud.io/docker | sh
- 安装htop
sudo apt-get install htop
克隆2020china环境下的多核优化脚本
git clone -b automation git@github.com:hfutrobocup3d/2020China.git
开始使用
- 配置yaml
- ifconfig查看ip地址
- 设置端口号
master-host-default: 172.17.0.1
master-port-default: 10960
- 设置优化任务、type、球员number和生成的db文件
agent-type-num: 3 //type
agent-type: kickOptimAgent //表示踢球优化,优化步态时需要修改
agent-mark-num: 2 //2号球员
task-name: kick-optim-type3-18m //任务名
database-name: type3-kick_18m.db //生成的db文件
- htop查看端口号是否被占用
htop 10960
- 启动master()
cd automation/optimization/2020China/optimization
./start_master.sh
- 启动docker
cd automation/optimization
./dc 2020China 172.17.0.1:10960 start
dc
是一个简化版的dkcontrol
,没有交互界面,适合在命令行使用,运行需要3个参数
-
优化代码的目录
可以是相对或绝对目录,但是路径中不能出现符号链接目录
-
master的host
一般是IP+端口,例如
172.17.0.1:10000
-
命令
目前支持start和stop
当前运行的容器数小于目标数时,启动差值数量的容器
需要修改并行容器数量,修改CONTAINER_NUM
变量
判断收敛is_converged
如何自动判断优化是否已经收敛,使用一个简单的脚本is_converged
原理就是根据任务名/表名,从数据库中读取fitness,然后将fit分成2部分
由于fit应该是递减的,左边部分斜率应该大于右边(绝对值)
当左边的除以右边的大于某个阈值,则认为已经收敛
运行脚本时会自动生成fit图像,可以根据需要修改脚本
DBNAME = Path(__file__).parent.absolute()/'type3-kick.db'
assert DBNAME.exists()
assert len(argv) > 1, '需要提供表名'
# 数据库中的表名
TABLE = argv[1] # 'kick-optim-type3-17m'
# 平滑的范围
N = 100
# 平滑的步进
STEP = 10
# 将曲线分为1/4和3/4
SCALE = 0.25
# 要求左边的斜率是右边的`SLOPE_THRESH`倍
SLOPE_THRESH = 100
# 收敛至少需要的代数, STEP*MINGEN为真实代数
MINGEN = 2000
在run.sh
中,每隔300s检测一次收敛
SLOPE_THRESH
默认为100,如果想获得更好的优化效果,可以适当增大,相应的优化时间也会延长
run.sh
运行完整的某一系列优化的脚本,根据任务实际需要编写修改
在不同的任务/主机上移植时, 需要修改:
-
run.sh的
MHOST
,TASK
-
TASK/optimization/default-optimization.yaml
的master-host-default
-
dc
的CONTAINER_NUM
, 即容器数量, 优化时一般CPU有几核就设成几
优化完时,调用optimization文件夹里的runparams.py生成参数。
标签:sh,optimization,多核,htop,master,优化,kick 来源: https://blog.csdn.net/fuyanping123/article/details/114482485