WSTPServer 執行一個或多個 Wolfram 引擎池,提供任何本機或網路客戶端建立 WSTP 連線使用。
WSTPServer 是一個伺服器程式,負責將客戶端的所有流量路由至其所管理的核心,如同直接連接到核心一般運作。WSTPServer 核心可在網路上被偵測到,因此可以在一台或多台機器上運行核心池。WSTPServer 核心支援連線、斷線及重新連線,因此可維持一個長效的連線,並能從不同的程式或機器進行連線。
功能
WSTPServer 提供多種內核管理、連線與偵測功能,以最佳方式滿足所需。
執行多個預初始化核心池
WSTPServer 可以執行多個核心池,每個核心池皆共享可由使用者設定的屬性。核心會根據其所屬核心池的屬性進行預先初始化。
在網路上看得到
WSTPServer 在預設定下可在本機網路中使用,允許使用者從其他電腦進行連線。
可在網路上被偵測到
WSTPServer 透過 DNS 服務發現 (DNS-SD) 在網路上發佈自身資訊,使客戶端能夠輕鬆發現可用的 WSTPServer 實例與核心。
維持長效的會話
WSTPServer 允許重新連線至先前已連線過的核心,即使是不同的機器。
在專用機器上執行核心
WSTPServer 實例可部署於專用伺服器上,如此僅有這些伺服器會處理核心行程。由於 WSTPServer 實例在網路上很容易被偵測到,因此將 WSTPServer 實例部署於多台專用伺服器的設定相當簡單。
從任何 WSTP 客戶端連線
任何支援 WSTP 的程式皆可連線至 WSTPServer。Wolfram 生態系統中的多項產品均明確支援 WSTPServer,包括 WolframScript、筆記本前端、平行運算框架以及 J/Link。
平行計算可以使用核心
WSTPServer 具備啟動平行核心並提供 Wolfram 語言平行計算功能的能力。配置平行計算框架來使用這些核心非常簡單。
便捷管理與所需核心的連線
WSTPServer 透過其設定檔系統,能夠方便管理與指定核心的連線。可以在設定檔中指定具有特定屬性的核心,並在設定檔中追蹤先前曾連線過的核心詳細資訊,以便輕鬆重新連線至這些核心。
查詢 Wstpserver 狀態
WSTPServer 透過 WSTP 連線查詢 WSTPServer 當前狀態,並取得診斷資訊。
範例
WolframScript
在可用的 WSTPServer 上執行 Wolfram 語言代碼 2+2:
$ wolframscript -wstpserver -code 2+2
4
使用可用的 WSTPServer 在互動的 REPL 中執行 Wolfram 語言:
$ wolframscript -wstpserver
In[1]:= 2+2
Out[1]= 4
In[2]:=
筆記本前端
使用筆記本前端連線至 WSTPServer。取得已連線 WSTPServer 核心的 ID、其所屬資源池的名稱,並執行一個測試表達式:
平行計算功能
從 Wolfram 語言連線至 WSTPServer 的平行核心,並在平行計算中使用:
WSTP C 程式
連線至 WSTPServer,並使用 WSTP C 程式執行 Wolfram 語言代碼 2+2:
[link = MLOpenString(env, "-linkmode connect -linkname 31415 -linkprotocol TCPIP -linkoptions 4", &error);
MLNextPacket(link); MLNewPacket(link);
MLPutFunction(link, "EvaluatePacket", 1);
MLPutFunction(link, "Plus", 2);
MLPutInteger(link, 2);
MLPutInteger(link, 2);
MLEndPacket(link);
技術資訊
- WSTPServer 支援執行 Windows、macOS 或 Linux 的 x64 系統。Linux 系統上亦支援 ARM 32 位元架構。
- WSTPServer 隨同 Wolfram 語言版本 12.2 及以上版本一併發行,並與 Wolfram 語言版本 11 及以上版本相容。