This document provides an overview of OpenCL, a standard for parallel programming of heterogeneous systems. It discusses the evolution of computing from serial to parallel processing to take advantage of multiple cores. OpenCL aims to grow the market for parallel computing through cross-vendor portability and support for diverse applications. The key aspects covered are OpenCL's objectives, architecture involving platforms, execution model and memory model, and a simple example program.