Programming a computer is the process of translating ideas into code that can be objectively interpreted by a computer and perform the operations that lead to a result.
To follow this tutorial, it is always helpful to understand how most programming languages operated. Most programming languages use the concept of variables and operations executed on those variables. Operations on variables are called functions or methods. The flow of operations is organized in sections that in some languages are also called functions, structures, and classes.
The code follows a path, starting from an initial line of execution it continues line after line. Sometimes they follow a different path according to the result of an operation. On other occasions, the path repeats itself over and over a certain number of times or until another condition is met. All this we will learn here in the context of a particular programming language called Fortran.
For parallel programming multiple instructions happen concurrently, potentially using the also multiple CPU cores on a machine a numerical accelerator such as a GPU, or even multiple machines. Some of our examples, in particular, those for OpenACC and CUDA Fortran can only be executed if you have a machine with an NVIDIA GPU. For distributed parallel programming with MPI, you can still execute the codes using a single machine even if the scope of MPI programming is to use the computational power of multiple