Buscar

Apol 02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Nota: 100 
Disciplina(s): Computação Paralela 
Questão 1/10 - Computação Paralela 
#include"omp.h" 
#include"stdio.h" 
using namespace std; 
 
int main(){ 
 printf("INICIO.\n"); 
 #pragma omp parallel 
 { 
 printf("Adoro paralelismo!\n"); 
 } 
 printf("FIM.\n"); 
 return 0; 
} 
 
 
Sobre o codigo acima analise as afirmações a seguir: 
 
I. #pragma omp parallel é uma função que inicia a região paralela do código. 
II. O abre e fecha chaves depois de #pragma omp parallel é o que marca o bloco de código paralelo 
III. O número de vezes que mensagem será impressa na tela depende da quantidade de threads que o 
OpenMP executar considerando variáveis de ambiente e disponibilidade do sistema operacional pois não 
foi especificado pelo programador. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A I apenas. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. #pragma omp parallel é uma função que inicia a região paralela do código. 
- Não é uma função mas sim uma diretiva de compilação. 
 
(CORRETO) II. O abre e fecha chaves depois de #pragma omp parallel é o que marca o bloco 
de código paralelo 
- O que estiver neste bloco de código será paralelizado. 
 
(CORRETO) III. O número de vezes que mensagem será impressa na tela depende da 
quantidade de threads que o OpenMP executar considerando variáveis de ambiente e 
disponibilidade do sistema operacional pois não foi especificado pelo programador. 
- Ao longo do código não é especificado em momento algum a quantidade de threads então 
esta será estimada pelas variáveis de ambiente e disponibilidade do sistema. 
 
 
B II apenas. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. #pragma omp parallel é uma função que inicia a região paralela do código. 
- Não é uma função mas sim uma diretiva de compilação. 
 
(CORRETO) II. O abre e fecha chaves depois de #pragma omp parallel é o que marca o bloco 
de código paralelo 
- O que estiver neste bloco de código será paralelizado. 
 
(CORRETO) III. O número de vezes que mensagem será impressa na tela depende da 
quantidade de threads que o OpenMP executar considerando variáveis de ambiente e 
disponibilidade do sistema operacional pois não foi especificado pelo programador. 
- Ao longo do código não é especificado em momento algum a quantidade de threads então 
esta será estimada pelas variáveis de ambiente e disponibilidade do sistema. 
 
C III apenas. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. #pragma omp parallel é uma função que inicia a região paralela do código. 
- Não é uma função mas sim uma diretiva de compilação. 
 
(CORRETO) II. O abre e fecha chaves depois de #pragma omp parallel é o que marca o bloco 
de código paralelo 
- O que estiver neste bloco de código será paralelizado. 
 
(CORRETO) III. O número de vezes que mensagem será impressa na tela depende da 
quantidade de threads que o OpenMP executar considerando variáveis de ambiente e 
disponibilidade do sistema operacional pois não foi especificado pelo programador. 
- Ao longo do código não é especificado em momento algum a quantidade de threads então 
esta será estimada pelas variáveis de ambiente e disponibilidade do sistema. 
 
D II e III apenas. 
Você assinalou essa alternativa (D) 
Você acertou! 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. #pragma omp parallel é uma função que inicia a região paralela do código. 
- Não é uma função mas sim uma diretiva de compilação. 
 
(CORRETO) II. O abre e fecha chaves depois de #pragma omp parallel é o que marca o bloco 
de código paralelo 
- O que estiver neste bloco de código será paralelizado. 
 
(CORRETO) III. O número de vezes que mensagem será impressa na tela depende da 
quantidade de threads que o OpenMP executar considerando variáveis de ambiente e 
disponibilidade do sistema operacional pois não foi especificado pelo programador. 
- Ao longo do código não é especificado em momento algum a quantidade de threads então 
esta será estimada pelas variáveis de ambiente e disponibilidade do sistema. 
 
E I, II e III. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. #pragma omp parallel é uma função que inicia a região paralela do código. 
- Não é uma função mas sim uma diretiva de compilação. 
 
(CORRETO) II. O abre e fecha chaves depois de #pragma omp parallel é o que marca o bloco 
de código paralelo 
- O que estiver neste bloco de código será paralelizado. 
 
(CORRETO) III. O número de vezes que mensagem será impressa na tela depende da 
quantidade de threads que o OpenMP executar considerando variáveis de ambiente e 
disponibilidade do sistema operacional pois não foi especificado pelo programador. 
- Ao longo do código não é especificado em momento algum a quantidade de threads então 
esta será estimada pelas variáveis de ambiente e disponibilidade do sistema. 
 
Questão 2/10 - Computação Paralela 
#include"omp.h" 
#include"stdio.h" 
int main(){ 
 #pragma omp parallel num_threads(4) 
{ 
int id = omp_get_thread_num(); 
printf("Sou a thread numero %d.\n", id); 
} 
return 0; 
} 
 
Sobre o código acima analise as afirmações a seguir: 
 
I. O código lançara 4 threads apenas se o sistema operacional permitir 
 
II. omp_get_thread_num() retornará um identificador único por thread. 
III. A variável id é global para todas as threads. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A I apenas. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. O código lançara 4 threads apenas se o sistema operacional permitir 
- O codigo associado será executado por 4 threads ao todo. 
 
 
(CORRETO) II. omp_get_thread_num() retornará um identificador único por thread. 
- No caso de 4 threads serão os números, 0, 1, 2 e 3. 
 
