Partilhar via


F. Novos recursos e esclarecimentos na versão 2.0

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

  • Vírgulas são permitidas em diretivas OpenMP.

  • Adição da cláusula num_threads. Essa cláusula permite que um usuário solicite um número específico de threads para um constructo paralelo.

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

  • As Matrizes de Comprimento de Variável C99 são tipos completos e podem ser especificadas em qualquer lugar em que tipos completos são permitidos, como nas listas de cláusulas private, firstprivate e lastprivate (confira a seção 2.7.2).

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

  • A cláusula copyprivate que foi adicionada. Fornece um mecanismo para usar uma variável privada para difundir um valor de um membro de uma equipe para os outros membros. É uma alternativa usar uma variável compartilhada para o valor quando fornecer essa variável compartilhada seria difícil (por exemplo, em uma recursão que exige uma variável diferente em cada nível). A cláusula copyprivate só pode aparecer na diretiva single.

  • Adição de rotinas de tempo omp_get_wtick e omp_get_wtime semelhantes às rotinas de MPI. Essas funções são necessárias para horários 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++: