WOLFRAM

Technologies

WSTPServer

Verbinden und Wiederverbinden mit langlebigen, vorinitialisierten Wolfram Engines

WSTPServer betreibt einen oder mehrere Pools von Wolfram Engines, die für WSTP-Verbindungen von beliebigen Clients bereitgestellt werden – lokal oder über das Netzwerk.

WSTPServer ist ein Serverprogramm, das den gesamten Datenverkehr eines Clients an einen von ihm verwalteten Kernel weiterleitet. Dadurch verhalten sich Verbindungen zu WSTPServer wie direkte Verbindungen zu Kernels. WSTPServer-Kernels sind im Netzwerk auffindbar, sodass Sie Pools von Kernels auf einer oder mehreren Rechnern betreiben können. Da eine Verbindung zu einem WSTPServer-Kernel getrennt und später wiederhergestellt werden kann, lassen sich langlebige Sitzungen aufrechterhalten, auf die Sie von verschiedenen Programmen oder Rechnern aus zugreifen können.

Funktionen

WSTPServer bietet eine Vielzahl von Funktionen zur Kernel-Verwaltung, Verbindung und Erkennung, um sich optimal an Ihre Anforderungen anzupassen.

Mehrere Pools vorinitialisierter Kernels ausführen

WSTPServer kann mehrere Kernel-Pools betreiben, die jeweils benutzerkonfigurierbare Eigenschaften teilen. Die Kernels werden entsprechend den Eigenschaften ihres Pools vorinitialisiert.

Im Netzwerk sichtbar

In der Standardkonfiguration ist WSTPServer im lokalen Netzwerk verfügbar, sodass sich Nutzer von anderen Maschinen aus verbinden können.

Im Netzwerk auffindbar

WSTPServer verwendet DNS Service Discovery (DNS-SD), um sich im Netzwerk bekannt zu machen. Dadurch können Clients verfügbare WSTPServer-Instanzen und Kernels leicht finden.

Langlebige Sitzungen ermöglichen

WSTPServer erlaubt es, bestehende Kernel-Sitzungen zu trennen und später erneut zu verbinden – auch von einem anderen Rechner oder einem anderen Programm aus.

Kernels auf dedizierten Systemen betreiben

WSTPServer-Instanzen können auf dedizierten Maschinen ausgeführt werden, sodass diese gezielt für Kernel-Prozesse genutzt werden. Dank automatischer Netzwerkerkennung lassen sich mehrere Instanzen auf unterschiedlichen Systemen einfach einrichten und verwalten.

Verbindung von jedem WSTP-Client aus

Jedes WSTP-fähige Programm kann eine Verbindung zu WSTPServer herstellen. Mehrere Produkte im Wolfram-Ökosystem unterstützen WSTPServer explizit, darunter WolframScript, das Notebook-Frontend, das Parallel-Computing-Framework und J/Link.

Kernels für Parallel Computing bereitstellen

WWSTPServer kann parallele Kernels starten und für die Parallel-Computing-Funktionalität der Wolfram Language verfügbar machen. Die Integration in das Parallel-Computing-Framework ist leicht zu konfigurieren.

Verbindungen zu gewünschten Kernels bequem verwalten

Über das Profilsystem von WSTPServer lassen sich Verbindungen zu gewünschten Kernels einfach verwalten. In einem Profil können Kernels mit bestimmten Eigenschaften angefordert werden, und Details zuvor genutzter Kernels werden gespeichert, sodass eine erneute Verbindung unkompliziert möglich ist.

Status von WSTPServer abfragen

WSTPServer ermöglicht es, den aktuellen Status sowie Diagnosen bequem über eine WSTP-Verbindung abzufragen.

Beispiele

WolframScript

Werten Sie den Wolfram-Language-Code 2+2 in einem verfügbaren WSTPServer aus:

$ wolframscript -wstpserver -code 2+2
            4

Führen Sie die Wolfram Language in einer interaktiven REPL unter Verwendung eines verfügbaren WSTPServer aus:

$ wolframscript -wstpserver
In[1]:= 2+2
                
                            Out[1]= 4
            
                            In[2]:=
                

Notebook-Frontend

Stellen Sie über das Notebook-Frontend eine Verbindung zu WSTPServer her. Ermitteln Sie die ID des verbundenen WSTPServer-Kernels, den Namen des zugehörigen Pools und werten Sie einen Testausdruck aus:

Parallel-Computing-Funktionalität

Verbinden Sie sich aus der Wolfram Language mit parallelen WSTPServer-Kernels und nutzen Sie diese für parallele Auswertungen:

WSTP C-Programm

Stellen Sie mit einem WSTP-C-Programm eine Verbindung zu WSTPServer her und werten Sie den Wolfram-Language-Code 2+2 aus:

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);
             

Technische Informationen

  • WSTPServer unterstützt x64-Systeme unter Windows, macOS und Linux. Unterstützung für ARM-32-Bit ist unter Linux verfügbar.
  • WSTPServer wird mit Version 12.2 von Wolfram Language und höher ausgeliefert und ist mit Version 11 von Wolfram Language und höher kompatibel.