Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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_threadsclá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,firstprivatee cláusulaslastprivate(ver seção 2.7.2).Uma variável privada numa região paralela pode ser marcada como private novamente numa diretiva aninhada.
A
copyprivateclá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 nasinglediretiva.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++:
Esclarecido que o comportamento de omp_set_nested e omp_set_dynamic quando
omp_in_parallelretorna diferente de zero é indefinido.O aninhamento de diretivas foi esclarecido quando se utiliza paralelismo aninhado.
As funções de inicialização de bloqueio e destruição de bloqueio podem ser chamadas numa região paralela.
Foram aditados novos exemplos ao apêndice A.