GAMSEngine是我们在云环境中运行GAMS作业的新解决方案。它提供了一个RESTAPI,可以通过GAMSEngineUI、GAMSMIOO桌面、GAMS工作室或通过OpenAPI(Python、java、JavaScript、C++、…)支持的任何客户端连接到GAMSEngine UI。
GAMSEngine会自动安排您的作业,并将它们分配给可用的GAMS工作人员进行求解。它有一个强大的用户管理系统,允许您根据组织层次结构限制用户的活动。
系统概述
GAMSEngine是一个高度分布式的系统,用于解决您的GAMS模型。该系统的核心是一个RESTAPI(也称为代理),您可以在其中提交GAMS作业。然后,系统将对您的作业进行排队,并将它们分配给一个可用的工作人员,这是一个求解您的模型的GAMS过程。如果所有工作人员都忙于解决其他作业,则您的作业将在队列中挂起,直到有空闲工作人员可用。
易于访问
您可以通过各种客户端轻松连接到Engine:
EngineUI:通过专用用户界面访问几乎所有Engine功能。
GAMS MIRO:在云中解决MIRO应用程序的模型。
GAMSStudio:直接从GAMSStudio内部提交作业。
定制客户端:通过RESTfulAPI(OpenAPI)将您自己的优化软件与Engine连接起来。
Engine客户端
介绍
有了GAMSEngine UI、GAMSMIRO Desktop和GAMSStudio,GAMS已经为Engine提供了三个接口。然而,如果您想将自己的应用程序与Engine一起使用,您可以轻松地做到这一点。OpenAPI的使用允许各种应用程序通过RESTfulAPI连接到Engine。
注册
要使用Engine,必须首先向系统注册。为此,您需要一个邀请代码。
打开EngineUI
单击登录按钮下方的“注册”
输入您的邀请代码、用户名和密码
单击“注册”
您将自动登录
GAMS Engine UI
GAMSEngine附带了一个网络用户界面,它实现了大多数可用功能。通过此界面,您可以管理用户、模型和数据,还可以提交新作业和下载结果。根据您的角色(“用户”、“邀请者”或“管理员”),可以看到UI的不同元素。
UI由四个视图组成(括号中附加了查看此视图所需的最低用户角色):
Jobs (用户)
Models (用户)
Users (邀请方)
Cleanup (管理员)
Jobs视图列出您提交的所有作业(如果您是管理员,则列出所有用户提交的所有作业)。您可以通过单击所需列对提交内容进行排序。从该视图中,您还可以与作业交互(查看更多详细信息、取消运行作业或下载结果),以及提交新作业。
Models视图列出了所有名称空间以及在每个名称空间中注册的所有模型。要查看在特定命名空间中注册的模型,请单击此命名空间,列出模型的表将更新。正如在Jobs视图中一样,您可以通过单击所需列对表进行排序。您可以在此视图中添加或删除名称空间,也可以注册新模型。
Users视图仅对邀请者和管理员可见。如果您是管理员,您可以看到在系统中注册的所有用户;如果您是邀请者,则仅显示您或其中一个被邀请者邀请的用户。您可以编辑用户角色和权限,也可以删除用户。此外,还可以从此处创建新的邀请代码。请注意,邀请者只能邀请与自己拥有相同或更少特权的人。
Cleanup视图仅对管理员可见。在这里,您可以清理数据库以减少GAMSEngine使用的存储量。您可以逐个删除文件,也可以通过单击“运行内务管理”按钮一次清理多个文件。此“内务管理”对话框允许您删除x天前创建的所有文件和/或从系统中删除的用户创建的文件。
GAMS MIRO集成
使用部署工具GAMSMIRO,您可以使用任何现有的GAMS模型,并通过几行附加代码将其转换为可部署的网络应用程序。MIRO提供了一套丰富的图形输出格式、场景管理等。它是为那些寻求一种简单而自动化的方式使其GAMS模型可供他人使用的人而设计的。
GAMSMIRO与Engine无缝连接,很容易建立连接并运行。一旦设置好,您就可以从平板电脑甚至智能手机上运行CPU密集型优化问题。
GAMS Studio集成
GAMSStudio内置了一些与GAMSEngine进行基本交互的功能。从1.4.2版开始,Studio可用于使用Engine执行GAMS作业。该功能集不断被扩展。
要使用Engine解决GAMS作业,请选择快速访问工具栏中的运行GAMSEngine或通过主菜单中的输入GAMS。
在出现的对话框中,需要进行进一步的设置:
EngineURL:指向GAMSEngine服务器的URL。
名称空间:作业将在其中执行的名称空间
用户名:Engine用户账户的用户名
密码:Engine用户账户的密码
创建GDX文件:创建一个包含独立于其他设置的所有符号的GDX文件。
编辑EngineURL时,Studio尝试访问服务器并请求版本信息。成功后,将显示服务器上GAMS和Engine的版本。如果本地GAMS版本较新,则会自动添加命令行参数previousWork=1。
单击“确定”,作业即被提交。请注意,模型是在本地编译的,只有执行阶段在GAMSEngine上执行。结果将写入以模型的基本名称(即主文件名)命名的子文件夹中。日志输出中的链接将替换为本地对应的链接。
注意:
通过Engine处理的GAMS作业在Linux操作系统上执行。因此,使用UNIX路径分隔符(“/”)。这与GAMS模型中的现有路径以及提交作业时命令行上的路径有关。因此,您应该确保始终使用UNIX路径分隔符!
定制客户端
GAMS Engine提供了一个RESTAPI,它遵循一个名为OpenAPI2.0版的规范。该规范为RESTfulAPI定义了一个标准的、与语言无关的接口,它允许人类和计算机轻松发现和理解软件的功能。这项技术的一个主要优点是,使用OpenAPIGenerator可以轻松地为几种编程语言自动生成客户端库。这包括Python、java、C、C++、C++、R、Node.js/JavaScript、Ruby等语言。GAMSEngine可以通过这些客户端中的任何一个进行访问。一个典型的工作流可能是采用自动生成的客户端,并将其用作定制解决方案的起点。
提示:
对于客户端和Engine之间的通信,只有RESTAPI是相关的。您不必关心Engine内部发生的任何事情。例如,要提交GAMS作业,必须只处理API的对应端点。所有后续步骤(例如,将作业发送给空闲工作人员或将其排队、调用GAMS等)都由Engine负责。
全部0条评论
快来发表一下你的评论吧 !