Computação de alta performance

25
COMPUTAÇÃO DE ALTA PERFORMANCE Engenharia e qualidade de softwares

Transcript of Computação de alta performance

Page 1: Computação de alta performance

COMPUTAÇÃO DE ALTA

PERFORMANCE

Engenharia e qualidade de softwares

Page 2: Computação de alta performance

Grades computacionais

Computação em grade (do inglês Grid Computing)é um modelo computacional capaz de alcançar umaalta taxa de processamento dividindo as tarefasentre diversas máquinas, podendo ser em redelocal ou rede de longa distância, que formam umamáquina virtual. Esses processos serão executadosno momento em que as máquinas não estão sendoutilizadas pelo usuário assim evitando o desperdíciode processamento da máquina utilizada.[wikipedia, 2008]

Page 3: Computação de alta performance

Grids nas nuvens

As grades computacionais são capazes de criar um

ambiente de processamento paralelo que utiliza os

recursos computacionais ociosos das máquinas que

podem estar localizadas em diferentes regiões.[Ian

Foster, 1998].

Page 4: Computação de alta performance

Características dos Grids

A computação em Grade tornou-se realidade nolaboratório de Argonne na década de 90 com o propósitode auxiliar atividade de pesquisa e desenvolvimentocientífico. Montada em um ambiente de processamentoparalelo capaz de utilizar os recursos computacionaisociosos de instituições localizadas em diferentes regiões ecom diferentes tipos de redes, formando um sistema robusto,dinâmico e escalável. O modelo de computação em gradese apresenta ao usuário como um computador virtual,ocultando a infra-estrutura distribuída capaz de executarprocessos de forma eficaz, transparente e segura, e decompartilhar espaço de armazenamento, dados, aplicaçõese dispositivos.

Page 5: Computação de alta performance

Emprego dos Grids

Engenheiros: com a utilização de grades computacionais, podem obter respostas de processamento em tempo real para diversas aplicações, como as modelagens em larga escala de estruturas complexas.

Cientistas: a principal característica que estes almejam é a eficiente capacidade de visualização que as grades podem oferecer. Nestes casos, são realizados experimentos no qual cada processo corrente pode ser visualizado detalhadamente e separadamente de outros que estão sendo processados em paralelo. Através desta característica, podem-se promover simulações com grande eficiência.

Page 6: Computação de alta performance

Emprego dos Grids

Educadores: com a capacidade de processamento oferecida pelas grades computacionais, podem ser criados laboratórios e salas de aulas virtuais, onde estes utilizariam um ambiente totalmente preparado e capaz de prover ensino de qualidade à distância através de ambientes multimídia, salas de aula virtuais e tridimensionais, armazenamento de arquivos, vídeo conferencias e encontros virtuais.

Corporações: com a necessidade de processamento de alto desempenho, principalmente quando se refere à qualidade e tempo mínimo de produção. As grades inserem-se perfeitamente no cenário onde se necessita de alto desempenho para fabricar produtos, e para empresas que manipulam grande quantidade de dados.

Page 7: Computação de alta performance

BERKELEY - Após mais do que o equivalente a um milhão de anos de computação

(Nota do Editor: comparado ao atual poder de processamento dos programas SETI

convencionais), por mais de 4 milhões de computadores espalhados pelo mundo,

o protetor-de-tela SETI@home, que processa dados em busca de sinais inteligentes

vindos do espaço, produziu uma lista das fontes de sinais de rádio que merecem receber

uma segunda olhada.

Page 8: Computação de alta performance

SETI@HOME

Nos anos 90, após perder seu financiamento

governamental, um projeto norte-americano que

buscava por sinais de vida inteligente em outros

planetas – o SETI (Search for Extra-Terrestrial

Intelligence) - teria apostado na abordagem da

computação distribuída para não abandonar suas

pesquisas.

Page 9: Computação de alta performance

SETI@HOME

SETI@home ofereceu seu protetor-de-tela ao mundoem maio de 1999, como o primeiro exemplo deprocessamento distribuído em larga escala –conectando através da Internet computadores ociosospara atacar problemas computacionais de grandeporte. A chave do seu sucesso foi uma produtivacolaboração entre Anderson, um cientistacomputacional e um dos principais desenvolvedores doconceito do processamento distribuído, e Werthimer, umfísico com duas décadas de experiência coletando etriando sinais de rádio em busca de sinais incomunsvindos do espaço.

Page 10: Computação de alta performance

SETI@HOME

O projeto disponibiliza em sua página web um cliente que pode ser obtido por qualquer um que deseja-se doar seus recursos ociosos. Por possuir esta característica de utilizar recursos ociosos de qualquer computador conectado a internet, a grade do projeto SETI@home pôde ser considerado o segundo computador mais potente da Terra, com 162 teraFLOPS, contando com 5.436.301 CPUs conectadas, o que corresponde a aproximadamente 2.433.979,781 anos de processamento em uma CPU comum (dados em janeiro de 2006). Perdendo apenas para o BlueGene/L, com capacidade de 280,7 teraFLOPS.

