• Nenhum resultado encontrado

Cluster

N/A
N/A
Protected

Academic year: 2021

Share "Cluster"

Copied!
79
0
0

Texto

(1)

PROCESSAMENTO

PARALELO

Grupo Avengers

(2)
(3)

 O processo paralelo é um sistema de

interligação de vários nós de processamento.

 Esse sistema distribui tarefas para cada

processador envolvido nessa interligação de nós.

 O objetivo é a rapidez, agilidade, e a

redução de tempo para execução de uma tarefa.

(4)

Tipos de

Processamento

Paralelo

(5)

 Consiste em utilizar a tecnologia MMX

disponibilizadas em processadores Pentium (Pentium MMX).

 Processamento paralelo feito em uma única

máquina, em um único processador.

 O processador Pentium MMX trabalha com 32 bits.  A tecnologia MMX agrupa cálculos que utilizam 8

ou 16 bits em uma única instrução que é

executada normalmente, como uma instrução 32 bits.

 Requer programação em baixo nível.

Processamento paralelo em

Swar (Simd Withn a Register)

(6)
(7)

 Consiste em dividir o processamento em dois ou

mais processadores, com características

semelhantes, que compartilham da mesma

memória e são gerenciados por um único sistema operacional.

 Antigamente, placas-mães com soquetes para mais

de um processador eram necessárias para o SMP.

 Com a atual tecnologia, os vários núcleos de

processamento são integrados em um único

componente de hardware também chamados de processadores multi-core.

 O sistema operacional gerencia o processamento

SMP

Processamento paralelo com SMP

(Symmetric Multi-Processing) 

(8)

Exemplos de processadores multi-core:

 Intel Xeon;

 Intel Core (2,2 Duo,i3,i5,i7)  Intel Pentium D;

 Intel Itanium;

 AMD Athlon 64 ou X2;

 Opteron 200 e 2000 processadores da série;  UltraSPARC da Sun Microsystems;

Exemplos de processadores

multi-core:

(9)
(10)

 Beowulf é o nome de um projeto para

aglomerados do computadores (ou

Clusters), usando computadores pessoais.

 Foi criado por Donald Becker da NASA.

 Possui uma máquina principal, chamada de

servidor e várias outras máquinas escravas, sem teclado, sem mouse e sem monitor.

 Geralmente utiliza GNU/Linux para

configurar o processamento.

Processamento paralelo com

cluster Beowulf

(11)

 Baixo custo, pois utiliza componentes

domésticos.

 Fácil manutenção.

 Não há limite definido para o tamanho do

cluster.

(12)

 A grande maioria do hardware de rede não

foi criada para funcionar em processamento paralelo.

 Mesmo com a popularidade crescendo,

existem ainda poucos softwares que suportem e tratem este tipo de cluster como um sistema único.

(13)
(14)

 Consistem em um conjunto de

computadores completos (com teclado, monitor e mouse) conectados em rede.

 Cumprem duas funções:

•1 - Permitir o uso diário (processamento de

texto, planilhas e aplicativos em geral).

•2 - Realizar processamento paralelo pesado

no final do dia ou em finais de semana.

Processamento paralelo com

cluster workstation

(15)

 Possibilita o uso das máquinas por

diferentes usuários para realização de suas tarefas rotineiras.

Vantagem

Desvantagem

Como vários usuários estão utilizando os

processadores para outras tarefas, o

desempenho do sistema é reduzido.

(16)
(17)

 o MOSIX é um complemento ao kernel do

GNU/LINUX que adiciona ao mesmo

 capacidades de computação com cluster.  O Mosix pode ser obtido no site oficial do

