这一部分主要介绍远程计算服务的架构、部署与运维。
7.1. Client-Server 架构¶
Client-Server 架构方案主要由 Client(客户端)和 Compute Server(计算服务器)组成。我们提供了许多不同的 Client 配置选项,例如,在最基本的配置中,单个计算服务器可以接受并执行来自多个客户端的作业任务。 如图所示:
在远程计算服务中,用户可以通过调用求解器的 API(接口)来编写自己的优化程序,并将作业向计算服务器进行提交与结果获取,而不必考虑为满足程序运行配备本地机器。 此外,由于客户端 SDK 具备完整的求解功能,用户也可以选择本地进行求解运算。
当计算服务器中接收的作业请求较多时,被提交的作业任务会在任务池中排队,而后进入运算状态(我们的系统会自动优化任务的分配)。
客户端进行作业提交的方式为 非交互式,即客户端与服务器的连接将在作业任务提交后断开,待到向服务器查询作业的状态与获取计算结果时再产生连接。 在非交互式架构中存在一个集群管理器,它会负责存储需要求解的优化问题,向服务器集群提交任务,并在任务完成时存储作业的结果(包括优化问题的状态、日志、问题的解以及遇到的所有错误等)。
7.2. 部署安装¶
使用远程计算服务需要同时确保服务端和客户端的正确部署。服务的维护人员,需要关注 部署计算服务。作为服务的使用者,用户只需要关注 客户端 SDK 下载与安装。
7.2.1. 客户端 SDK 下载与安装¶
用户可以根据系统(Windows/Linux/OSX)选择对应版本 Client SDK进行下载安装,客户端SDK同单机版软件包。
首先,在获得 Client SDK 文件包后,需要按照 单机版安装 中的方式进行本地安装。如果您不需要使用单机(本地)求解功能,则无需申请单机版许可证(license),但需要获取计算服务器的 IP
和个人 Token
,并在优化程序中进行填写。
使用 C 语言的接口,请按照 使用 C 语言调用 MindOpt 动态库 的编译示例来链接动态库。
使用 C++ 语言的接口,请按照 使用 C++ 语言调用 MindOpt 动态库 的示例来编译、安装,并链接到动态库。
使用 Python 语言的接口,请按照 使用 Python 语言调用 MindOpt 动态库 的指示来安装动态库。
7.2.2. 部署计算服务¶
计算服务(Compute Server)可以安装在任意一台联网的机器上。 计算服务是通过 Docker 部署的方式,为此,需要先准备 Docker 环境、Server 镜像文件和 Server 端授权许可证(license)。
Note
为了便于用户迅速地体验 MindOpt C/S 版,我们已通过 阿里云天池平台开放了免费C/S版 ,并提供了多个建模与求解的示例。用户可以将客户端SDK下载到天池平台 CloudShell 的机器上使用,下载、安装、免费授权token申请方式见:https://tianchi.aliyun.com/mindopt/authrize (需要阿里云账号登录查看)。
以下文档描述C/S版的Server端的部署方式,供参考。
获取并安装 Server 镜像文件,请通过 联系我们 中的联系方式找工作人员获取。
Server 的使用需要授权许可证,请通过 联系我们 中的联系方式找工作人员获取限制天数的免费试用版或商用正式版。客户端进行本地求解的许可证与服务器中 Server 端许可证不同,不能混用。
接下来,请按照如下步骤部署计算服务。
步骤1: 导入 Server 镜像:
docker load -i mindopt-compute-server.tar.gz
步骤2:启动容器,开启服务。以下是个示例,请根据需求修改容器名称、服务数据映射地址、镜像ID:
docker run -d --name mindopt -s -p 80:7001 -v /Users/homename/compute-server-data:/data mindopt-compute-server:20201207
步骤3:将许可证放置在步骤2关联的目录下:
cp mindopt.lic /Users/homename/compute-server-data/mindopt.lic
7.2.3. 管控 Web 验证¶
计算服务部署完毕后,您还可通过打开 MindOpt 网页来查看服务是否已启动或许可证是否可行。 在浏览器中输入地址:
本机安装地址:127.0.0.1
远端服务器安装地址:http://xx.xx.xx.xx:7001/
若正确安装,将显示以下页面。
输入账号密码:
默认账号:admin
默认密码:admin
登录后将显示概览欢迎页面: