Questões de Tecnologia da Informação · INEP (ENEM)

Tecnologia da InformaçãoSistemas distribuídos e alta disponibilidadeINEP (ENEM) 2011

ENADE

Questão de Tecnologia da Informação

15 COMPUTAÇÃO *A13201115* 2011

Um dos problemas clássicos da computação científica é a multiplicação de matrizes. Assuma que foram declaradas e inicializadas três matrizes quadradas de ponto flutuante, a, b e c, cujos índices variam entre 0 e n - 1. O seguinte trecho de código pode ser usado para multiplicar matrizes de forma sequencial: 1. for [i = 0 to n - 1] { 2. for [j = 0 to n - 1] { 3. c[i, j] = 0.0; 4. for [k = 0 to n - 1] 5. c[i, j] = c[i, j] + a[i, k] * b[k, j]; 6. } 7. } O objetivo é paralelizar esse código para que o tempo de execução seja reduzido em uma máquina com múltiplos processadores e memória compartilhada. Suponha que o comando “co” seja usado para definição de comandos concorrentes, da seguinte forma: “co [i = 0 to n - 1] { x; y; z;}” cria n processos concorrentes, cada um executando sequencialmente uma instância dos comandos x, y, z contidos no bloco. Avalie as seguintes afirmações sobre o problema. I. Esse problema é exemplo do que se chama “embaraçosamente paralelo”, porque pode ser decomposto em um conjunto de várias operações menores que podem ser executadas independentemente. II. O programa produziria resultados corretos e em tempo menor do que o sequencial, trocando-se o “for” na linha 1 por um “co”. III. O programa produziria resultados corretos e em tempo menor do que o sequencial, trocando-se o “for” na linha 2 por um “co”. IV. O programa produziria resultados corretos e em tempo menor do que o sequencial, trocando-se ambos “for”, nas linhas 1 e 2, por “co”. É correto o que se afirma em

Sua resposta

Mais questões de Sistemas distribuídos e alta disponibilidade

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.