WSTPServer executa um ou mais pools de Wolfram Engines que ficam disponíveis para conexões via WSTP a partir de qualquer cliente, localmente ou pela rede.
WSTPServer é um programa servidor que encaminha todo o tráfego de um cliente para um kernel que ele gerencia, permitindo que as conexões ao WSTPServer se comportem como conexões diretas aos kernels. Os kernels do WSTPServer podem ser descobertos na rede, possibilitando a existência de pools de kernels em uma ou mais máquinas. Como um kernel do WSTPServer pode ser conectado, desconectado e reconectado, é possível manter uma sessão de longa duração, à qual se pode conectar a partir de diferentes programas ou máquinas.
Recursos
WSTPServer apresenta uma ampla variedade de recursos de gerenciamento de kernels, conexão e descoberta, para melhor atender às suas necessidades.
Executar múltiplos pools de kernels pré-inicializados
WSTPServer pode executar vários pools de kernels, cada um compartilhando propriedades configuráveis pelo usuário. Os kernels são pré-inicializados de acordo com as propriedades do pool ao qual pertencem.
Visível na Rede
WSTPServer fica disponível na rede local em sua configuração padrão, permitindo que usuários se conectem a partir de outras máquinas.
Detectável na rede
WSTPServer utiliza o DNS Service Discovery (DNS-SD) para se anunciar na rede, facilitando que clientes encontrem instâncias e kernels disponíveis do WSTPServer.
Manter uma sessão de longa duração
WSTPServer permite reconectar a um kernel ao qual já se tenha conectado anteriormente, inclusive a partir de outra máquina.
Executar kernels em máquinas dedicadas
As instâncias do WSTPServer podem ser instaladas em máquinas dedicadas, de modo que apenas essas máquinas fiquem ocupadas com processos de kernel. Ter instâncias do WSTPServer em várias máquinas dedicadas é simples de configurar, pois elas são facilmente detectadas na rede.
Conectar a partir de qualquer cliente WSTP
Qualquer programa habilitado para WSTP pode se conectar ao WSTPServer. Diversos produtos do ecossistema Wolfram oferecem suporte explícito ao WSTPServer, incluindo o WolframScript, a interface de notebooks, o framework de computação paralela e o J/Link.
Disponibilizar kernels para computação paralela
WSTPServer tem a capacidade de iniciar e disponibilizar kernels paralelos para uso com as funcionalidades de computação paralela da Wolfram Language. É fácil configurar o framework de computação paralela para utilizar esses kernels.
Gerenciar facilmente conexões com kernels desejados
WSTPServer permite gerenciar facilmente conexões com kernels específicos por meio de seu sistema de perfis. Kernels com determinadas propriedades podem ser solicitados em um perfil, e os detalhes de kernels aos quais se conectou anteriormente podem ser registrados em um perfil, facilitando a reconexão a eles.
Consultar o status do WSTPServer
WSTPServer facilita a consulta do status atual do servidor e a obtenção de diagnósticos por meio de uma conexão WSTP com ele.
Exemplos
WolframScript
Avalie o código da Wolfram Language 2+2 em um WSTPServer disponível:
$ wolframscript -wstpserver -code 2+2
4
Execute a Wolfram Language em um REPL interativo usando um WSTPServer disponível:
$ wolframscript -wstpserver
In[1]:= 2+2
Out[1]= 4
In[2]:=
Interface de Notebook
Conecte-se ao WSTPServer usando a interface de notebooks. Obtenha o ID do kernel do WSTPServer conectado, identifique o nome do pool ao qual ele pertence e avalie uma expressão de teste:
Funcionalidade de Computação Paralela
Conecte-se aos kernels paralelos do WSTPServer a partir da Wolfram Language e utilize-os em uma avaliação paralela:
Program WSTP em C
Conecte-se ao WSTPServer e avalie o código da Wolfram Language 2+2 usando um programa WSTP em C:
[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);
Informações técnicas
- O WSTPServer oferece suporte a sistemas x64 executando Windows, macOS ou Linux. O suporte a ARM de 32 bits está disponível no Linux.
- O WSTPServer é distribuído a partir da versão 12.2 da Wolfram Language e é compatível com a versão 11 da Wolfram Language e posteriores.