Considere a classificação de Flynn para arquiteturas de computadores e verifique a que se encaixa no contexto de múltiplas instruções e múltiplos dados (MIMD).
A memória compartilhada, na computação escalável, representa um elemento fundamental para os processos de paralelismo, concorrência e escalabilidade das máquinas. Mas, como qualquer procedimento tecnológico, apresenta vantagens e desvantagens para o modelo. Correlacione, adequadamente, os elementos a seguir, que se demonstram como vantagem ou desvantagem para a memória compartilhada. 1. Vantagem 2. Desvantagem I. Programação. II. Escalabilidade. III. Compartilhamento de dados entre as tarefas. IV. Tráfego entre a memória e a CPU. V. Sincronização dos acessos. Assinale a alternativa que correlaciona, adequadamente, os dois grupos de informação.
Os modelos de programação paralela não são específicos para um determinado tipo de arquitetura e qualquer modelo pode, teoricamente, ser implementado em qualquer hardware . Com relação às características do modelo de programação de memória distribuída, avalie as afirmações a seguir: I. Tarefas utilizam endereço comum para leitura e gravação simultâneas. II. Há um conjunto de tarefas que utilizam a memória local durante a computação. III. Não existe a necessidade de comunicação explícita de dados entre as tarefas. IV. Várias tarefas podem residir na mesma máquina. Está correto o que se afirma em:
Um processador equipado com paralelismo no nível de threads pode executar processos ______ do código, sendo possível rodar dois processos de um mesmo aplicativo ao mesmo tempo.
Em computação escalável, um elemento muito importante para que os processos de paralelismo, concorrência e escalabilidade ocorram de maneira satisfatória está relacionado à memória dos equipamentos que estão sendo utilizados. Identifique se são (V) verdadeiras ou (F) falsas as afirmativas a seguir relacionadas à memória. I. ( ) Múltiplos processadores compartilham diferentes recursos de memória em um espaço de endereçamento global. II. ( ) Modificações efetuadas em uma região de memória por um processador são visíveis a todos os outros processadores; III. ( ) As memórias se dividem em duas classes denominadas: UMA e NUMA. Assinale a alternativa que apresenta a sequência correta.
Uma das memórias compartilhadas na computação escalável denomina-se _______________________________ (lacuna 1), sendo muito comum em processadores __________________ (lacuna 2) e possuindo tempo de acesso ____________________ (lacuna 3) para toda a memória. Assinale a alternativa que possui a sequência correta das lacunas.
Na computação, podemos construir aplicações e executá-las explorando muitos recursos computacionais existentes nos seus processadores, independentemente do seu porte e da sua finalidade, sendo que, para os desenvolvedores e os usuários finais dos ambientes computacionais, essa percepção da escalabilidade dos sistemas fica oculta. Em termos computacionais, a escalabilidade pode ser definida como:
A computação paralela faz uso de diversos conceitos estudados em Sistemas Operacionais e em Sistemas Distribuídos. Um conceito fundamental que envolve a relação entre o tempo de um programa executado sequencialmente e outro executado de forma paralela, sendo esse um dos indicadores para quantificar o desempenho de um programa paralelo é conhecido como:
O OpenMP é um modelo de programação de memória compartilhada, que nasceu da cooperação entre um grupo de grandes fabricantes de software e hardware , com o intuito de promover uma padronização nesse campo de aplicação, não sendo, necessariamente, uma implementação, mas sim uma especificação que todos os seus usuários podem utilizá-la. Com relação ao OpenMP e aos seus objetivos, observe as afirmativas a seguir. I. Ser o padrão de programação para arquiteturas de memória compartilhada. II. Estabelecer um conjunto simples e ilimitado de diretivas de programação. III. Possibilitar a paralelização incremental de programas sequenciais. IV. Permitir implementações eficientes em problemas de granularidade. Está correto o que se afirma em:
No ambiente de programação CUDA , a função utilizada para acessar dados da memória do dispositivo, bem como a função para alocar memória são respectivamente:
Explorando o OpenMPI como um dos frameworks da computação paralela, vários conceitos estão relacionados a esse processo, dos quais podemos citar: thread safety , comunicação coletiva, perfis, processo, rank , grupos, comunicador, application buffer , system buffer , count , type , tag e status . O processo tem uma identificação única (um número inteiro positivo) atribuída pelo sistema quando o processo é inicializado. Assinale a alternativa que contém, corretamente, o nome desse conceito demonstrado pelas características anteriores.
Na computação escalável, assim como em muitas outras áreas, a avaliação de desempenho é necessária para se verificar se o comportamento computacional está de acordo com as necessidades básicas dos seus usuários. A avaliação do desempenho pode ser definida como a medida da capacidade de resposta de um sistema. Assinale a alternativa correta que define como se avaliar o desempenho.
Além dos modelos e da programação de paralelismo explícito e multithread implícito, um terceiro modelo é o ______________________________ (lacuna 1), no qual todos os programas iniciam a sua execução com um processo mestre. O _______________________ (lacuna 2) executa sequencialmente até encontrar um construtor ____________________ (lacuna 3), momento em que cria um team de threads . O código delimitado pelo construtor paralelo é executado em paralelo pelo master thread e pelo team de threads . Assinale a alternativa que possui a sequência correta das lacunas.
Se comparamos o OpenMP com o OpenMPI podemos afirmar que: O OpenMPI é um padrão para troca de mensagens que utiliza memória compartilhada . O OpenMP é um padrão para troca de mensagens que utiliza memória distribuída . O OpenMPI utiliza comunicação coletiva entre processos . O conceito de rank é nativo do OpenMPI .
O aspecto mais difícil de criar um programa de memória compartilhada é traduzir o que se deseja para uma versão multithread . Para o OpenMP, existem três modelos de programação. No ____________________________ (lacuna 1), cabe ao programador anotar as tarefas para execução em paralelo e definir os pontos de sincronização. No ____________________________ (lacuna 2), um processo é visto em conjunto de _____________________ (lacuna 3), que se comunicam por meio da utilização de variáveis compartilhadas. Assinale a alternativa que possui a sequência correta das lacunas.
O CUDA ( Computer Unified Device Architecture ), além de ser uma plataforma de computação paralela é também um modelo de programação. Este modelo envolve ______ que possui duas ou três coordenadas dimensionais. Tais ____ são partes de um ______.
Os modelos que lidam com ambientes computacionais de ______ são os que utilizam o paradigma de ______, os quais são compostos por rotinas de comunicação e sincronização de tarefas. Um exemplo que utiliza tal modelo é o ______ .
Relacionado a um programa OpenMP, pode-se observar algumas características específicas. Além de utilizar as definições da biblioteca omp.h; implementar o programa em libgomp.so; e usar, na sua compilação, a opção -fopenmp, o programa pode utilizar três tipos de variáveis específicas. Identifique se são (V) verdadeiras ou (F) falsas as afirmativas a seguir, que descrevem os três tipos de variáveis utilizadas em um programa OpenMP. I. ( ) private II. ( ) shared III. ( ) lastprivate Assinale a alternativa que apresenta a sequência correta.
Na computação paralela, utilizam-se plataformas de software e hardware de alto desempenho que usam o poder de processamento dos núcleos das GPUs da NVIDIA. Como exemplo prático, pode-se citar a utilização de GPUs com o objetivo de simular o fluxo sanguíneo e identificar placas arteriais ocultas sem fazer uso de técnicas de imageamento invasivas ou cirurgias exploratórias. Assinale a alternativa que justifica, corretamente, o motivo para as GPUs serem tão eficientes.
Nos estudos da computação paralela, atende-se a demandas nos campos matemático, científico e biomédico, além das demandas na computação e na engenharia, devido às características das aplicações nesses campos, que são altamente paralelizáveis. Analise a definição a seguir: Plataforma de software e hardware para computação paralela de alto desempenho que utiliza o poder de processamento dos núcleos das GPUs da NVIDIA. Assinale a alternativa que nomeia, corretamente, o framework da computação paralela para a definição do trecho anterior.
Para que o OpenShift possa ser utilizado, temos que realizar o download do programa, descompactar o arquivo e, posteriormente, entrar no diretório do OpenShift e copiar os binários kubectl e oc para o diretório /usr/local/bin . Após isso, temos que verificar se tudo está corretamente instalado, verificando a versão do OpenShift cluster instalado. Assinale a alternativa correta que descreve o comando para verificar a versão do OpenShift cluster instalado.
O OpenShift é uma ferramenta utilizada para gerenciar containers de softwares , oferecendo segurança, monitoramento e controle. Essa ferramenta está dividida em camadas. A camada de __________ representa o ambiente em que podemos __________ as aplicações em servidores físicos, __________ ou na nuvem (pública/privada). Assinale a alternativa que preenche as lacunas corretamente.
Com a ferramenta Openshift , podemos criar um ambiente integrado baseado em containers , implantar aplicações feitas em diversas linguagens e escalar essas aplicações. Um dos elementos do OpenShift está relacionado à persistência de dados. Define-se como armazenamento persistente como sendo o local onde os dados são salvos e conectados aos containers . Assinale a alternativa correta que define a razão da necessidade da persistência de dados.
No OpenShift , após todos os passos de instalação terem sido concluídos, temos que criar o projeto logando no cluster com o usuário developer . Após isso, o processo de deploy já pode ser iniciado e outras atividades podem ser realizadas, como o próprio deploy , a verificação do status do projeto e do deploy . Avalie os resultados parciais a seguir de duas ações na console do OpenShift : NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE NAME READY STATUS RESTARTS AGE. Assinale a alternativa correta que descreve quais ações foram solicitadas, respectivamente, no console do OpenShift e que geraram os resultados parciais acima.
Uma das características da ferramenta ______ são os controles de gravação que são importantes no momento da gravação dos scripts, ajudando a economizar tempo no projeto, bem como o extrator de expressão regular que auxilia a coleta de dados dos resultados retornados, podendo assim realizar validações durante o teste.
Analise as afirmações a seguir acerca de um plano de teste com a ferramenta JMeter e escolha a alternativa correta. I. Um plano de teste pode ser composto de geradores de amostra, temporizadores e grupos de threads. II. Grupos de threads não podem ser utilizados no plano de teste. III. Com o JMeter o primeiro passo de um plano de teste é adicionar um ouvinte. IV. O JMeter apenas gera dados de testes no formato de tabelas.
Entre as perguntas que precisamos responder ao considerar a avaliação de desempenho de um sistema computacional, devemos considerar: I. O que o sistema precisa. II. O tipo de usuário. III. O objetivo do sistema. IV. A validade do sistema.