desenvolvedor (http://www.mosix.org ), onde está disponível uma versão para

estudos com suporte para até seis nodos.

Processamento paralelo em um

cluster com MOSIX

(18)

 O trabalho de programação é reduzido,

exigindo apenas a implementação dos

mecanismos de troca de mensagens entre os diferentes processos;

Vantagem

Desvantagem

(19)

EXEMPLOS DE

PROCESSAMENTO

PARALELO

(20)

JAGUAR

 Fabricado: Cray no EUA

 Processamento: 45000 processadores Quad – Core da AMD

atingindo 1.64 petaflops

(21)

Roadrunner  Fabricado: IBM

 Processamento:12.960

processadores power xcell8i, rodando a 3.2 ghz, junto com outros 6480 AMD opteron x2, de 1.8 ghz atingindo 1 petaflops

(22)

K – cluster  Fabricado: Fujitsu e Riken

 Processamento: 8,2 milhões de calculo por segundo.

Para efeito de comparação, o poder desta maquina equivale ao de 1 milhão de desktops.

(23)

Conheça os computadores que fazem

cálculos astronômicos usando mais de

2300 núcleos.

(24)

 Conheça também o supercomputador

brasileiro que faz o trabalho de 10 mil desktops reunidos

(25)
(26)

 Permite a execução de tarefas em paralelo,

em menor tempo

 Vários processadores

 Múltiplos processadores simétricos (SMP) e

agregados (clusters)

 MIND múltiplos fluxos de instruções e de

dados

(27)

 Processadores de capacidade compatível  Podem realizar as mesmas funções (daí o

termo simétrico)

 Compartilham a mesma memória ,

facilidades de Entrada e Saída,

(28)

 Vantagens do Multiprocessador sobre

Monoprocessador

 Desempenho

 Disponibilidade se um falha, não para tudo  Crescimento acréscimo de processadores  Escalabilidade produtos com diferentes

(29)
(30)

 Níveis de paralelismo podem ser definidos pela

forma com que o processador esta trabalhando com as informações. Os mesmos podem ser obtidos com base na quantidade de código que esta sendo paralelizada.

 Os níveis de paralelismo são: • Nível de instrução

• Nível de dados • Nível de tarefa

(31)

Vejamos abaixo os níveis de paralelismo, a

unidade de código e a granularidade de

Código.

Em uma mesma aplicação o paralelismo

pode ser detectado em diferentes níveis.

Nível do Paralelismo

Unidade de Código

Granularidade

Instrução Instrução Pequena Dados Bloco de instrução Média

(32)

Podemos definir de uma forma geral:

A nível de Instrução (Granularidade pequena): Alta

comunicação / Menor Performance. Exemplo: O ato de digitar.

A nível de Dados (Granularidade média): Média

comunicação / Media performance. Exemplo: Navegar em uma pagina simples da internet.

A nível de Tarefa (Granularidade grande): Pouca

Comunicação / Maior Performance. Exemplo: Executar um programa pesado.

(33)

Escalonamento de

Multiprocessos e

(34)

Escalonamento

de

(35)

 O conceito de escalonamento tem como objetivo a otimização da utilização de hardwares dos

computadores.

 É uma forma para ordenar e organizar o que será executado no momento e posteriormente.

 O uso de escalonamento de processos pode trazer uma maior produtividade e ganho de tempo sem alterações significativas de maquinas e hardwares.

 Há alguns conceitos de escalonamento o qual pode atribuído para tal otimização.

(36)

 Apresentaremos alguns dos tipos de escalonamento de multiprocessamento: • Estático • Fila Única; • Multiprocessamento simétrico • Multiprocessamento assimétrico • Dinâmico

(37)
(38)

Fila Única: Uma Requisição para vários

processadores

Fila Única

(39)

 As requisições passam por uma CPU que irá

fazer a seleção de distribuição.

Escalonamento

Assimétrico

(40)

 As requisições passam diretamente para

cada CPU.da CPU

(41)
(42)

 Escalonamento Dinâmico – Não segue um

(43)
(44)

 O Balanceamento de carga vem com uma

solução para atingir de forma integra a capacidade de processos em sistemas distribuídos.

 Por vezes, dependendo da utilização e

transferências de informações, um só

computador não pode dar conta de todas as solicitações de processos. Isso pode

ocasionar lentidão ou inutilização de um computador especifico.

(45)

 O conceito de balanceamento pode ser usado

para distribuir a capacidade de um computador especifico com utilização próxima do limite para outros que estão ociosos.

 Pode-se também fazer divisão de tarefas, por

exemplo:

• Um servidor que recebe cadastros e

formulários;

• Um servidor para e-commerce;

(46)
(47)
(48)

Processos

e

(49)

O que é um processo?

 Um processo é um parte de um programa

em execução dado um contexto com alguns tipos de recursos. Ou seja, um processo

como um banco de dados onde se guarda informações necessárias para executar um programa.

(50)

O que é um programa?

 Um programa é um arquivo onde se guarda as

informações de como construir um processo. Essas informações podem ser:

- Identificação do formato binário.

- Instruções da linguagem da maquina.- Endereço de entrada do programa.

- Dados.

- Tabelas de símbolos e relocação.- Informações de bibliotecas

compartilhadas e linkagem dinâmica.

(51)

O que é multiprogramação?

 Multiprogramação é nada mais que um

rápido chaveamento entre processos onde se pode criar um ilusão de paralelismo.

(52)

Estados de um processo

 Todo o processo tem que passar por certas

“rotinas” para rodar, pois há uma necessidade de sincronização.Pois pode ocorrer um

bloqueio se a entrada do processo não estiver disponível. O escalonador fica responsável por decidir qual processo ou thread que vai rodar.  1 . O escalonador escolhe o processo para

executar.

 2. O escalonador entrega o processo ao processador.

 3. O processo foi bloqueado para fazer a entrada de dados ou outras situações onde não tem condições lógicas para o programa rodar.

 4. Operação de entrada e saída concluída ou o processo pode ter condições de rodar

(53)

Implementação do modelo de

processos

 Quando precisa implementar um modelo, o

sistema operacional utiliza uma tabela de

processos com uma entrada para cada processo.

 Cada entrada possui algumas informações:  - O estado do processo.

 - Memória Alocada.

 - Valores do contador + ponteiro de pilha.  - Estado do arquivo aberto.

 - E tudo que for necessário para o processo

retomar sua execução mais tarde do ponto onde parou.

(54)

Comunicação entre processos

(IPC)

 A comunicação entre processos é um grupo de

mecanismos que permite que os processos

troquem informações entre si. Alguns meios de

comunicação: arquivos, copiar e colar, mensagens, memórias compartilhadas, pipes, sockets.

 Pode-se apontar 4 tipos de comunicações:

1.Condições de Corrida

2.Regiões Criticas

3.Exclusão mútua com espera ocupada

4.Exclusão mútua com bloqueio e

(55)

1.Condições de Corrida

 Há uma condição de corrida quando dois ou

mais processos estão acessando dados

compartilhados. E o resultado depende de qual processo roda primeiro que o outro.

(56)

2.Regiões Criticas

 A função da região criticas é impedir que dois ou

mais processos acessem dados simultaneamente. E também impedir que dois ou mais processos

entrem simultaneamente em suas regiões criticas correspondentes.

Condições para uma boa solução ao problema da condição de corrida:

 - Dois ou mais processos não podem estar

simultaneamente dentro de suas regiões críticas correspondentes.

 - Nenhum processo rodando fora de sua região

(57)

3.Exclusão mútua com espera

ocupada

 Uma outra maneira de impedir que

dois ou mais processos acessem dados compartilhados ao mesmo tempo é por exclusão, dentre das diversas maneiras irei citar 2:

(58)

3.Exclusão mútua com espera

ocupada

(59)

4.Exclusão mútua com bloqueio

e desbloqueio

 O problema com a exclusão mútua de

bloqueio e desbloqueio é que ele gasta um tempo desnecessário do

processador. Para isso existem dois comandos básicos:

 - sleep  - wakeup

(60)

Escalonamento de

processos

 Quando dois ou mais processos têm condições

de rodar, é o escalonador que decide qual será o próximo a receber tempo de CPU. Esta

decisão é baseada em um algoritmo de escalonamento.

 Relógio ("clock"): fornece interrupções. As

decisões de escalonamento podem ocorrer a cada enésima interrupção de relógio.

 Existem dois tipos de escalonamentos:

1.Escalonamento não-preemptivo

(61)

Escalonamento de

processos

 Existem 3 categorias de algoritmos de

escalonamento:

Em lote:

Exemplo First-come, first-served (FCFS)

Interativo: preempção é essencial.

Exemplo Round-robin

Em tempo-real

 Existem dois tipos de sistemas de tempo real:  - Sistema de tempo real críticos

(62)

Escalonamento de

processos

(63)

O que é um Thread?

 Um thread é um fluxo de execução dentro de um

mesmo processo compartilhando dados e recursos de tal processo. Os threads usam e existem dentro

desses recursos mas são capazes de rodar sozinhos dentro de um processo. Um thread pode ocorrer de ter um fluxo de controle e ser escalonado pelo fato de ter:

 - O seu próprio contador de programa.  - O seu próprio ponteiro de pilha.

 - Os seus próprios registradores.

 - As suas propriedades de escalonamento.

 - O próprio conjunto de sinais pendentes e bloqueados  - E os dados que lhe são específicos.

(64)

O que é um Thread?

Processo com um único thread

(65)

Demonstração: Sequencial,

Threads e Cluster

(66)

 O processo sequencial

se dá quando é

respeitada a ordem

que foi dada, seguindo para o próximo ou

para a próxima parte quando a primeira foi concluída.

 Uma vez passado o

comando para a máquina, o usuário não interage mais com o processo.

(67)
(68)
(69)

 Um cluster é um sistema que compreende

dois ou mais computadores conectados em rede para o desenvolvimento de

processamento paralelo. Ou seja, as

máquinas são conectadas via rede para formar um “único computador”.

(70)

 Em 1994, a NASA, agência espacial

norte-americana, necessitava de um equipamento com alto poder de processamento. Uma

máquina com tal nível de desempenho

custava em torno de um milhão de dólares.

O primeiro Cluster Beowulf foi criado por

Donald Becker da NASA.

Como surgiu a ideia de se

utilizar um cluster Beowulf?

(71)
(72)

 O objetivo de um cluster é possibilitar o uso

de computadores ligados em rede para execução de processamento com alto

desempenho, permitindo a realização de

simulações e processamentos o mais rápido possível. Assim como vamos demonstrar.

Qual o objetivo de se utilizar um

cluster?

(73)

 O campo de aplicações de um Cluster

Beowulf e clusters em geral é imenso, temos como exemplo:

 Astrofísica;

 Exploração de petróleo;  Biotecnologia;

 Simulações de mercado financeiro;  Tratamento de imagens, jogos e até

renderização de efeitos visuais para o

cinema, como a renderização das cenas de filmes como StarWars, Final Fantasy, Avatar e muitas outras produções.

Campo de utilização de um

Cluster?

(74)

 3 notebooks com processadores core i5

cada um;

 Roteador para interligação entre as

máquinas;

 Sistema Linux Knoppix em cada máquina,

com openMosix;

 Blender 2.34;

O que foi utilizado para a

montagem do Cluster

(75)
(76)

 Vantagens do Multiprocessador sobre

Monoprocessador:

• Poder de Alto Desempenho;

• Disponibilidade: se um falhar, o outro assume

o processamento;

• Crescimento: acréscimo de processadores,

conforme a necessidade;

• Escalabilidade: produtos com diferentes

(77)

• Permite a execução de tarefas em paralelo,

em menor tempo;

• Podem realizar as mesmas funções (daí o

termo simétrico);

• Não há limite definido para o tamanho do

(78)
(79)

Referências

Documentos relacionados

15.6 - Os pedidos de esclarecimentos referentes a este processo licitatório deverão ser enviados ao pregoeiro, até três dias úteis anteriores à data fixada para abertura da

Em um estudo qualitativo, essa seção normalmente inclui a abordagem filosófica, os participantes, o contexto, o método de coleta de dados e como os dados são analisados (9).. Em

A comunicação desenvolve o tema de aplicação do conceito gestão do risco precisamente ao risco de gestão dos recursos hídricos, focando os processos de decisão e de

Diferentemente do prazo fixado para pagamento dos precató- rios, as RPVs são depositadas pelos Tribunais Regionais Federais nos bancos ofi- ciais, mensalmente, obedecido o prazo de

As abraçadeiras tipo TUCHO SIMPLES INOX , foram desenvolvidas para aplicações que necessitam alto torque de aperto e condições severas de temperatura, permitin- do assim,

Assim, com o aprofundamento e a apreciação das perspectivas educacionais, esta estratégia não apenas vai contribuir para uma estruturação inter-pessoal

Em nosso espaço de coworking, localizado no Brooklin, você encontrá uma variedade de pensadores inovadores, focados em seus trabalhos e em metas para alcançar o sucesso.. Com

O Reitor do Instituto Federal de Santa Catarina (IFSC) torna público pelo presente Edital, de acordo com as disposições legais em vigor, o início do período de manifestação de