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.
Para que as diferentes ferramentas possam realizar testes consistentes e seguros nos diversos sistemas computacionais, necessariamente, um plano de teste deve ser preparado. Um plano de teste pode ser definido como um container para execução de testes Define o que testar e como fazê-lo. Assinale a alternativa correta que justifica um plano de testes para uma ferramenta.
Como o objetivo de que os testes em sistemas computacionais diversos sejam realizados de forma ordenada, completa e segura, existem várias ferramentas disponíveis para a realização de testes dos sistemas computacionais diversos, tanto para testes de estresse como para testes de carga. Analise o trecho a seguir: simula um grupo de usuários enviando solicitações para um servidor de destino e retorna estatísticas, que mostram o desempenho e/ou a funcionalidade do servidor/aplicativo de destino por meio de tabelas, gráficos etc. Assinale a alternativa correta que define o nome da ferramenta da definição do trecho acima.
Na caracterização da carga de trabalho imposta a um sistema computacional há diversas possibilidades a serem consideradas. Àquela que utiliza sequência de requisições com time stamp é chamada de:
Algum tipo de teste em aplicações computacionais precisa ser realizado. Há diversos tipos de testes associados a contexto diferentes. Por exemplo, quando se desenvolve uma interface de uma aplicação Web há a necessidade de realizar um teste para saber se a interface está adequada para a entrada de dados pelo usuário. Porém há testes de carga para sistemas que rodam no back-end (servidores) que ajudam a provisionar melhor a infraestrutura computacional. O nome do teste que considera vários sistemas executando no mesmo servidor, sendo utilizado para encontrar situações em que uma aplicação boqueia os dados da outra, chama-se: