How to enable remote launching from a Windows host to another Windows host.
Background
For parallel running Feko uses Intel MPI to manage communication between parallel processes. Recent versions of Intel MPI have removed support for some authentication approaches and rather support the usage of Powershell to manage shell commands. This necessitates a few minor settings changes in Feko installations on Windows should remote launching between Windows machines be required and when recent Intel MPI versions are used.
It must be highlighted that in versions of Feko released after the Feko 2024.1 release, the settings described here will not need to be manually applied, but will be made as part of the installation process.
Steps
Note: In the below steps “local machine” means the machine from where the Feko job will be launched onto the remote machine. And “remote host” means the machine that will be running the actual Feko solver (doing the number crunching)
Step 1: Editing the feko_remote_mpi.bat script
On the local machine, open, with administrative privileges, the feko_remote_mpi.bat file located in the folder,
%FEKO_HOME%\bin
For a default Feko 2024.1 Windows installation, the full file path would typically be:
C:\Program Files\Altair\2024.1\feko\bin\feko_remote_mpi.bat
In Line 314, delete the text “–genvnone” and “–delegate" so that this line is now:
<span xml:lang="EN-US" data-contrast="auto">set MPIEXEC_OPTIONS=-n 1 -host !remote_host!</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":0,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
Step 2: Check/Enable Windows Remote Management on the remote host
2.1 On the remote host, start Windows Powershell with administrative privileges
2.3 In the Powershell terminal run,
<span xml:lang="EN-US" data-contrast="auto">Enable-PSRemoting</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
If already enabled, the output will be:
<span xml:lang="EN-US" data-contrast="auto">PS C:\Windows\system32> Enable-PSRemoting</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
<span xml:lang="EN-US" data-contrast="auto">WinRM is already set up to receive requests on this computer.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
<span xml:lang="EN-US" data-contrast="auto">WinRM is already set up for remote management on this computer.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
If not already enabled, the output will be:
<span xml:lang="EN-US" data-contrast="auto">WinRM service started.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
2.4 Perform the following test on the remote host to verify that the Windows Remote Management service is working:
Test-WSMan –ComputerName <localhost>
The output should be:
<span xml:lang="EN-US" data-contrast="auto">wsmid : <a href="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd">http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd</a></span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":0,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
<span xml:lang="EN-US" data-contrast="auto">ProtocolVersion : <a href="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</a></span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":0,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
<span xml:lang="EN-US" data-contrast="auto">ProductVendor : Microsoft Corporation</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":0,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
<span xml:lang="EN-US" data-contrast="auto">ProductVersion : OS: 0.0.0 SP: 0.0 Stack: 3.0</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":0,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
Step 3: Check if the Invoke-Command is working on the local machine
On the local machine run:
<span xml:lang="EN-US" data-contrast="auto">Invoke-Command -ComputerName <RemoteHostName> {hostname}</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":0,"335559737":0,"335559738":0,"335559739":160,"335559740":259}"> </span>
The output should give the hostname of the remote host.
Step 4: Setup Feko on the local machine for remote launching
4.1 On the local machine, open the Component Launch Options dialog from any of the GUI components (CADFEKO or POSTFEKO)
4.2 For Remote execution method, select MPI (Windows only)
4.3 For Parallel authentication method select Default (ssh/rsh for UNIX, registry for Windows)
4.4 Click the Configure button and specify the remote hostname and the number of parallel processes to run on the remote host.
You can now execute a remote parallel Feko run by enabling Parallel and Remote in the Run/Launch group on Home tab or the Solve/Run tab in the GUI.
Conclusion
If remote launching still fails, please contact support and provide the full debug output as follows:
(a) Enable debug output by adding “-d” to the Advanced field on the Feko tab of Component Launch Options
(b) Run Feko again to obtain the full debug output and save the contents of the Executing runfeko window to file.