I have a local machine running MacOS (four 64-bit CPU cores), and a remote machine running Linux (two 32-bit CPU cores), and I can install and run commands from the respective (architecture-dependent) MathLink C executable on each machine separately. Is it possible to parallelize a computation that uses the native MathLink executable on each machine, from a single Mma evaluation on one machine?
Having set up remote kernels in the preferences, I am able to confirm remote functionality using
LaunchKernels[];
ParallelEvaluate[$MachineName]
{"mac", "mac", "mac", "mac", "linux", "linux"}
I thought this might work:
kernels=Kernels[]; (* first four are local machine, last two are remote machine *)
(* Install local executable on local kernels *)
ParallelEvaluate[Install["path to local MathLink executable"], kernels[[1;;4]]];
(* Install remote executable on remote kernels *)
ParallelEvaluate[Install["path to remote MathLink executable"], kernels[[5;;6]]]
but the 2nd evaluation returns
LinkOpen::linke: Could not find MathLink executable. LinkOpen::linke: Could not find MathLink executable. {$Failed, $Failed}
I also tried copying the remote executable to the local machine, and used that path for the remote kernel ParallelEvaluate call. The evaluation simply hangs in this case.