Page 11: Computação de alta performance

SETI@HOME

Atualmente o projeto se dedica a utilizar o poder

computacional para a descoberta de doenças, teste

de medicamentos e simulações genéticas.

Page 12: Computação de alta performance

Outro projetos

Podemos citar também outros projetos tais como o

ChessBrain, que busca criar um super computador

virtual para jogo de xadrez, o Climapredition.net

que busca prever o clima mundial com maior

precisão, o projeto fightAIDS@home que é um

projeto de pesquisa em parceria com a empresa

Entropia e o laboratório Olson que ajuda na

pesquisa contra a AIDS, entre outros.

Page 13: Computação de alta performance

Projeto de Grids

Para se projetar um ambiente de grades computacionais, temos como características básicas:

Recursos coordenados e compartilhados: onde as aplicações compartilham recursos entre si. As aplicações que permitem paralelismo são as mais empregadas nesse ambiente.

Ambientes heterogêneos: as aplicações não são restritas a ambientes operacionais únicos, não havendo dependência de ambiente. As grades destacam-se como uma tecnologia fortemente heterogênea. Com o uso de dezenas, centenas ou até milhares de computadores compartilhando seus recursos, as grades não se limitam em utilizar dispositivos iguais ou uma única plataforma, como o sistema operacional.

Page 14: Computação de alta performance

Projeto de Grids

Segurança e autenticação: em um ambiente em grade, deve considerar a heterogeneidade e o dinamismo. Sendo assim, o sistema não deve ficar restrito a características específicas de um sistema ou empresa. A segurança no processo deve ser garantida, com processos de autenticação e permissões/restrições. As grades podem ser configuradas para fazer melhor uso em sua banda através de dispositivos de redes integrados capazes de transmitir altas taxas de bits, utilizando-se de criptografia e/ou autenticação [Clube do hardware,2005].

Page 15: Computação de alta performance

Projeto de Grids

Recursos dinâmicos e escaláveis: recursos são utilizados a medida que são necessários. Computadores agregados a rede fornecem recursos que se somam. Por ser um ambiente de larga escala, apresenta uma grande capacidade de expansão, podendo adicionar nós, como Desktops e Servidores, em sua rede de computadores a qualquer momento sem que comprometa os outros nós que já fazem parte da grade. Por utilizar recursos espalhados em diversos domínios independentes de suas posições geográficas, as grades podem aumentar a sua capacidade computacional e sempre oferecer aos usuários uma crescente melhora no desempenho, executando as tarefas com a máxima utilização dos recursos oferecidos.

Ambiente distribuído: em uma grade computacional as aplicações devem ser sempre distribuídas e devem-se considerar todos os aspectos inerentes a esse tipo de arquitetura. No aspecto de computação em demanda, as grades têm valor significativo por serem capazes de criar infra-estruturas operacionais flexíveis, conseguindo enfrentar com sucesso as flutuações súbitas de demanda. Esta demanda pode ser destacada na constante variação de tecnologias, que acarreta na crescente exigência computacional por partes dos usuários.

Page 16: Computação de alta performance

Características

As grades de acordo com suas características, são realizadas algumas comparações com outros modelos de sistemas distribuídos existentes.

SMP: (Symmetric MultiProcessing) o sistema de processamento distribuído SMP utiliza uma memória compartilhada e diversos processadores para executar uma tarefa. A distribuição das tarefas é feita por um escalonador que ficará responsável apenas pela distribuição dos Jobs, ou tarefas, nos processadores, pois a existência de uma memória única não torna necessário alocação de memórias independentes. Assim, pode-se confirmar que ambientes construídos em modelos SMP possuem um sistema mono-tarefa, fracamente distribuído, porém fortemente acoplado.

Page 17: Computação de alta performance

Características

MPP: (Massively Parallel Processin), o sistema de processamento distribuído MMP não segue um modelo de compartilhamento de memória, pois são formados de nós independentes e interligados que possuem um sistema próprio para processar os Jobs distribuídos. Estes jobs são distribuídos também por um escalonador de tarefas como no sistema SMP, diferenciando-se apenas no método de distribuição, já que os jobs não irão ocupar uma única memória compartilhada, mas na verdade várias memórias independentes, tornando-se assim um ambiente operacional mais complexo que o SMP. Podemos afirmar portanto que os ambientes MPP são fortemente distribuídos, já que não se limitam na quantidade de processadores suportados em uma única memória compartilhada, multi-tarefa e fracamente acoplados.

Page 18: Computação de alta performance

Características

Page 19: Computação de alta performance

Camada de estrutura

