WOLFRAM

技術

WSTPServer

連線及重新連線至長期運行的預初始化 Wolfram 引擎

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:

file.wls
[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 及以上版本相容。