This tutorial provides an introduction on how to write a parallel program using OpenMP, and will help researchers write better and more portable parallel codes for shared memory Linux nodes. The course will cover the Compiler Directives (44), Runtime Library Routines (35), and Environment Variables (13) relevant to OpenMP. OpenMP supports C/C++ and Fortran implementations. Examples of how to enable OpenMP on the Intel, GNU, and PGI compilers will be given. The fork-join model of thread parallel execution will be described. Examples of various work sharing, synchronization, data scope, scheduling, reduction, thread binding, and vectorization constructs will be given. Programming examples will be given in Fortran and C, so any background in these languages will be helpful.