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負責。
-
服務器
+關注
關注
12文章
9303瀏覽量
86061 -
分布式
+關注
關注
1文章
924瀏覽量
74610 -
模型
+關注
關注
1文章
3305瀏覽量
49220
原文標題:GAMS Engine
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論