GAMSEngine是我们在云环境中运行GAMS作业的新解决方案

描述

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负责。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分