This document provides an overview of OpenMP, including its basic architecture, programming model, syntax, directives, clauses, and examples. OpenMP is an application programming interface used for multi-threaded programming on shared memory systems. It supports parallel programming on platforms from single CPUs to multi-core/multi-processor systems. The document covers OpenMP versions, execution model, constructs like parallel regions and work sharing, data environment clauses, and synchronization methods. It also discusses limitations and references for further reading.