Camada responsável por compartilhar os recursos, utilizando como intermédio, os protocolos de grades. É responsável por implementar os mecanismos de gerenciamento que controlam o acesso aos recursos computacionais, de armazenamento e de rede. Estes recursos pode ser uma entidade lógica implementada com protocolos internos, sem que comprometa o funcionamento da grade. Nesta camada os recursos podem ser implementados como mecanismos de descoberta de outras estruturas, status e potencialidade das grades, como também prover qualidade de serviços utilizando mecanismos de gerência de recursos, onde recursos computacionais são necessários para iniciar programas, monitorar e controlar a execução dos processos, recursos de armazenamento com a função de inserir e retirar dados dos dispositivos de armazenamento, ou seja, a leitura e escrita das informações contidas na grade, recursos de rede com o controle sobre os recursos alocados na transferência de dados pela rede, tais como priorização e reserva.

Page 20: Computação de alta performance

Camada de conectividade

Possui muita importância na arquitetura de grades, é responsável pelas definições dos protocolos de comunicação e autenticação necessários nas transações realizadas em uma grade. Nesta camada são habilitadas as trocas de dados entre os recursos da camada de estrutura, sendo responsável pelo controle gerencial de acesso na camada inferior. De acordo com o modelo de arquitetura de grades, os serviços oferecidos pela camada de conectividade são de transporte, de rota e de nomes, sendo estes utilizados dentro do escopo proposto. Os serviços oferecidos pela camada de conectividade são baseados nos protocolos utilizados na especificação da camada de Internet, tais como o TCP e o UDP como serviços de transporte e o Domain Name System (DNS) [Webopedia, 2005].

Page 21: Computação de alta performance

Camada de recursos

A camada de recursos conforme Ian, 2004, constrói na camada de conectividade um conjunto de regras de comunicação e autenticação responsável pela definição dos serviços, como APIs e SDKs, que, posteriormente, farão a negociação entre as camadas superior e inferior de forma segura, o monitoramento e o controle dos recursos, e, por fim, a contabilização referente ao tempo de uso dos recursos.

Os protocolos implementados na camada de estrutura possibilitam a chamada de funções que provêem o acesso e o controle local dos recursos nesta camada. Os protocolos são divididos em dois: informação e gerenciamento, sendo o primeiro o protocolo utilizado para obter informações sobre a estrutura e o estado dos recursos, e o segundo têm como função ajustar as regras de acesso aos recursos compartilhados.

Page 22: Computação de alta performance

Camada de coletividade

A camada de coletividade, conforme Pankratius & Vossen, 2005, não se preocupa apenas com os serviços e protocolos de um único recurso por possuírem características globais, usam as instâncias capturadas entre toda coleção/conjunto de recursos, justificando assim a origem do nome coletividade.

São exemplos de protocolos de coletividade o serviço de diretório que possibilita a descoberta da existência e/ou propriedades dos recursos. O serviço de co-alocação e escalonamento que permitem requisições de alocação de um ou mais recursos para uma determinada tarefa, escalonando nos recursos apropriados.O serviço de monitoramento e diagnóstico que oferece suporte de monitoramento aos recursos na ocorrência de falhas, ataques (detectores de intrusão), carga excedente, dentre outros. E o serviço de replicação de dados que é responsável pelo gerenciamento dos recursos de armazenamento.

Page 23: Computação de alta performance

Camada de aplicação

Nesta camada serão desenvolvidas as aplicações

que farão parte das grades, onde estas são

construídas seguindo os modelos de serviços de

qualquer camada inferior. Para cada camadas

podem ser requisitados serviços bem definidos de

gerenciamento de recursos, acesso a dados,

descoberta de recursos, dentre outros.

Page 24: Computação de alta performance

Arquitetura OGSA

O conceito fundamental da arquitetura OGSA é a grade orientada a serviços, que são apresentados como serviços Web especiais, permitindo a distribuição e acesso a recursos distribuídos em ambientes dinâmicos heterogêneos. Esses serviços tem suas interfaces descritas através da WSDL, sendo criados e gerenciados de acordo com os mecanismos definidos pela Open Grid Services Infrastruture (OGSI).

OGSA define a semântica da interface de serviços para criação das instâncias, seus nomes, como gerenciar o seu tempo de vida e os protocolos para comunicação. A criação de uma nova instância envolve a criação de novos processos no ambiente responsável pelo suporte dos serviços. Múltiplas instâncias de serviços podem corresponder a uma mesma interface. Dessa forma OGSA faz modificações nos ambientes adicionando suporte aos serviços da grade. A capacidade dos serviços da grade podem ser recursos computacionais, recursos de armazenamento, redes, programas, bancos de dados, etc. Um serviço de grade implementa um ou mais interfaces, onde cada interface é definida através de um conjunto de métodos com chamadas adaptadas ao SOAP.

Page 25: Computação de alta performance

videos

Daniel godri