Supercomputadores
Resenha: Supercomputadores. Pesquise 861.000+ trabalhos acadêmicosPor: andrell • 14/11/2014 • Resenha • 1.324 Palavras (6 Páginas) • 252 Visualizações
Nessa aula, vamos falar a respeito de análise de desempenho de computadores e de arquitetura de computadores com paralelismo. Além disso, abordaremos o conceito de computadores dedicados e embarcados. Podemos observar um grande número de aplicações que exigem uma vasta quantidade de processamento de dados, como aplicações de computação gráfica, bioinformática, meteorologia, entre outros.
Os supercomputadores foram criados para resolver este gargalo. Os que são sistemas fortemente acoplados possuem um custo elevado. Sendo assim, seu uso pode não ser aplicável pelo custo. Quando são temos tal impedimento, podemos encontrar dificuldades em sua utilização.
Em termos financeiros, computadores desktop se sobressaem, estendendo-se desde sistemas simples até estações de trabalho de alta tecnologia, com alto custo. Por esta razão, consideramos a computação desktop como a mais otimizada em relação custo x desempenho, sendo que tal comparativo é considerado fator determinante para os usuários. Contudo, sabe-se que o desenvolvimento de computadores laptop e seu uso crescente – tanto por pessoas como por empresas – podem mudar esse panorama.
Com o surgimento da internet, a necessidade do uso de servidores aumentou, justamente por fornecer serviços de arquivos mais confiáveis e em maior escala. Sendo assim sua relação custo x benefício se dá pela confiabilidade (sistema sem falha), disponibilidade (serviço confiável e eficiente), escalabilidade (aumento da escala de capacidade de computação) e throghput eficiente (desempenho global do servidor).
Alternativamente, temos o cluster, que é um sistema distribuído de computadores interligados e independentes, cujo objetivo é suprir a necessidade de um grande poder computacional com um conjunto de computadores de forma transparente ao usuário. Um cluster de alta disponibilidade não é uma máquina multiprocessadora, e sim um conjunto de duas ou mais máquinas cuja função é manter ativos um ou mais serviços compartilhados entre elas.
Há dois tipos de aplicação do cluster, que pode ser:
Assimétrico, em que um servidor executa uma ou várias aplicações, enquanto os outros ficam em espera;
Simétrico, no qual todos os hosts estão executando a aplicação.
Nota-se que a tarefa do projetista de computadores é bastante complexa. Eles devem determinar: requisitos funcionais, metas de preço, potência e desempenho, influências importantes, mercado, quantidade de software existente, otimização do projeto de acordo com as métricas adotadas, custo/desempenho, throughput e disponibilidade, consumo de energia, entre outros (HENNESSY & PATTERSON, 2009). Em sistemas distribuídos, chamamos de clustering ou clusterização o processo de conexão de diversas máquinas com o objetivo de obter um aumento de disponibilidade, desempenho ou capacidade total de um sistema.
Falando no processo de clustering, temos o processo denominado de failover, em que uma máquina opera no lugar de outra quando esta outra falha de alguma forma. Já failback é considerado o processo inverso, ou seja, a volta deste serviço para sua máquina original.
Já o processamento paralelo é uma forma eficiente de processamento de informação que explora eventos concorrentes no processo de computação. A grosso modo, o processamento paralelo pode ser visto como um programa executado por diversos processadores ao mesmo tempo.
Aproveitar-se do paralelismo é um importante método de melhorar o desempenho em arquitetura de computadores. Podemos explorar o paralelismo em, por exemplo, nível de sistema, nível de um processador individual ou ainda em um projeto digital detalhado. Assim, basicamente, sistemas fortemente acoplados possuem diversos processadores compartilhando a mesma memória física.
São arquiteturas avançadas de computadores estão baseadas no conceito de processamento paralelo:
Pipeline (já tratado em aula anterior);
Arranjo de processadores, e
Multiprocessadores.
Como já citado em outra aula, o pipelining é uma técnica de paralelismo muito usada em arquitetura de computadores para reduzir o tempo total para completar a sequência de instruções. Muitos projetistas tiram proveito do paralelismo de diversas maneiras, como na computação paralela. Uma memória ser fortemente ou fracamente acoplada está relacionada aos tipos de organização de memória:
Organização paralela MIND (Múltipla Instruções, Múltiplos Dados), por exemplo se dividem em memória compartilhada (que são fortemente acopladas);
Memória distribuída (que são fracamente acopladas), encontrada em clusters.
Por fim, temos os sistemas chamados de multiprocessados, que abordam basicamente o compartilhamento de dados, além da coordenação entre os processadores e quantidade de processadores.
A maioria dos computadores trabalha com uma CPU executando várias tarefas, de forma não simultânea. A esta atividade damos o nome de multiprogramação.
O compartilhamento de dados aborda processadores com um único espaço de endereçamento, processadores de memória compartilhada. Podemos ter:
UMA – do inglês Uniform Memory Access;
SMP – Symmetric Multiprocessors;
NUMA – do inglês Non-Uniform Memory Access.
Na arquitetura multicore, o NUMA (do inglês Non-Uniform Memory Access) e é considerada uma das alternativas ao paralelismo, que apresenta as seguintes características:
Cada processador tem a sua própria parte da memória.
...