No que diz respeito às primitivas básicas de programação paralela, controle de tarefas, comunicação e sincronização, a seguir são descritos dois modelos de programação.
I. Execução de uma mesma atividade sobre diferentes partes de um conjunto de dados. Os dados determinam a concorrência da aplicação e a forma como o cálculo deve ser distribuído na arquitetura.
II. Execução de tarefas que compartilham um mesmo espaço de memória. Comunicação através do acesso a uma área compartilhada
Os modelos de programação descritos em I e II são denominados, respectivamente, paralelismo