Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
49 Views

Running FORTRAN code in windows wich written for Linux.

Hi

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. 

  • 1- Is it possible to run this parallel code with VS and Intel parallel XE or other software can do it?
  • 2- Because i need to get results as soon as possible in each run i used 100% of all cup capacity in each node in Linux. Is it possible to be done this work in windows?
  • 3- How can i link these 5 windows for parallel solving?

Any help are highly appreciated.

with regard

 

0 Kudos
10 Replies
Highlighted
Black Belt Retired Employee
49 Views

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.

--
Steve (aka "Doctor Fortran") - https://stevelionel.com/drfortran
0 Kudos
Highlighted
49 Views

>> 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 other ranks.

Jim Dempsey

0 Kudos
Highlighted
Beginner
49 Views

Thanks Steve and Jim.I apologize for the delay in sending reply. Jim as you mentioned this program separated into GUI and computing part. As i said base code written in serial and run well. algorithm of parallel code is like this: ------------------------------------------- program parallel include 'mpif.h' variables definition call MPI_Init(errcode) call MPI_Comm_size(MPI_COMM_WORLD, size, errcode) call MPI_Comm_rank(MPI_COMM_WORLD, rank, errcode) defining each task go to which processor.(e.g. if rank0 do the job 1 or if rank 1 do the job 5...) like serial code (main and major of the code) call MPI_Finalize(errcode) end program --------------------------------------------- But i can't run this code on a single node because i can't find any mpif.h file in the intel library to add into the additional include direction in VS. First,i want to run parallel code on a single node (for example with 5 core) and then initiate to setup cluster between all nodes. what should i do? thanks
0 Kudos
Highlighted
Black Belt
49 Views

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.

0 Kudos
Highlighted
49 Views

>>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

There are:

Intel Parallel Studio XE ... for Windows
     and
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).

Jim Dempsey

0 Kudos
Highlighted
Black Belt Retired Employee
49 Views

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.

--
Steve (aka "Doctor Fortran") - https://stevelionel.com/drfortran
0 Kudos
Highlighted
Black Belt
49 Views

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.

0 Kudos
Highlighted
Beginner
49 Views

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.

 

0 Kudos
Highlighted
Employee
49 Views

I don't know whether it will help, but I provided a small example to someone before in this thread.

0 Kudos
Highlighted
Beginner
49 Views

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.

Thanks all.

0 Kudos