GAMSEngine是我們在云環(huán)境中運(yùn)行GAMS作業(yè)的新解決方案。它提供了一個RESTAPI,可以通過GAMSEngineUI、GAMSMIOO桌面、GAMS工作室或通過OpenAPI(Python、java、JavaScript、C++、…)支持的任何客戶端連接到GAMSEngine UI。
GAMSEngine會自動安排您的作業(yè),并將它們分配給可用的GAMS工作人員進(jìn)行求解。它有一個強(qiáng)大的用戶管理系統(tǒng),允許您根據(jù)組織層次結(jié)構(gòu)限制用戶的活動。
系統(tǒng)概述
GAMSEngine是一個高度分布式的系統(tǒng),用于解決您的GAMS模型。該系統(tǒng)的核心是一個RESTAPI(也稱為代理),您可以在其中提交GAMS作業(yè)。然后,系統(tǒng)將對您的作業(yè)進(jìn)行排隊(duì),并將它們分配給一個可用的工作人員,這是一個求解您的模型的GAMS過程。如果所有工作人員都忙于解決其他作業(yè),則您的作業(yè)將在隊(duì)列中掛起,直到有空閑工作人員可用。
易于訪問
您可以通過各種客戶端輕松連接到Engine:
EngineUI:通過專用用戶界面訪問幾乎所有Engine功能。
GAMS MIRO:在云中解決MIRO應(yīng)用程序的模型。
GAMSStudio:直接從GAMSStudio內(nèi)部提交作業(yè)。
定制客戶端:通過RESTfulAPI(OpenAPI)將您自己的優(yōu)化軟件與Engine連接起來。
Engine客戶端
介紹
有了GAMSEngine UI、GAMSMIRO Desktop和GAMSStudio,GAMS已經(jīng)為Engine提供了三個接口。然而,如果您想將自己的應(yīng)用程序與Engine一起使用,您可以輕松地做到這一點(diǎn)。OpenAPI的使用允許各種應(yīng)用程序通過RESTfulAPI連接到Engine。
注冊
要使用Engine,必須首先向系統(tǒng)注冊。為此,您需要一個邀請代碼。
打開EngineUI
單擊登錄按鈕下方的“注冊”
輸入您的邀請代碼、用戶名和密碼
單擊“注冊”
您將自動登錄
GAMS Engine UI
GAMSEngine附帶了一個網(wǎng)絡(luò)用戶界面,它實(shí)現(xiàn)了大多數(shù)可用功能。通過此界面,您可以管理用戶、模型和數(shù)據(jù),還可以提交新作業(yè)和下載結(jié)果。根據(jù)您的角色(“用戶”、“邀請者”或“管理員”),可以看到UI的不同元素。
UI由四個視圖組成(括號中附加了查看此視圖所需的最低用戶角色):
Jobs(用戶)
Models(用戶)
Users(邀請方)
Cleanup(管理員)
Jobs視圖列出您提交的所有作業(yè)(如果您是管理員,則列出所有用戶提交的所有作業(yè))。您可以通過單擊所需列對提交內(nèi)容進(jìn)行排序。從該視圖中,您還可以與作業(yè)交互(查看更多詳細(xì)信息、取消運(yùn)行作業(yè)或下載結(jié)果),以及提交新作業(yè)。
Models視圖列出了所有名稱空間以及在每個名稱空間中注冊的所有模型。要查看在特定命名空間中注冊的模型,請單擊此命名空間,列出模型的表將更新。正如在Jobs視圖中一樣,您可以通過單擊所需列對表進(jìn)行排序。您可以在此視圖中添加或刪除名稱空間,也可以注冊新模型。
Users視圖僅對邀請者和管理員可見。如果您是管理員,您可以看到在系統(tǒng)中注冊的所有用戶;如果您是邀請者,則僅顯示您或其中一個被邀請者邀請的用戶。您可以編輯用戶角色和權(quán)限,也可以刪除用戶。此外,還可以從此處創(chuàng)建新的邀請代碼。請注意,邀請者只能邀請與自己擁有相同或更少特權(quán)的人。
Cleanup視圖僅對管理員可見。在這里,您可以清理數(shù)據(jù)庫以減少GAMSEngine使用的存儲量。您可以逐個刪除文件,也可以通過單擊“運(yùn)行內(nèi)務(wù)管理”按鈕一次清理多個文件。此“內(nèi)務(wù)管理”對話框允許您刪除x天前創(chuàng)建的所有文件和/或從系統(tǒng)中刪除的用戶創(chuàng)建的文件。
GAMS MIRO集成
使用部署工具GAMSMIRO,您可以使用任何現(xiàn)有的GAMS模型,并通過幾行附加代碼將其轉(zhuǎn)換為可部署的網(wǎng)絡(luò)應(yīng)用程序。MIRO提供了一套豐富的圖形輸出格式、場景管理等。它是為那些尋求一種簡單而自動化的方式使其GAMS模型可供他人使用的人而設(shè)計的。
GAMSMIRO與Engine無縫連接,很容易建立連接并運(yùn)行。一旦設(shè)置好,您就可以從平板電腦甚至智能手機(jī)上運(yùn)行CPU密集型優(yōu)化問題。
GAMS Studio集成
GAMSStudio內(nèi)置了一些與GAMSEngine進(jìn)行基本交互的功能。從1.4.2版開始,Studio可用于使用Engine執(zhí)行GAMS作業(yè)。該功能集不斷被擴(kuò)展。
要使用Engine解決GAMS作業(yè),請選擇快速訪問工具欄中的運(yùn)行GAMSEngine或通過主菜單中的輸入GAMS。
在出現(xiàn)的對話框中,需要進(jìn)行進(jìn)一步的設(shè)置:
EngineURL:指向GAMSEngine服務(wù)器的URL。
名稱空間:作業(yè)將在其中執(zhí)行的名稱空間
用戶名:Engine用戶賬戶的用戶名
密碼:Engine用戶賬戶的密碼
創(chuàng)建GDX文件:創(chuàng)建一個包含獨(dú)立于其他設(shè)置的所有符號的GDX文件。
編輯EngineURL時,Studio嘗試訪問服務(wù)器并請求版本信息。成功后,將顯示服務(wù)器上GAMS和Engine的版本。如果本地GAMS版本較新,則會自動添加命令行參數(shù)previousWork=1。
單擊“確定”,作業(yè)即被提交。請注意,模型是在本地編譯的,只有執(zhí)行階段在GAMSEngine上執(zhí)行。結(jié)果將寫入以模型的基本名稱(即主文件名)命名的子文件夾中。日志輸出中的鏈接將替換為本地對應(yīng)的鏈接。
注意:
通過Engine處理的GAMS作業(yè)在Linux操作系統(tǒng)上執(zhí)行。因此,使用UNIX路徑分隔符(“/”)。這與GAMS模型中的現(xiàn)有路徑以及提交作業(yè)時命令行上的路徑有關(guān)。因此,您應(yīng)該確保始終使用UNIX路徑分隔符!
定制客戶端
GAMS Engine提供了一個RESTAPI,它遵循一個名為OpenAPI2.0版的規(guī)范。該規(guī)范為RESTfulAPI定義了一個標(biāo)準(zhǔn)的、與語言無關(guān)的接口,它允許人類和計算機(jī)輕松發(fā)現(xiàn)和理解軟件的功能。這項(xiàng)技術(shù)的一個主要優(yōu)點(diǎn)是,使用OpenAPIGenerator可以輕松地為幾種編程語言自動生成客戶端庫。這包括Python、java、C、C++、C++、R、Node.js/JavaScript、Ruby等語言。GAMSEngine可以通過這些客戶端中的任何一個進(jìn)行訪問。一個典型的工作流可能是采用自動生成的客戶端,并將其用作定制解決方案的起點(diǎn)。
提示:
對于客戶端和Engine之間的通信,只有RESTAPI是相關(guān)的。您不必關(guān)心Engine內(nèi)部發(fā)生的任何事情。例如,要提交GAMS作業(yè),必須只處理API的對應(yīng)端點(diǎn)。所有后續(xù)步驟(例如,將作業(yè)發(fā)送給空閑工作人員或?qū)⑵渑抨?duì)、調(diào)用GAMS等)都由Engine負(fù)責(zé)。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9234瀏覽量
85641 -
分布式
+關(guān)注
關(guān)注
1文章
910瀏覽量
74559 -
模型
+關(guān)注
關(guān)注
1文章
3267瀏覽量
48924
原文標(biāo)題:GAMS Engine
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論