Você está na página 1de 10

Questão 1/5 - Computação Paralela

#define TOTAL 2048


int main() {
int A[TOTAL];
#pragma omp parallel for
for (int i = 0; i < TOTAL; ++i) {
A[i] = i*i;
printf("Th[%d] : %02d = %03d\n", omp_get_thread_num(), i, A[i]);
}
return 0;
}

Considere o código acima analise as afirmações a seguir:

I. O comando #pragma omp parallel é uma diretiva de compilação.


II. O número de threads que executará o código do bloco paralelo depende
dos valores das variáveis de ambiente e da disponibilidade do sistema
operacional visto que não foi definido pelo usuário.
III. O comando #pragma omp parallel for simplifica o trabalho do
programador por dispensar a necessidade dividir o índice entre as threads.
É correto apenas o que se afirma em
Nota: 0.0

A III apenas.
Considerando o conteúdo da aula 4.

(CORRETO) I. O comando #pragma omp parallel é uma diretiva de compilação.


- É um tipo de comando que passa instruções ao compilador de como tratar determinada região de có

(CORRETO) II. O número de threads que executará o código do bloco paralelo depende dos va
disponibilidade do sistema operacional visto que não foi definido pelo usuário.
- Como o programador não definiu o número de threads, a quantidade de threads as variáveis de amb

(CORRETO) III. O comando #pragma omp parallel simplifica o trabalho do programador por
as threads.
- Por ser muito comum utilizar for com índices distribuído entre várias threads este tipo de estrutura d

B I e II apenas.
Considerando o conteúdo da aula 4.

(CORRETO) I. O comando #pragma omp parallel é uma diretiva de compilação.


- É um tipo de comando que passa instruções ao compilador de como tratar determinada região de có

(CORRETO) II. O número de threads que executará o código do bloco paralelo depende dos va
disponibilidade do sistema operacional visto que não foi definido pelo usuário.
- Como o programador não definiu o número de threads, a quantidade de threads as variáveis de amb
(CORRETO) III. O comando #pragma omp parallel simplifica o trabalho do programador por
as threads.
- Por ser muito comum utilizar for com índices distribuído entre várias threads este tipo de estrutura d

C I e III apenas.
Considerando o conteúdo da aula 4.

(CORRETO) I. O comando #pragma omp parallel é uma diretiva de compilação.


- É um tipo de comando que passa instruções ao compilador de como tratar determinada região de có

(CORRETO) II. O número de threads que executará o código do bloco paralelo depende dos va
disponibilidade do sistema operacional visto que não foi definido pelo usuário.
- Como o programador não definiu o número de threads, a quantidade de threads as variáveis de amb

(CORRETO) III. O comando #pragma omp parallel simplifica o trabalho do programador por
as threads.
- Por ser muito comum utilizar for com índices distribuído entre várias threads este tipo de estrutura d

D II e III.
Considerando o conteúdo da aula 4.

(CORRETO) I. O comando #pragma omp parallel é uma diretiva de compilação.


- É um tipo de comando que passa instruções ao compilador de como tratar determinada região de có

(CORRETO) II. O número de threads que executará o código do bloco paralelo depende dos va
disponibilidade do sistema operacional visto que não foi definido pelo usuário.
- Como o programador não definiu o número de threads, a quantidade de threads as variáveis de amb

(CORRETO) III. O comando #pragma omp parallel simplifica o trabalho do programador por
as threads.
- Por ser muito comum utilizar for com índices distribuído entre várias threads este tipo de estrutura d

E I, II e III.
Considerando o conteúdo da aula 4.

(CORRETO) I. O comando #pragma omp parallel é uma diretiva de compilação.


- É um tipo de comando que passa instruções ao compilador de como tratar determinada região de có

(CORRETO) II. O número de threads que executará o código do bloco paralelo depende dos va
disponibilidade do sistema operacional visto que não foi definido pelo usuário.
- Como o programador não definiu o número de threads, a quantidade de threads as variáveis de amb

(CORRETO) III. O comando #pragma omp parallel simplifica o trabalho do programador por
as threads.
- Por ser muito comum utilizar for com índices distribuído entre várias threads este tipo de estrutura d
Questão 2/5 - 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: 20.0

A II apenas.
Considerando o conteúdo da aula 4.

