Se proporciona muy poca información, por lo que esta respuesta puede no ser 100% útil.
El primer problema para considerar siempre es la licencia en la máquina remota. Si algunos kernels se lanzan, pero otros no, es posible que se hayan quedado sin licencias para los kernels en esa máquina. El resto de esta publicación asumirá que la licencia no es el problema.
método de conexión
La interfaz de núcleo remoto en Mathematica por defecto asume el protocolo rsh, que no es la elección correcta para muchos entornos, porque rsh no es un protocolo muy seguro.
La otra opción es ssh, que es mucho más compatible. Hay muchos clientes ssh, pero me centraré en un cliente incluido con Mathematica, es decir, WolframSSH.jar. Este cliente está basado en Java, que tiene el beneficio adicional de funcionar igual en todas las plataformas compatibles con Mathematica (Mac, Windows y Linux).
Para evitar tener que escribir una contraseña para cada conexión del kernel, es conveniente crear un par de claves privadas/públicas. La clave privada permanece en su computadora y la clave pública debe colocarse en la computadora remota (generalmente en la carpeta .ssh del directorio principal remoto).
Para generar un par de claves pública/privada puede utilizar el archivo WolframSSHKeyGen.jar, así:
java -jar c:\path\to\mathematica\SystemFiles\Java\WolframSSHKeyGen.jar
y siga las instrucciones que aparecen en los cuadros de diálogo que se presentan. Cuando termine, copie la clave pública a.ssh carpeta en la máquina remota. En mi caso, llamé a las teclas kernel_key
y kernel_key.pub
se denominó automáticamente de esa manera.
Ahora puede probar la conexión de una línea de comandos, al igual que (mediante el comando ls
en la máquina remota):
java -jar c:\path\to\mathematica\SystemFiles\Java\WolframSSH.jar --keyfile kernel_key [email protected] ls
Si esto funciona, debe ser capaz de terminar en el lado Mathematica de cosas.
núcleo remoto Conexión
Para realizar una conexión necesita los siguientes ajustes, el nombre de la máquina remota:
machine = "machine.example.com";
El nombre de usuario, por lo general $ usuario:
user = $UserName;
La ubicación binaria de ssh:
ssh = FileNameJoin[{$InstallationDirectory, "SystemFiles", "Java", "WolframSSH.jar"}];
La clave privada como se describió anteriormente:
privatekey = "c:\\users\\arnoudb\\kernel_key";
El comando de inicio para el núcleo:
math = "math -mathlink -linkmode Connect `4` -linkname `2` -subkernel -noinit >& /dev/null &";
Una función de configuración para poner todo junto:
ConfigureKernel[machine_, user_, ssh_, privatekey_, math_, number_] :=
SubKernels`RemoteKernels`RemoteMachine[
machine,
"java -jar \"" <> ssh <> "\" --keyfile \"" <> privatekey <> "\" " <> user <> "@" <> machine <> " \"" <> math <> "\"", number]
Este utiliza el función de configuración y lo define para usar 4 núcleos remotos:
remote = ConfigureKernel[machine, user, ssh, privatekey, math, 4]
Esto inicia los granos:
LaunchKernels[remote]
Este comando verifica si los granos están todos conectados y remota:
ParallelEvaluate[$MachineName]
Por cierto, esto ocurre con Mathematica 8, que se utiliza para trabajar con Mathematica 7 – Ivan
¿Alguien ha confirmado o replicado este problema? –
Puedo confirmar que esto no funciona. Intenté conectarme a mi propio kernel local a través de la interfaz remota del kernel en Mathematica 8.0.1, y falló con el mismo mensaje de error. –