OpenMP(Open Multi Processing) é uma API(Application Program Interface) para programação paralela multi-threaded de memória compartilhada baseado no modelo de execução Fork-Join. Está disponível em compiladores das linguagens de programação C/C++ e Fortran em plataformas Unix e Windows. Criado e mantido pela OpenMP ARB(OpenMP Architecture Review Board), teve sua primeira versão publicada em 1997 para a linguagem Fortran e, em 1998, foi disponibilizada a versão para C/C++. É constituído por um conjunto de diretivas de compilação, rotinas de biblioteca e variáveis de ambiente.
É um tipo de programação que realiza vários cálculos em diferentes processadores(ou núcleos de processamento) ao mesmo tempo, seguindo o princípio "Dividir para Conquistar", ou seja, um problema grande é dividido em várias partes, e cada parte é resolvida paralelamente a outra parte. Isso pode ser utilizado pois nos últimos anos os processadores fabricados possuem múltiplos núcleos.
É um modelo de memória em que vários processadores acessam uma mesma memória. É um modelo de execução multi-thread, em que cada processador executa uma thread de um mesmo processo.
É um modelo de execução de programas em paralelo. Há uma thread principal executando o programa sequencialmente, a thread principal cria(fork) outras threads para executar uma tarefa paralelamente, quando essas threads finalizam e sincronizam, elas são eliminadas(join) e a thread principal continua a execução sequencial do programa.