OpenCL — Linguagem de programação paralela multiplataforma
Gabarito: letra A. O trecho descreve exatamente o OpenCL (Open Computing Language), um padrão aberto para programação paralela em dispositivos heterogêneos (CPUs, GPUs, DSPs, FPGAs). As demais alternativas não se encaixam: MPI é voltado para troca de mensagens em clusters, Fortran é uma linguagem geral (não especificamente paralela/multiplataforma para GPUs), OpenMP foca em paralelismo em memória compartilhada (geralmente só CPUs) e Assembly é linguagem de baixo nível dependente de arquitetura.
Alternativa A — ✅ Correta ⟵ GABARITO
OpenCL (Open Computing Language) é um framework aberto que permite escrever programas executáveis em CPUs, GPUs e outros processadores, em diferentes dispositivos, mantendo portabilidade. Ele fornece uma API e uma linguagem de programação (baseada em C99) para computação paralela heterogênea. A descrição do enunciado casa perfeitamente com o OpenCL: "linguagem de programação paralela de plataforma cruzada usada para programar diferentes tipos de processadores".
Alternativa B — ❌ Incorreta
MPI (Message Passing Interface) é um padrão para comunicação entre processos em sistemas de memória distribuída (clusters). Embora seja usado em computação paralela, não é uma linguagem de programação em si e não foi projetado para programar GPUs ou dispositivos móveis com uma única API unificada. Não se aplica à descrição.
Alternativa C — ❌ Incorreta
Fortran é uma linguagem de programação voltada para computação científica, mas não é especificamente uma linguagem paralela multiplataforma para CPUs/GPUs. Ela pode ser usada com extensões como OpenMP ou CUDA, mas não define por si só uma plataforma paralela heterogênea.
Alternativa D — ❌ Incorreta
OpenMP é uma API para programação paralela em memória compartilhada, especialmente em CPUs multi-core. Não é uma linguagem de plataforma cruzada para programar GPUs e outros processadores embarcados de forma direta. Foca em diretivas de compilador para paralelismo em loops, não em um modelo heterogêneo.
Alternativa E — ❌ Incorreta
Assembly é uma linguagem de baixo nível específica para cada arquitetura de processador. Não é multiplataforma nem voltada para programação paralela de alto nível; cada conjunto de instruções é próprio, inviabilizando a portabilidade descrita.
Conclusão: O OpenCL é a única tecnologia que reúne as características citadas: linguagem paralela, plataforma cruzada, suporte a CPUs/GPUs e dispositivos variados.