I am a PhD student and my field of study is Quantum Information and Computation in the theoretical aspect. Actually I write the computer codes/program in FORTRAN 90 which are serial codes but now I have to run my codes in supercomputer so I have to learn parallel FORTRAN programming. Is there anybody to guide me from where I can start as beginner like the best book or notes.
1 Answer
I'm assuming by 'supercomputer' you're talking about HPC and distributed memory systems, as opposed to shared memory workstations, in which case you have a couple of options when it comes to Fortran.
If you are restricted to Fortran 90, then your options basically come down to MPI. MPI is not a Fortran-only solution, and if you understand some C/C++, you should be able to learn from various resources. One introduction site I found concise was this one, and it shows examples in both C and Fortran:
http://hamilton.nuigalway.ie/teaching/AOS/NINE/mpi-first-examples.html
If you have the option of using a later version of Fortran (2008), then you have the option of using a Fortran-specific feature called coarrays. These are relatively new to the Fortran standard, and have been included in versions of gfortran since about 2015. Coarray Fortran (CAF) isn't as widespread in use as MPI is, but that may change in the future. Some researchers have noted that since CAF is a Fortran-specific feature as opposed to MPI, "[it] is of course much easier to write and maintain, and the simpler syntax makes the parallelism easier to understand."