(FALSO) III. A variável id é global para todas as threads. 
- São privadas, cada thread uma versão própria. 
 
B I e II apenas. 
Você assinalou essa alternativa (B) 
Você acertou! 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. O código lançara 4 threads apenas se o sistema operacional permitir 
- O codigo associado será executado por 4 threads ao todo. 
 
 
(CORRETO) II. omp_get_thread_num() retornará um identificador único por thread. 
- No caso de 4 threads serão os números, 0, 1, 2 e 3. 
 
(FALSO) III. A variável id é global para todas as threads. 
- São privadas, cada thread uma versão própria. 
 
C I e III apenas. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. O código lançara 4 threads apenas se o sistema operacional permitir 
- O codigo associado será executado por 4 threads ao todo. 
 
 
(CORRETO) II. omp_get_thread_num() retornará um identificador único por thread. 
- No caso de 4 threads serão os números, 0, 1, 2 e 3. 
 
(FALSO) III. A variável id é global para todas as threads. 
- São privadas, cada thread uma versão própria. 
 
D II e III apenas. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. O código lançara 4 threads apenas se o sistema operacional permitir 
- O codigo associado será executado por 4 threads ao todo. 
 
 
(CORRETO) II. omp_get_thread_num() retornará um identificador único por thread. 
- No caso de 4 threads serão os números, 0, 1, 2 e 3. 
 
(FALSO) III. A variável id é global para todas as threads. 
- São privadas, cada thread uma versão própria. 
 
E I, II e III. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. O código lançara 4 threads apenas se o sistema operacional permitir 
- O codigo associado será executado por 4 threads ao todo. 
 
 
(CORRETO) II. omp_get_thread_num() retornará um identificador único por thread. 
- No caso de 4 threads serão os números, 0, 1, 2 e 3. 
 
(FALSO) III. A variável id é global para todas as threads. 
- São privadas, cada thread uma versão própria. 
 
