Parallelization for shared-memory multiprocessor/multicore computers is performed using OpenMP. OpenMP is an implementation of multithreading and it consists of a set of compiler directives, library routines, and environment variables.
Using the shared memory approach the computational tasks are divided on a number of threads.