Partilhar via


F. Novos recursos e esclarecimentos na versão 2.0

Este apêndice resume as principais alterações feitas na especificação OpenMP C/C++ ao passar da versão 1.0 para a versão 2.0. Os seguintes itens são novos recursos adicionados à especificação:

  • As vírgulas são permitidas nas diretivas OpenMP.

  • Aditamento da num_threads cláusula. Esta cláusula permite que um usuário solicite um número específico de threads para uma construção paralela.

  • A diretiva threadprivate foi estendida para aceitar variáveis estáticas de escopo de bloco.

  • Arrays de Comprimento Variável do C99 são tipos completos e podem ser especificados em qualquer lugar onde tipos completos são permitidos, como nas listas de private, firstprivate e cláusulas lastprivate (ver seção 2.7.2).

  • Uma variável privada numa região paralela pode ser marcada como private novamente numa diretiva aninhada.

  • A copyprivate cláusula foi acrescentada. Ele fornece um mecanismo para usar uma variável privada para transmitir um valor de um membro de uma equipe para os outros membros. É uma alternativa ao uso de uma variável compartilhada para o valor quando fornecer tal variável compartilhada seria difícil (por exemplo, em uma recursão que requer uma variável diferente em cada nível). A cláusula copyprivate só pode figurar na single diretiva.

  • A adição de rotinas de cronometragem omp_get_wtick e omp_get_wtime semelhantes às rotinas do MPI. Estas funções são necessárias para fazer temporizações de relógio de parede.

  • Um apêndice com uma lista de comportamentos definidos pela implementação no OpenMP C/C++ foi adicionado. Uma implementação é necessária para definir e documentar seu comportamento nesses casos.

  • As seguintes alterações servem para esclarecer ou corrigir recursos na especificação anterior da API OpenMP para C/C++: