This document provides an overview of multiprocessing programming and OpenMP. It discusses symmetric multiprocessing using shared memory, as well as message passing interface programming. It then covers OpenMP programming models including parallel sections, clauses like private and shared to control data sharing, and synchronization using critical sections. The document aims to eliminate synchronization and dependency through OpenMP directives to generate multi-threaded code supported by compilers.