I have a parallel FORTRAN code (MPI) that run in Linux between 5 node (each node use eight AMD processor). The base serial code was written in Compaq and later changed to mpi parallel code. For some reasons i must change all OS of nodes to windows. I’m confusing that how can i run this parallel code in each windows between nodes. These are questions that raised for me.
Any help are highly appreciated.
If it's pure Fortran and MPI, it should "just work" on Windows assuming you have a supported MPI installed. If your code makes any Linux-specific calls, then there may or may not be an issue. You would have to define the Windows cluster in a similar manner as you would on Linux. I'd suggest asking in the Clustering Technologies forum for help with that.
>> For some reasons i must change all OS of nodes to windows. I’m confusing that how can i run this parallel code in each windows between nodes.
Let me make an experienced guess. In the process of converting your application from Linux to Windows, you converted (or added) the user interface as a Windows GUI application. While this may be running (~well) on a single node, you now have a problem running this on multiple nodes. Is this a correct presumption?
If the above is what you did, Then the proper procedure to follow is to separate your integrated GUI application into two parts: a) a front end containing the user interface GUI, and b) a back end the performs the compute processing. At application startup, the GUI part only runs on rank 0, and the back end part(s) run on all
As Steve said, if you have installed and set up mpi , the mpi compile wrapper (mpiifort in the case of intel mpi) should find mpi include files, including mpif.h for backward compatibility.
>>1- Is it possible to run this parallel code with VS and Intel parallel XE or other software can do it?
>> because i can't find any mpif.h file in the intel library
Intel Parallel Studio XE ... for Windows
Intel Parallel Studio XE Cluster Edition ... for Windows
The mpi code is available in the Cluster Edition.
In the current (and recent) version, the differentiation is with the serial number. Did you happen to use a non-Cluster Edition serial number?
Also, launch a Command Prompt. issue
dir /s /b C:\mpif.h
And wait for command to complete (this can be a long time if you have over a million files). This will search your entire C: drive. If you have additional drives (and installed Intel PS XE there) then redo the command using that/those drive letter(s).
Also, you don't have to use Intel MPI. You could use another MPI package such as MPICH2 or OpenMPI, if your code is compatible with those. Intel MPI does have some performance advantages. The Intel MPI Library can also be purchased separately.
The usual version of openmpi for Windows, as offered with cygwin, isn't link compatible with ifort, only with gfortran. mpich2 for windows is normally used with ifort, so it is a satisfactory choice if your needs are satisfied by tcp/ip and shared memory fabric.
These are results from the CMD (https://ibb.co/dYFUav). If it is possible to use, please guide me to set it up is VS (I'm very new). If not, i can just get free mpi package and please suggest me packages that i can use it simply.Thanks.
Thanks Kevin. the link and simple example code were you provided in this link helped me to run my code parallel in node 0. a problem occurred in multi node running that i will ask about this in the Clustering Technologies forum.