(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran s


- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca openMP n

(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica uma r
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

B III apenas.
Considerando o conteúdo da aula 4.

(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran s


- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca openMP n

(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica uma r
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

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 s


- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca openMP n

(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica uma r
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

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 s


- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca openMP n

(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica uma r
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

E I, II e III.
Você acertou!
Considerando o conteúdo da aula 4.

(CORRETO) I. OpenMP já está implementado nos principais compiladores C/C++ e Fortran s


- No entanto é necessário indicar ao compilador a necessidade de fazer o link da biblioteca openMP n

(CORRETO) II. O código #pragma omp parallel é uma diretiva de compilação que indica uma r
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

Questão 3/5 - Computação Paralela


Tratando-se de programação multiprocessada, OpenMP é 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 é focado especificamente para soluções empresariais de larga


escala.
II. OpenMP é voltado para soluções em sistemas de memória distribuída
como clusters.
III. OpenMP sozinho não soluciona questões de sincronismo.
É correto apenas o que se afirma em
Nota: 0.0

A I apenas.
Considerando o conteúdo da aula 4.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

B II apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

C III apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.
(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.
- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

D I e III apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

E I, II e III.
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

Questão 4/5 - 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: 20.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 thre
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis declarada
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 thre
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis declarada
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 thre
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis declarada
portanto não é a única forma de ter variáveis locais.

D I e II apenas.
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 thre
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis declarada
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 thre
- A diretiva private permite indicar variáveis como locais para cada thread porém variáveis declarada
portanto não é a única forma de ter variáveis locais.

Questão 5/5 - Computação Paralela


O problema do produtor e consumidor é importante problema de
sincronismo que ocorre em diversos contextos dentro da computação.

Sobre este assunto analise as afirmações a seguir:


I. Consiste de threads produtoras e consumidoras que respectivamente
produzem e consomem um determinado recurso de um buffer.

II. É possível resolver o problema utilizando somente um mutex.

III. Faz parte do problema evitar que threads sobrecarreguem(overflow) ou


esgotem(underflow) a memória associada.
É correto apenas o que se afirma em
Nota: 0.0

A I apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste de threads produtoras e consumidoras que respectivamente produzem


um buffer.
- Também faz parte do problema respeitar os limites de tamanho do buffer.

(FALSO) II. É possível resolver o problema utilizando somente um mutex.


- A solução tracional para este problema utiliza dois semáforos, um para controlar o esvaziamento do
mesmo.
(CORRETO) III. Faz parte do problema evitar que threads sobrecarreguem(overflow) ou esgo
- As threads produtoras podem sobrecarregar o buffer enquanto as consumidoras podem exaurir o bu

B II apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste de threads produtoras e consumidoras que respectivamente produzem


um buffer.
- Também faz parte do problema respeitar os limites de tamanho do buffer.

(FALSO) II. É possível resolver o problema utilizando somente um mutex.


- A solução tracional para este problema utiliza dois semáforos, um para controlar o esvaziamento do
mesmo.

(CORRETO) III. Faz parte do problema evitar que threads sobrecarreguem(overflow) ou esgot
- As threads produtoras podem sobrecarregar o buffer enquanto as consumidoras podem exaurir o bu

C I e II apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste de threads produtoras e consumidoras que respectivamente produzem


um buffer.
- Também faz parte do problema respeitar os limites de tamanho do buffer.

(FALSO) II. É possível resolver o problema utilizando somente um mutex.


- A solução tracional para este problema utiliza dois semáforos, um para controlar o esvaziamento do
mesmo.

(CORRETO) III. Faz parte do problema evitar que threads sobrecarreguem(overflow) ou esgot
- As threads produtoras podem sobrecarregar o buffer enquanto as consumidoras podem exaurir o bu

D I e III apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste de threads produtoras e consumidoras que respectivamente produzem


um buffer.
- Também faz parte do problema respeitar os limites de tamanho do buffer.

(FALSO) II. É possível resolver o problema utilizando somente um mutex.


- A solução tracional para este problema utiliza dois semáforos, um para controlar o esvaziamento do
mesmo.

(CORRETO) III. Faz parte do problema evitar que threads sobrecarreguem(overflow) ou esgot
- As threads produtoras podem sobrecarregar o buffer enquanto as consumidoras podem exaurir o bu

E I, II e III.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste de threads produtoras e consumidoras que respectivamente produzem


um buffer.
- Também faz parte do problema respeitar os limites de tamanho do buffer.

(FALSO) II. É possível resolver o problema utilizando somente um mutex.


- A solução tracional para este problema utiliza dois semáforos, um para controlar o esvaziamento do
mesmo.

(CORRETO) III. Faz parte do problema evitar que threads sobrecarreguem(overflow) ou esgot
- As threads produtoras podem sobrecarregar o buffer enquanto as consumidoras podem exaurir o bu

Você também pode gostar