Questão 3/10 - Computação Paralela 
int lista[1000]; 
#pragma omp parallel num_threads(4) 
{ 
 int id = omp_get_thread_num(); 
 metodo(lista,id); 
} 
printf("fim\n); 
I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais a thread principal que lançou as 
demais. 
 
II. Suponha que o código seja executado em um máquina com um único núcleo,é garantido pelo OpenMP 
que as thread de id 0 será executada antes da thread de id 1. 
 
III. #pragma omp parallel por debaixo dos panos cria e une threads. O que significa que só será executado 
o comando printf("fim") depois que todas as threads terminarem de executar. 
Considere o código acima analise as afirmações a seguir: 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A I apenas. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais 
a thread principal que lançou as demais. 
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas. 
 
(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é 
garantido pelo OpenMP que as thread de id 0 será executada antes da thread de id 1. 
- A ordem depende do sistema operacional que não garante ordem. 
 
(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que 
significa que só será executado o comando printf("fim") depois que todas 
as threads terminarem de executar. 
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma 
omp parallel 
 
B II apenas. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais 
a thread principal que lançou as demais. 
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas. 
 
(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é 
garantido pelo OpenMP que as thread de id 0 será executada antes da thread de id 1. 
- A ordem depende do sistema operacional que não garante ordem. 
 
(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que 
significa que só será executado o comando printf("fim") depois que todas 
as threads terminarem de executar. 
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma 
omp parallel 
 
C III apenas. 
Você assinalou essa alternativa (C) 
Você acertou! 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais 
a thread principal que lançou as demais. 
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas. 
 
(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é 
garantido pelo OpenMP que as thread de id 0 será executada antes da thread de id 1. 
- A ordem depende do sistema operacional que não garante ordem. 
 
(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que 
significa que só será executado o comando printf("fim") depois que todas 
as threads terminarem de executar. 
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma 
omp parallel 
 
D I e III apenas. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais 
a thread principal que lançou as demais. 
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas. 
 
(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é 
garantido pelo OpenMP que as thread de id 0 será executada antes da thread de id 1. 
- A ordem depende do sistema operacional que não garante ordem. 
 
(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que 
significa que só será executado o comando printf("fim") depois que todas 
as threads terminarem de executar. 
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma 
omp parallel 
 
E II e III apenas. 
Considerando o conteúdo da aula 4. 
 
(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais 
a thread principal que lançou as demais. 
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas. 
 
(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é 
garantido pelo OpenMP que as thread de id 0 será executada antes da thread de id 1. 
- A ordem depende do sistema operacional que não garante ordem. 
 
(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que 
significa que só será executado o comando printf("fim") depois que todas 
as threads terminarem de executar. 
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma 
omp parallel 
 
Questão 4/10 - Computação Paralela 
A computação distribuída é o próximo passo da computação paralela através da combinação de máquinas 
independentes se comunicando e trabalhando em conjunto para resolução de problemas. 
 
Sobre o tópico em questão considere as afirmações a seguir: 
 
I. No que diz repeito a armazenamento em um sistema distribuído de dados temos o teorema CAP, 
sigla para Consistência, Disponibilidade(Availability do inglês) e Partição. 
II. Sistema distribuído de dados devem a todo momento garantir Consistência, Disponibilidade e 
Partição. 
III. No contexto de processamento distribuído, as operações map/reduce consistem em mapear 
processamento de dados entre vários processos e depois reunir os mesmo. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A I apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. No que diz repeito a armazenamento em um sistema distribuído de dados 
temos o teorema CAP, sigla para Consistência, Disponibilidade(Availability do inglês) e 
Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
(FALSO) II. Sistema distribuído de dados devem a todo momento garantir Consistência, 
Disponibilidade e Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
 
(CORRETO) III. No contexto de processamento distribuído, as operações map/reduce 
consistem em mapear processamento de dados entre vários processos e depois reunir os mesmo. 
- Uma das estratégias mais importantes em processamento distribuído implementado em 
frameworks como Hadoop. 
 
 
B III apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. No que diz repeito a armazenamento em um sistema distribuído de dados 
temos o teorema CAP, sigla para Consistência, Disponibilidade(Availability do inglês) e 
Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
(FALSO) II. Sistema distribuído de dados devem a todo momento garantir Consistência, 
Disponibilidade e Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
 
(CORRETO) III. No contexto de processamento distribuído, as operações map/reduce 
consistem em mapear processamento de dados entre vários processos e depois reunir os mesmo. 
- Uma das estratégias mais importantes em processamento distribuído implementado em 
frameworks como Hadoop. 
 
C I e II apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. No que diz repeito a armazenamento em um sistema distribuído de dados 
temos o teorema CAP, sigla para Consistência, Disponibilidade(Availability do inglês) e 
Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
(FALSO) II. Sistema distribuído de dados devem a todo momento garantir Consistência, 
Disponibilidade e Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
 
(CORRETO) III. No contexto de processamento distribuído, as operações map/reduce 
consistem em mapear processamento de dados entre vários processos e depois reunir os mesmo. 
- Uma das estratégias mais importantes em processamento distribuído implementado em 
frameworks como Hadoop. 
 
D I e III apeanas. 
Você assinalou essa alternativa (D) 
Você acertou! 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. No que diz repeito a armazenamento em um sistema distribuído de dados 
temos o teorema CAP, sigla para Consistência, Disponibilidade(Availabilitydo inglês) e 
Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
(FALSO) II. Sistema distribuído de dados devem a todo momento garantir Consistência, 
Disponibilidade e Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
 
(CORRETO) III. No contexto de processamento distribuído, as operações map/reduce 
consistem em mapear processamento de dados entre vários processos e depois reunir os mesmo. 
- Uma das estratégias mais importantes em processamento distribuído implementado em 
frameworks como Hadoop. 
 
E II e III apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. No que diz repeito a armazenamento em um sistema distribuído de dados 
temos o teorema CAP, sigla para Consistência, Disponibilidade(Availability do inglês) e 
Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
(FALSO) II. Sistema distribuído de dados devem a todo momento garantir Consistência, 
Disponibilidade e Partição. 
- O teorema CAP cita a impossibilidade de garantir as três propriedades ao mesmo tempo. 
 
 
(CORRETO) III. No contexto de processamento distribuído, as operações map/reduce 
consistem em mapear processamento de dados entre vários processos e depois reunir os mesmo. 
- Uma das estratégias mais importantes em processamento distribuído implementado em 
frameworks como Hadoop. 
 
Questão 5/10 - Computação Paralela 
Considerando programação paralela. Existem diversos padrões de comunicação entre as threads. Que se 
resume em como será a relação entre memória e as atividades desenvolvida pelas threads. 
 
Sobre o tópico em questão considere as afirmações a seguir: 
 
I. O padrão Transpose é bastante utilizado para adaptar estruturas de dados. 
II. O padrão Reduce consiste em transformar um grande conjunto de dados iterativamente em conjuntos 
menores ao ponto de chegar em uma unidade. 
III. No padrão Scan cada thread lê um único dado e realiza processamento sobre o mesmo e por fim 
escreve em uma única posição da memória. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A I apenas. 
Considerando o conteúdo da aula 6. 
(CORRETO) I. O padrão Transpose é bastante utilizado para adaptar estruturas de dados. 
- O padrão transpose geralmente representa uma modificação na ordem dos dados na 
memória, permitindo acessos mais rápidos e melhor uso de memória cache ao colocar em 
ordem sequencial dados que também serão acessados em sequência por um algoritmo. 
 
(CORRETO) II. O padrão Reduce consiste em transformar um grande conjunto de dados 
iterativamente em conjuntos menores ao ponto de chegar em uma unidade. 
- A soma de todos os elementos de um vetor exemplifica um caso de reduce, todos os 
elementos são reduzidos para um único número, o somatório. 
 
(FALSO) III. No padrão Scan cada thread lê um único dado e realiza processamento sobre o 
mesmo e por fim escreve em uma única posição da memória. 
- Este padrão descrito é o Map. No padrão Scan combinam-se todos os elementos como 
em algoritmos de ordenação. 
 
B II apenas. 
Considerando o conteúdo da aula 6. 
(CORRETO) I. O padrão Transpose é bastante utilizado para adaptar estruturas de dados. 
- O padrão transpose geralmente representa uma modificação na ordem dos dados na 
memória, permitindo acessos mais rápidos e melhor uso de memória cache ao colocar em 
ordem sequencial dados que também serão acessados em sequência por um algoritmo. 
 
(CORRETO) II. O padrão Reduce consiste em transformar um grande conjunto de dados 
iterativamente em conjuntos menores ao ponto de chegar em uma unidade. 
- A soma de todos os elementos de um vetor exemplifica um caso de reduce, todos os 
elementos são reduzidos para um único número, o somatório. 
 
(FALSO) III. No padrão Scan cada thread lê um único dado e realiza processamento sobre o 
mesmo e por fim escreve em uma única posição da memória. 
- Este padrão descrito é o Map. No padrão Scan combinam-se todos os elementos como 
em algoritmos de ordenação. 
 
C I e II apenas. 
Você assinalou essa alternativa (C) 
Você acertou! 
Considerando o conteúdo da aula 6. 
(CORRETO) I. O padrão Transpose é bastante utilizado para adaptar estruturas de dados. 
- O padrão transpose geralmente representa uma modificação na ordem dos dados na 
memória, permitindo acessos mais rápidos e melhor uso de memória cache ao colocar em 
ordem sequencial dados que também serão acessados em sequência por um algoritmo. 
 
(CORRETO) II. O padrão Reduce consiste em transformar um grande conjunto de dados 
iterativamente em conjuntos menores ao ponto de chegar em uma unidade. 
- A soma de todos os elementos de um vetor exemplifica um caso de reduce, todos os 
elementos são reduzidos para um único número, o somatório. 
 
(FALSO) III. No padrão Scan cada thread lê um único dado e realiza processamento sobre o 
mesmo e por fim escreve em uma única posição da memória. 
- Este padrão descrito é o Map. No padrão Scan combinam-se todos os elementos como 
em algoritmos de ordenação. 
 
D I e III apenas. 
Considerando o conteúdo da aula 6. 
(CORRETO) I. O padrão Transpose é bastante utilizado para adaptar estruturas de dados. 
- O padrão transpose geralmente representa uma modificação na ordem dos dados na 
memória, permitindo acessos mais rápidos e melhor uso de memória cache ao colocar em 
ordem sequencial dados que também serão acessados em sequência por um algoritmo. 
 
(CORRETO) II. O padrão Reduce consiste em transformar um grande conjunto de dados 
iterativamente em conjuntos menores ao ponto de chegar em uma unidade. 
- A soma de todos os elementos de um vetor exemplifica um caso de reduce, todos os 
elementos são reduzidos para um único número, o somatório. 
 
(FALSO) III. No padrão Scan cada thread lê um único dado e realiza processamento sobre o 
mesmo e por fim escreve em uma única posição da memória. 
- Este padrão descrito é o Map. No padrão Scan combinam-se todos os elementos como 
em algoritmos de ordenação. 
 
E I, II e III. 
Considerando o conteúdo da aula 6. 
(CORRETO) I. O padrão Transpose é bastante utilizado para adaptar estruturas de dados. 
- O padrão transpose geralmente representa uma modificação na ordem dos dados na 
memória, permitindo acessos mais rápidos e melhor uso de memória cache ao colocar em 
ordem sequencial dados que também serão acessados em sequência por um algoritmo. 
 
(CORRETO) II. O padrão Reduce consiste em transformar um grande conjunto de dados 
iterativamente em conjuntos menores ao ponto de chegar em uma unidade. 
- A soma de todos os elementos de um vetor exemplifica um caso de reduce, todos os 
elementos são reduzidos para um único número, o somatório. 
 
(FALSO) III. No padrão Scan cada thread lê um único dado e realiza processamento sobre o 
mesmo e por fim escreve em uma única posição da memória. 
- Este padrão descrito é o Map. No padrão Scan combinam-se todos os elementos como 
em algoritmos de ordenação. 
 
Questão 6/10 - Computação Paralela 
A GPU originalmente desenvolvida para processamento gráfico pode ser utilizada para propósito geral 
com uso de APIs como a CUDA que oferecem uma forma prática de programadores utilizarem GPU para 
computação de alto desempenho. 
 
Sobre o tópico em questão considere as afirmações a seguir: 
 
I. cudaMalloc e cudaMemcpy, são equivalentes do malloc e memcpy para memória da GPU. 
II. cudaFree é responsável por liberar memória alocada em GPU 
III. O código metodo1<<<1, 64>>>(d_saida, d_entrada) é a chamada de um kernel chamado metodo1 com 
1 bloco de 64 threads. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A III apenas. 
Considerando o conteúdo da aula 6. 
 
(CORRETO) I. cudaMalloc e cudaMemcpy, são equivalentes do malloc e memcpy para 
memória da GPU. 
- cudaMalloc e cudaMemcpy são as principais funções para transmitir dados entre a 
memória principal e da GPU. 
 
(CORRETO) II. cudaFree é responsável por liberar memória alocada em GPU 
- Assim como a memóriaalocada na memória principal é importante liberar a memória 
alocada em GPU. 
 
(CORRETO) III. O código metodo1<<<1, 64>>>(d_dados) é a chamada de 
um kernel chamado metodo1 com 1 bloco de 64 threads. 
- O comando executa um kernel através de um bloco de 1 de 64 threads com um parâmetro 
d_dados. 
 
 
 
B I e II apenas. 
Considerando o conteúdo da aula 6. 
 
(CORRETO) I. cudaMalloc e cudaMemcpy, são equivalentes do malloc e memcpy para 
memória da GPU. 
- cudaMalloc e cudaMemcpy são as principais funções para transmitir dados entre a 
memória principal e da GPU. 
 
(CORRETO) II. cudaFree é responsável por liberar memória alocada em GPU 
- Assim como a memória alocada na memória principal é importante liberar a memória 
alocada em GPU. 
 
(CORRETO) III. O código metodo1<<<1, 64>>>(d_dados) é a chamada de 
um kernel chamado metodo1 com 1 bloco de 64 threads. 
- O comando executa um kernel através de um bloco de 1 de 64 threads com um parâmetro 
d_dados. 
 
C I e III apenas. 
Considerando o conteúdo da aula 6. 
 
(CORRETO) I. cudaMalloc e cudaMemcpy, são equivalentes do malloc e memcpy para 
memória da GPU. 
- cudaMalloc e cudaMemcpy são as principais funções para transmitir dados entre a 
memória principal e da GPU. 
 
(CORRETO) II. cudaFree é responsável por liberar memória alocada em GPU 
- Assim como a memória alocada na memória principal é importante liberar a memória 
alocada em GPU. 
 
(CORRETO) III. O código metodo1<<<1, 64>>>(d_dados) é a chamada de 
um kernel chamado metodo1 com 1 bloco de 64 threads. 
- O comando executa um kernel através de um bloco de 1 de 64 threads com um parâmetro 
d_dados. 
 
D II e III apenas. 
Considerando o conteúdo da aula 6. 
 
(CORRETO) I. cudaMalloc e cudaMemcpy, são equivalentes do malloc e memcpy para 
memória da GPU. 
- cudaMalloc e cudaMemcpy são as principais funções para transmitir dados entre a 
memória principal e da GPU. 
 
(CORRETO) II. cudaFree é responsável por liberar memória alocada em GPU 
- Assim como a memória alocada na memória principal é importante liberar a memória 
alocada em GPU. 
 
(CORRETO) III. O código metodo1<<<1, 64>>>(d_dados) é a chamada de 
um kernel chamado metodo1 com 1 bloco de 64 threads. 
- O comando executa um kernel através de um bloco de 1 de 64 threads com um parâmetro 
d_dados. 
 
E I, II e III. 
Você assinalou essa alternativa (E) 
Você acertou! 
Considerando o conteúdo da aula 6. 
 
(CORRETO) I. cudaMalloc e cudaMemcpy, são equivalentes do malloc e memcpy para 
memória da GPU. 
- cudaMalloc e cudaMemcpy são as principais funções para transmitir dados entre a 
memória principal e da GPU. 
 
(CORRETO) II. cudaFree é responsável por liberar memória alocada em GPU 
- Assim como a memória alocada na memória principal é importante liberar a memória 
alocada em GPU. 
 
(CORRETO) III. O código metodo1<<<1, 64>>>(d_dados) é a chamada de 
um kernel chamado metodo1 com 1 bloco de 64 threads. 
- O comando executa um kernel através de um bloco de 1 de 64 threads com um parâmetro 
d_dados. 
 
Questão 7/10 - Computação Paralela 
Dentro do contexto de computação distribuída é comum termos uma arquitetura descentralizada. Isso 
significa não ter um “líder”, isso introduz uma série de problemas para que todas as máquinas cheguem 
em um consenso de que atividade realizar ou que decisão tomar diante de alguma situação em particular. 
Sobre o tópico em questão considere as afirmações a seguir: 
 
I. Sincronismo dos relógios de várias máquinas pode ser entendido como um problema de consenso 
II. Se tivermos uma máquina central que coordenada as atividades em um sistema distribuído a falha 
desta máquina líder pode prejudicar a disponibilidade do sistema. 
III. Validação de transações em criptomoedas é uma aplicação de sistema distribuído sem líder. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A II apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. Sincronismo dos relógios de várias máquinas pode ser entendido como um 
problema de consenso 
- A sincronização do relógio, algumas máquinas podem ter a informação errada por alguma 
falha ou por atrasos e latência elevada na rede podem transmitir uma informação 
desatualizada. A informação que for consenso na rede entre a maioria das máquinas 
idealmente deve prevalecer. 
 
(CORRETO) II. Se tivermos uma máquina central que coordenada todas as atividades em um 
sistema distribuído a falha desta máquina líder pode prejudicar a disponibilidade do sistema. 
- Arquiteturas descentralizada são ideias para diversos tipos de aplicações e não ter um 
líder fixo se apresenta como uma vantagem. 
 
(CORRETO) III. Validação de transações em criptomoedas é uma aplicação de sistema 
distribuído sem líder. 
- Blockchain, as carteiras virtuais das criptomoedas são validadas por meio de um sistema 
de consenso também. Quanto mais máquinas identificarem uma transação como 
verdadeira aumenta a confiança na legitimidade da identidade dos usuários e da transação. 
Os algoritmos devem ser especialmente robustos neste cenário para garantir usuários mal 
intencionados não realizem fraudes se passando por outros por exemplo. 
 
 
B I e II apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. Sincronismo dos relógios de várias máquinas pode ser entendido como um 
problema de consenso 
- A sincronização do relógio, algumas máquinas podem ter a informação errada por alguma 
falha ou por atrasos e latência elevada na rede podem transmitir uma informação 
desatualizada. A informação que for consenso na rede entre a maioria das máquinas 
idealmente deve prevalecer. 
 
(CORRETO) II. Se tivermos uma máquina central que coordenada todas as atividades em um 
sistema distribuído a falha desta máquina líder pode prejudicar a disponibilidade do sistema. 
- Arquiteturas descentralizada são ideias para diversos tipos de aplicações e não ter um 
líder fixo se apresenta como uma vantagem. 
 
(CORRETO) III. Validação de transações em criptomoedas é uma aplicação de sistema 
distribuído sem líder. 
- Blockchain, as carteiras virtuais das criptomoedas são validadas por meio de um sistema 
de consenso também. Quanto mais máquinas identificarem uma transação como 
verdadeira aumenta a confiança na legitimidade da identidade dos usuários e da transação. 
Os algoritmos devem ser especialmente robustos neste cenário para garantir usuários mal 
intencionados não realizem fraudes se passando por outros por exemplo. 
 
C I e III apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. Sincronismo dos relógios de várias máquinas pode ser entendido como um 
problema de consenso 
- A sincronização do relógio, algumas máquinas podem ter a informação errada por alguma 
falha ou por atrasos e latência elevada na rede podem transmitir uma informação 
desatualizada. A informação que for consenso na rede entre a maioria das máquinas 
idealmente deve prevalecer. 
 
(CORRETO) II. Se tivermos uma máquina central que coordenada todas as atividades em um 
sistema distribuído a falha desta máquina líder pode prejudicar a disponibilidade do sistema. 
- Arquiteturas descentralizada são ideias para diversos tipos de aplicações e não ter um 
líder fixo se apresenta como uma vantagem. 
 
(CORRETO) III. Validação de transações em criptomoedas é uma aplicação de sistema 
distribuído sem líder. 
- Blockchain, as carteiras virtuais das criptomoedas são validadas por meio de um sistema 
de consenso também. Quanto mais máquinas identificarem uma transação como 
verdadeira aumenta a confiança na legitimidade da identidade dos usuários e da transação. 
Os algoritmos devem ser especialmente robustos neste cenário para garantir usuários mal 
intencionados não realizem fraudes se passando por outros por exemplo. 
 
D II e III apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. Sincronismo dos relógios de várias máquinas pode ser entendido como um 
problema de consenso 
- A sincronização do relógio, algumas máquinas podem ter a informação errada por alguma 
falha ou por atrasose latência elevada na rede podem transmitir uma informação 
desatualizada. A informação que for consenso na rede entre a maioria das máquinas 
idealmente deve prevalecer. 
 
(CORRETO) II. Se tivermos uma máquina central que coordenada todas as atividades em um 
sistema distribuído a falha desta máquina líder pode prejudicar a disponibilidade do sistema. 
- Arquiteturas descentralizada são ideias para diversos tipos de aplicações e não ter um 
líder fixo se apresenta como uma vantagem. 
 
(CORRETO) III. Validação de transações em criptomoedas é uma aplicação de sistema 
distribuído sem líder. 
- Blockchain, as carteiras virtuais das criptomoedas são validadas por meio de um sistema 
de consenso também. Quanto mais máquinas identificarem uma transação como 
verdadeira aumenta a confiança na legitimidade da identidade dos usuários e da transação. 
Os algoritmos devem ser especialmente robustos neste cenário para garantir usuários mal 
intencionados não realizem fraudes se passando por outros por exemplo. 
 
E I, II e III. 
Você assinalou essa alternativa (E) 
Você acertou! 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. Sincronismo dos relógios de várias máquinas pode ser entendido como um 
problema de consenso 
- A sincronização do relógio, algumas máquinas podem ter a informação errada por alguma 
falha ou por atrasos e latência elevada na rede podem transmitir uma informação 
desatualizada. A informação que for consenso na rede entre a maioria das máquinas 
idealmente deve prevalecer. 
 
(CORRETO) II. Se tivermos uma máquina central que coordenada todas as atividades em um 
sistema distribuído a falha desta máquina líder pode prejudicar a disponibilidade do sistema. 
- Arquiteturas descentralizada são ideias para diversos tipos de aplicações e não ter um 
líder fixo se apresenta como uma vantagem. 
 
(CORRETO) III. Validação de transações em criptomoedas é uma aplicação de sistema 
distribuído sem líder. 
- Blockchain, as carteiras virtuais das criptomoedas são validadas por meio de um sistema 
de consenso também. Quanto mais máquinas identificarem uma transação como 
verdadeira aumenta a confiança na legitimidade da identidade dos usuários e da transação. 
Os algoritmos devem ser especialmente robustos neste cenário para garantir usuários mal 
intencionados não realizem fraudes se passando por outros por exemplo. 
 
Questão 8/10 - Computação Paralela 
int lista[1000]; 
#pragma omp parallel num_threads(4) 
{ 
 int id = omp_get_thread_num(); 
 metodo(lista,id); 
} 
 
 
Considere o código acima analise as afirmações a seguir: 
I. O array lista é global para as threads geradas. 
II. id é uma variável local para todas as threads 
III. Apenas com o uso da diretiva private é possível ter variáveis locais para cada thread. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A I apenas. 
Considerando o conteúdo da aula 4. 
 
(CORRETO) I. O array lista é global para as threads geradas. 
- As variáveis declaradas antes da região paralela é compartilhada com todas as threads. 
 
(CORRETO) II. id é uma variável local para todas as threads 
- As variáveis declaradas dentro da região paralela são locais para e individuais para 
cada thread. 
 
(FALSO) III. Apenas com o uso da diretiva private é possível ter variáveis locais para 
cada thread. 
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis 
declaradas dentro da região paralela também são locais, portanto não é a única forma de 
ter variáveis locais. 
 
 
B II apenas. 
Considerando o conteúdo da aula 4. 
 
(CORRETO) I. O array lista é global para as threads geradas. 
- As variáveis declaradas antes da região paralela é compartilhada com todas as threads. 
 
(CORRETO) II. id é uma variável local para todas as threads 
- As variáveis declaradas dentro da região paralela são locais para e individuais para 
cada thread. 
 
(FALSO) III. Apenas com o uso da diretiva private é possível ter variáveis locais para 
cada thread. 
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis 
declaradas dentro da região paralela também são locais, portanto não é a única forma de 
ter variáveis locais. 
 
C III apenas. 
Considerando o conteúdo da aula 4. 
 
(CORRETO) I. O array lista é global para as threads geradas. 
- As variáveis declaradas antes da região paralela é compartilhada com todas as threads. 
 
(CORRETO) II. id é uma variável local para todas as threads 
- As variáveis declaradas dentro da região paralela são locais para e individuais para 
cada thread. 
 
(FALSO) III. Apenas com o uso da diretiva private é possível ter variáveis locais para 
cada thread. 
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis 
declaradas dentro da região paralela também são locais, portanto não é a única forma de 
ter variáveis locais. 
 
D I e II apenas. 
Você assinalou essa alternativa (D) 
Você acertou! 
Considerando o conteúdo da aula 4. 
 
(CORRETO) I. O array lista é global para as threads geradas. 
- As variáveis declaradas antes da região paralela é compartilhada com todas as threads. 
 
(CORRETO) II. id é uma variável local para todas as threads 
- As variáveis declaradas dentro da região paralela são locais para e individuais para 
cada thread. 
 
(FALSO) III. Apenas com o uso da diretiva private é possível ter variáveis locais para 
cada thread. 
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis 
declaradas dentro da região paralela também são locais, portanto não é a única forma de 
ter variáveis locais. 
 
E I e III apenas. 
Considerando o conteúdo da aula 4. 
 
(CORRETO) I. O array lista é global para as threads geradas. 
- As variáveis declaradas antes da região paralela é compartilhada com todas as threads. 
 
(CORRETO) II. id é uma variável local para todas as threads 
- As variáveis declaradas dentro da região paralela são locais para e individuais para 
cada thread. 
 
(FALSO) III. Apenas com o uso da diretiva private é possível ter variáveis locais para 
cada thread. 
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis 
declaradas dentro da região paralela também são locais, portanto não é a única forma de 
ter variáveis locais. 
 
Questão 9/10 - Computação Paralela 
A troca de mensagens entre diferentes processos é um dos conceitos mais importantes dentro do Open 
MPI, ela é feita ponto-a-ponto ou de forma coletiva. Ela é importante especialmente para sincronismo e 
troca de dados. 
 
Sobre o tópico em questão considere as afirmações a seguir: 
 
I. MPI_Send e MPI_Recv são dois métodos responsáveis por enviar e receber dados respectivamente 
dentro do Open MPI 
II. MPI_COMM_WORLD é o comunicador padrão MPI que comunica todos os processos. 
III. MPI_Bcast é o comando responsável por solicitar uma mensagem. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A I apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. MPI_Send e MPI_Recv são dois métodos responsáveis por enviar e receber 
dados respectivamente dentro do Open MPI 
- Enviam e recebem mensagens de forma síncrona. Diferente do MPI_Isend e MPI_Irecv 
que realizam a troca de mensagens assincronamente. 
 
(CORRETO) II. MPI_COMM_WORLD é o comunicador padrão MPI que comunica todos os 
processos. 
- MPI_COMM_WORLD é uma variável que armazena o comunicador "global" no entanto é 
possível criar outros comunicadores para grupos menores de processos. 
 
(FALSO) III. MPI_Bcast é o comando responsável por solicitar uma mensagem. 
- O comando MPI_Bcast é responsável por enviar uma mensagem para todos os processos 
de um grupo. 
 
 
B II apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. MPI_Send e MPI_Recv são dois métodos responsáveis por enviar e receber 
dados respectivamente dentro do Open MPI 
- Enviam e recebem mensagens de forma síncrona. Diferente do MPI_Isend e MPI_Irecv 
que realizam a troca de mensagens assincronamente. 
 
(CORRETO)II. MPI_COMM_WORLD é o comunicador padrão MPI que comunica todos os 
processos. 
- MPI_COMM_WORLD é uma variável que armazena o comunicador "global" no entanto é 
possível criar outros comunicadores para grupos menores de processos. 
 
(FALSO) III. MPI_Bcast é o comando responsável por solicitar uma mensagem. 
- O comando MPI_Bcast é responsável por enviar uma mensagem para todos os processos 
de um grupo. 
 
C III apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. MPI_Send e MPI_Recv são dois métodos responsáveis por enviar e receber 
dados respectivamente dentro do Open MPI 
- Enviam e recebem mensagens de forma síncrona. Diferente do MPI_Isend e MPI_Irecv 
que realizam a troca de mensagens assincronamente. 
 
(CORRETO) II. MPI_COMM_WORLD é o comunicador padrão MPI que comunica todos os 
processos. 
- MPI_COMM_WORLD é uma variável que armazena o comunicador "global" no entanto é 
possível criar outros comunicadores para grupos menores de processos. 
 
(FALSO) III. MPI_Bcast é o comando responsável por solicitar uma mensagem. 
- O comando MPI_Bcast é responsável por enviar uma mensagem para todos os processos 
de um grupo. 
 
D I e II apenas. 
Você assinalou essa alternativa (D) 
Você acertou! 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. MPI_Send e MPI_Recv são dois métodos responsáveis por enviar e receber 
dados respectivamente dentro do Open MPI 
- Enviam e recebem mensagens de forma síncrona. Diferente do MPI_Isend e MPI_Irecv 
que realizam a troca de mensagens assincronamente. 
 
(CORRETO) II. MPI_COMM_WORLD é o comunicador padrão MPI que comunica todos os 
processos. 
- MPI_COMM_WORLD é uma variável que armazena o comunicador "global" no entanto é 
possível criar outros comunicadores para grupos menores de processos. 
 
(FALSO) III. MPI_Bcast é o comando responsável por solicitar uma mensagem. 
- O comando MPI_Bcast é responsável por enviar uma mensagem para todos os processos 
de um grupo. 
 
E II e III apenas. 
Considerando o conteúdo da aula 5. 
 
(CORRETO) I. MPI_Send e MPI_Recv são dois métodos responsáveis por enviar e receber 
dados respectivamente dentro do Open MPI 
- Enviam e recebem mensagens de forma síncrona. Diferente do MPI_Isend e MPI_Irecv 
que realizam a troca de mensagens assincronamente. 
 
(CORRETO) II. MPI_COMM_WORLD é o comunicador padrão MPI que comunica todos os 
processos. 
- MPI_COMM_WORLD é uma variável que armazena o comunicador "global" no entanto é 
possível criar outros comunicadores para grupos menores de processos. 
 
(FALSO) III. MPI_Bcast é o comando responsável por solicitar uma mensagem. 
- O comando MPI_Bcast é responsável por enviar uma mensagem para todos os processos 
de um grupo. 
 
Questão 10/10 - Computação Paralela 
OpenMP, tratando-se de programação multiprocessada, é uma das principais APIs utilizadas hoje 
especialmente pela sua simplicidade e abstração em alto nível de algumas funcionalidades que 
demandam muita codificação adicional em outras APIs. 
 
Sobre este assunto analise as afirmações a seguir: 
 
I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran sem a necessidade de 
instalações adicionais. 
II. O código #pragma omp parallel é uma diretiva de compilação que indica uma região que deve ser 
paralelizada em várias threads se seguirá. 
III. É necessário incluir a biblioteca omp.h aos códigos. OpenMP. 
É correto apenas o que se afirma em 
Nota: 10.0 
 
A II apenas. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran 
sem a necessidade de instalações adicionais. 
- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca 
openMP na compilação do código. 
 
(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica 
uma região que deve ser paralelizada em várias threads se seguirá. 
- O código associado a diretiva será paralelizado em diversas threads. 
 
(CORRETO) III. É necessário incluir a biblioteca omp.h aos códigos. OpenMP. 
- O escopo das funções do openMP estão descritas dentro do arquivo omp.h por isso a 
necessidade de incluir o comando ao código. 
 
B III apenas. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran 
sem a necessidade de instalações adicionais. 
- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca 
openMP na compilação do código. 
 
(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica 
uma região que deve ser paralelizada em várias threads se seguirá. 
- O código associado a diretiva será paralelizado em diversas threads. 
 
(CORRETO) III. É necessário incluir a biblioteca omp.h aos códigos. OpenMP. 
- O escopo das funções do openMP estão descritas dentro do arquivo omp.h por isso a 
necessidade de incluir o comando ao código. 
 
C I e II apenas. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran 
sem a necessidade de instalações adicionais. 
- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca 
openMP na compilação do código. 
 
(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica 
uma região que deve ser paralelizada em várias threads se seguirá. 
- O código associado a diretiva será paralelizado em diversas threads. 
 
(CORRETO) III. É necessário incluir a biblioteca omp.h aos códigos. OpenMP. 
- O escopo das funções do openMP estão descritas dentro do arquivo omp.h por isso a 
necessidade de incluir o comando ao código. 
 
D II e III apenas. 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran 
sem a necessidade de instalações adicionais. 
- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca 
openMP na compilação do código. 
 
(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica 
uma região que deve ser paralelizada em várias threads se seguirá. 
- O código associado a diretiva será paralelizado em diversas threads. 
 
(CORRETO) III. É necessário incluir a biblioteca omp.h aos códigos. OpenMP. 
- O escopo das funções do openMP estão descritas dentro do arquivo omp.h por isso a 
necessidade de incluir o comando ao código. 
 
E I, II e III. 
Você assinalou essa alternativa (E) 
Você acertou! 
Considerando o conteúdo da aula 4. 
 
 
(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran 
sem a necessidade de instalações adicionais. 
- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca 
openMP na compilação do código. 
 
(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica 
uma região que deve ser paralelizada em várias threads se seguirá. 
- O código associado a diretiva será paralelizado em diversas threads. 
 
(CORRETO) III. É necessário incluir a biblioteca omp.h aos códigos. OpenMP. 
- O escopo das funções do openMP estão descritas dentro do arquivo omp.h por isso a 
necessidade de incluir o comando ao código.

Outros materiais