异构工作负载管理中深度强化学习策略的评估

hdeeprm的Python项目详细描述


概述

hdeeprm 是一个用于评估工作负载管理策略的python框架 基于深度强化学习的异构集群。它 利用batsim生态系统 用于模拟异构工作负载管理上下文。这是合成的 在 模拟器的 中, batsim 决策系统

hdeeprm在pybatsim之上提供了一个异构层,这增加了对 用于用户定义的资源层次结构。内存容量和带宽冲突 在将工作整合或分散到 数据中心。

它为开发深度强化学习代理提供了一个灵活的api。 可以通过在 swf格式 平台的定义格式在 平台中指定。他们可以 根据经典政策进行进一步评估和测试。

安装先决条件

hdeeprm作为python包分发到 pypi 。 要下载并安装它,需要以下软件:

  • python3.6+,在这里找到你的操作系统 安装指南
  • pip,python包管理器。如果python还没有提供 安装,按照 官方指南

安装

要安装hdeeprm,只需从pypi下载包:

pip install --upgrade --user hdeeprm

如果 pip 映射到python 2.x,请尝试:

pip3 install --upgrade --user hdeeprm

使用多个python版本时,请使用:

python3.6 -m pip install --upgrade --user hdeeprm

这应该下载 hdeeprm 包及其所有依赖项, 它们是:

  • defusedxml >;=0.5.0:安全的XML生成和解析。
  • 健身房 >;=0.12.0:环境、动作和观察定义。
  • lxml >;=4.3.2:生成xml树。用于 defusedxml 的后端
  • numpy >;=1.16.2:高效的数据结构操作。
  • 过程集 >;=1.0:用于资源选择的闭合间隔集。
  • pybatsim >;=3.1.0:决策系统和交互主界面 使用Batsim。
  • <> TL>火炬 Gt=;1.0.1.PASS2:Agent定义的深度学习库。

使用前提条件

模拟端由batsim完成,这是运行所需的 hdeeprm实验。请按照官方安装文档中的说明进行操作。

启动实验

为了试验HDEEPRM,提供了一个集成发射器:

hdeeprm-launch -a <agent.py> -cw <custom_workload.json> -im <saved_model.pt> -om <to_save_model.pt> <options.json>

json 选项指定实验参数。json结构 如下所示:

{"seed":0,"nb_resources":0,"nb_jobs":0,"workload_file_path":"","platform_file_path":"","pybatsim":{"log_level":"","env":{"objective":"","actions":{"selection":[{"":[]}],"void":false},"observation":"","queue_sensitivity":0.0,},"agent":{"type":"","run":"","hidden":0,"lr":0.0,"gamma":0.0}}}

全局选项:

  • 种子 -用于评估再现性的随机种子。
  • nb_resources -模拟平台中的核心总数。
  • nb_jobs -工作负载中要生成的作业总数。
  • 工作负载文件路径 -原始swf格式工作负载的位置。
  • 平台文件路径 -原始文件的位置 hdeeprm json格式平台Orm</LI>

Pybatsim选项:

  • 日志级别 -显示模拟细节的日志级别。有关可能值的参考信息,请参见 日志记录

Pybatsim-环境选项:

  • 目标 -由代理优化的指标。有关说明和认可的价值观,请参见目标。
  • 动作 -模拟动作的子集。如果未指定,则使用hdeeprm中的所有37个操作。
  • 观察 -要使用的观察类型,包括 正常 最小
  • 队列敏感度 -观察值对作业队列大小变化的敏感度。请参见超级参数-队列敏感度

Pybatsim-公共代理选项:

  • 键入 -调度代理的类型,其中一个是 Classic Learning

Pybatsim- 学习 代理选项:

  • 运行 -学习代理的运行类型,可以是 train test 之一。 训练时,更新代理的内部模型, 而测试是为了评估目的。
  • 隐藏 -代理内部模型中每个隐藏层中的单元数。请参见超参数-隐藏单位。
  • lr -更新代理内部模型的学习率。请参见"超参数-学习率"超级参数。
  • 伽马 -奖励折扣系数。请参见超参数-奖励折扣系数。

这是一个 options.json 文件的示例 对于经典代理:

{"seed":2009,"nb_resources":175,"nb_jobs":1000,"workload_file_path":"/workspace/workloads/my_workload.swf","platform_file_path":"/workspace/platforms/my_platform.json","pybatsim":{"log_level":"DEBUG","env":{"objective":"avg_utilization","actions":{"selection":[{"shortest":["high_mem_bw"]}],"void":false},"observation":"normal","queue_sensitivity":0.05},"agent":{"type":"CLASSIC"}}}

这是 options.json 文件的另一个例子, 在这种情况下,学习代理:

{"seed":1995,"nb_resources":175,"nb_jobs":1000,"workload_file_path":"/workspace/workloads/my_workload.swf","platform_file_path":"/workspace/platforms/my_platform.json","pybatsim":{"log_level":"WARNING","env":{"objective":"makespan","actions":{"selection":[{"first":["high_gflops","high_mem_bw"]},{"smallest":[""]}],"void":false},"queue_sensitivity":0.01},"agent":{"type":"LEARNING","run":"train","hidden":128,"lr":0.001,"gamma":0.99}}}

可选的命令行参数可用:

  • -a -包含用于评估的开发学习代理的文件。 请参见代理示例以供参考。
  • -cw -如果您正在考虑概念验证实验,则 可能需要定义自己的工作负载。在swf中这样做很乏味,因此 此选项允许传递以batsim json格式定义的自定义工作负载。
  • -im -pytorch训练的模型通常保存在 .pt 文件中。这个 选项允许加载以前训练过的模型来引导代理。
  • -om -如果要在模拟完成后保存模型,请指定 此选项中的输出文件。这通常与 列车 运行相结合。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java创建猜谜游戏程序   JavaWebSocketContainer。connectToServer似乎挂起了   如何在java中中断函数   java c#socket client multiple BeginSend()未到达服务器   不可见的组件然后在Java中的窗格之间切换   java在应用程序类中使用静态接口安全吗?   java等待函数完成,直到回调到来   使用DataOutputStream时的java新行,Android   java服务对象的定义是什么?   基于视图的javahibernate复合密钥   java将varchar连接到char在JPA(oracle)中不起作用   如何在java中通过point类读取多个点?