Faculdade de Informtica PUCRS Linux em Mquinas Paralelas
- Slides: 35
Faculdade de Informática - PUCRS Linux em Máquinas Paralelas Prof. Avelino Francisco Zorzo zorzo@inf. pucrs. br Sistemas Distribuídos
Conteúdo Avelino F. Zorzo Faculdade de Informática - PUCRS Hardware - SMP e NUMA Linux 2. 6 Escalonador O(1) Conclusão 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 2
Avelino F. Zorzo Faculdade de Informática - PUCRS SMP e NUMA 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 3
Hardware - SISD: single instruction single data - computadores com um processador - SIMD: single instruction multiple data - array de processadores (alguns supercomputadores) - MISD: multiple instruction single data - não existe (? ) - MIMD: multiple instruction multiple data - um conjunto de processadores independentes, cada um com seu contador de programa, conjunto de instruções e dados Avelino F. Zorzo Faculdade de Informática - PUCRS - Taxonomia de hardware (Flynn 1972) 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 4
Classe SISD Avelino F. Zorzo Faculdade de Informática - PUCRS - Single Instruction Single Data - Um único fluxo de instruções - Um único fluxo de dados - Arquiteturas tradicionais 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 5
- Multiple Instruction SIngle Data - Múltiplos fluxos de instruções - Um único fluxo de dados - Ainda sem implementação Avelino F. Zorzo Faculdade de Informática - PUCRS Classe MISD 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 6
- Single Instruction Multiple Data - Um único fluxo de instruções - Múltiplos fluxos de dados - Execução síncrona - Arquiteturas Array Avelino F. Zorzo Faculdade de Informática - PUCRS Classe SIMD 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 7
- Multiple Instruction Multiple Data - Múltiplos fluxos de instruções - Múltiplos fluxos de dados - Vários programas sobre vários dados - Arquiteturas Paralelas Modernas Avelino F. Zorzo Faculdade de Informática - PUCRS Classe MIMD 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 8
MIMD Computadores Paralelos e Distribuídos Multiprocessadores (memória compartilhada Avelino F. Zorzo Faculdade de Informática - PUCRS Fortemente acoplado Barramento Sequent, Encore Fracamente acoplado Multicomputadores (memória privada) Switched Barramento Ultracomputer, RP 3 Estações de Trabalho 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. Switched Transputer, hypercube 9
MIMD CPU CPU cache Memória Avelino F. Zorzo Faculdade de Informática - PUCRS - Multiprocessadores baseado em barramento 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 10
MIMD - Multiprocessadores baseado em switch Memórias M M M CPUs C C M C M C Avelino F. Zorzo Faculdade de Informática - PUCRS M crossbar switch 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. omega switching network 11
MIMD Memória Local CPU CPU Avelino F. Zorzo Faculdade de Informática - PUCRS - Multicomputadores em barramento 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 12
MIMD hypercube Avelino F. Zorzo Faculdade de Informática - PUCRS - Multicomputadores com switch grid 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 13
Tipo de Acesso à Memória Avelino F. Zorzo Faculdade de Informática - PUCRS - Multiprocessadores - SMP - NUMA 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 14
- SMP - Symetric Multi- Processing - Memória centralizada (mesma distância de todos os processadores) - Custo único de acesso - Preciso tratar coerência das caches Avelino F. Zorzo Faculdade de Informática - PUCRS Tipo de Acesso à Memória 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 15
Tipo de Acesso à Memória Avelino F. Zorzo Faculdade de Informática - PUCRS - NUMA - Non Uniform Memory Access - Único espaço de endereçamento - Memória distribuída (distâncias diferentes) - Custo não uniforme de acesso à memória 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 16
Tipo de Acesso à Memória Avelino F. Zorzo Faculdade de Informática - PUCRS - NORMA - non-remote memory access - Apenas acesso local à memória - Clusters/Grids 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 17
Avelino F. Zorzo Faculdade de Informática - PUCRS Linux 2. 6 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 18
Linux 2. 6 - 1. 0 em 1994 suporte para máquinas com um só processador - 1. 2 1995 com suporte para diferentes arquiteturas (Alpha, Sparc, . . . ) - 2. 0 1996 com suporte para máquinas SMP - 2. 5 escalonador O(1) e suporte para máquinas NUMA - 2. 6 2003 melhorias no suporte para máquinas NUMA - Direções Avelino F. Zorzo Faculdade de Informática - PUCRS - História - Em sistemas embarcados - Hyperthreading - Em máquinas SMP/NUMA 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 19
- Linux para equipamentos de redes - Linux para micro-controladores - Diversas limitações de hardware - Exemplo, sem MMU (memory management unit) - Pode ser um problema para sistemas multi-usuários, mas não para PDAs ou dispositivos dedicados Avelino F. Zorzo Faculdade de Informática - PUCRS Linux para sistemas embarcados 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 20
- Hyperthreading - possibilidade de mascarar um processador como sendo dois ou mais processadores (Pentium IV) - Melhora performance - Complica o escalonamento de processos - Linux passa a ter a noção de processador virtual Avelino F. Zorzo Faculdade de Informática - PUCRS Linux com hyperthreading 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 21
- Linux para máquinas SMP tem um conjunto de processadores acessando um único banco de memória - Aumento no número de processadores causa contenção no acesso à memória - Em máquinas NUMA este problema é resolvido, pois para alguns processadores a memória está mais perto do que para outros - Linux foi modificado para suportar este tipo de arquitetura Avelino F. Zorzo Faculdade de Informática - PUCRS Linux para máquinas SMP ou NUMA 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 22
Linux com NUMA Memória Local Memória Local CPU CPU CPU Memória Local Avelino F. Zorzo Faculdade de Informática - PUCRS - Uma API foi desenvolvida para indicar a topologia da máquina que está sendo utilizada CPU Memória Local CPU 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. Memória Local CPU CPU 23
Linux com NUMA . . . 0 -100 500 -1000 3000 -1000 Memória Local Memória Local CPU CPU CPU Avelino F. Zorzo Faculdade de Informática - PUCRS - Espaços entre os blocos de memórias - Kernel tem que ser capaz de lidar com memória nãocontígua 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 24
- Com diversos processadores, o escalonador do Linux pode escolher diversos processos para executar ao mesmo tempo - Até a versão 2. 4 o escalonador colocava todos os processos em uma única fila de processos - A partir da versão 2. 5 foi incluído um novo escalonador no kernel do Linux: O(1) Avelino F. Zorzo Faculdade de Informática - PUCRS Linux para SMP ou NUMA 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 25
Avelino F. Zorzo Faculdade de Informática - PUCRS Escalonador O(1) 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 26
Avelino F. Zorzo Faculdade de Informática - PUCRS Escalonador O(1) - Escalonamento: - Um único processador: o escalonador é responsável por dar a impressão que diversos processos executam ao mesmo tempo - Processos executando ou esperando para executar - Escolher o próximo processo que irá executar é fundamental - Linux possui escalonamento preemptivo (fatia de tempo) - Termos comuns: - IO-bound vs. CPU-bound - Prioridade de processo (>IO-bound) (<CPU-bound) - Fatia de tempo (<IO-bound) (>CPU-bound) 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 27
Escalonador O(1) Avelino F. Zorzo Faculdade de Informática - PUCRS - Algoritmo de escalonamento encontra-se em kernel/sched. c - Nova versão a partir da versão 2. 5 - Objetivos: - implementar um algoritmo O(1): terminar em tempo constante independente do número de processos - escalabilidade em máquinas SMP: filas individuais - melhorar afinidade de CPU - migrar processos de uma fila para outra: balanceamento - escalonar tarefas interativas imediatamente - –justo (todos 5 FISL Porto Alegre, RS, Brasilrodam) – 04 de junho de 2004. 28
Escalonador O(1) Avelino F. Zorzo Faculdade de Informática - PUCRS - Fila de processos (uma para cada processador - locking) struct runqueue { spinlock_t lock; unsigned long nr_running; unsigned long nr_switches; unsigned long expired_timestamp; . . . struct task_struct *curr; . . . struct prio_array *active; struct prio_array *expired; . . . } 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 29
Avelino F. Zorzo Faculdade de Informática - PUCRS Escalonador O(1) - O(1) é atingido através dos arrays de prioridade - lista de processos aptos a serem executados por nível de prioridade - bitmap de prioridade - expired vs. active - bitmap é utilizado para descobrir qual processo de mais alta prioridade deve ser executado - bitmap é de tamanho fixo - busca de qual fila se encontra o processo é constante 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 30
- Balanceamento de carga - quando fila vazia - a cada milisegundo (sistema ocioso) - a cada 200 milisegundos - Sistemas com um único processador, balanceamento não usado - Como funciona: - encontra a fila mais carregada Avelino F. Zorzo Faculdade de Informática - PUCRS Escalonador O(1) - de qual array retira um processo (expired array) - procura o processo de mais alta prioridade - verifica se processo não está executando, não tem afinidade de CPU (sched_setaffinity()), não está cache hot - –repete até ficar– 04 com asde filas 5 FISL Porto Alegre, RS, Brasil de junho 2004. balanceadas 31
- Preempção de processos (TASK_RUNNING) - Fatia de tempo dinâmica (recalcular) - Recalcular prioridade dependendo do uso do processador ou de IO - Chamadas de sistema (exemplos): - nice()- prioridade - sched_rr_get_interval() - sched_setaffinity() Avelino F. Zorzo Faculdade de Informática - PUCRS Escalonador O(1) 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 32
- Escalonador para SMP - executar processo no mesmo processador - Escalonador para NUMA - executar no mesmo nó - exemplo, executar um programa em um processador longe do nó onde ele se encontra pode aumentar cerca de 30% no tempo de execução (NEC Azus. A Itanium) Avelino F. Zorzo Faculdade de Informática - PUCRS Escalonador O(1) para NUMA 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 33
Avelino F. Zorzo Faculdade de Informática - PUCRS Conclusão 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 34
Avelino F. Zorzo Faculdade de Informática - PUCRS Conclusão - Quantos processadores na máquina? - SMP ou NUMA? - Quais as vantagens de usar NUMA? - Alternativas a NUMA? Clusters? - Fabricantes de máquinas NUMA: HP, IBM, Compaq, SGI - Escalabilidade do Linux nestas máquinas? - Mais informações: www. gelato. org - Cooperação com HP Brasil - Clusters: www. cpad. pucrs. br - Escalabilidade do sistema Linux: www. inf. pucrs. br/~peso 5 FISL – Porto Alegre, RS, Brasil – 04 de junho de 2004. 35
- Mquinas
- Informtica
- Informtica
- Informtica
- -language
- Credito marista pucrs
- Considere as duas fogueiras
- Correio academico pucrs
- Kernel linux security module m1 support
- Embedded linux vs desktop linux
- Faculdade dom bosco piracicaba
- Faculdade de direito do vale do rio doce
- Faculdade flamingo
- Pulso pedioso
- Dom bosco piracicaba
- Universidade federal de osasco
- Faculdade processos gerenciais
- Cultura de massa
- Faculdade de contabilidade
- Faculdade fapan
- Faciminas
- Fatecid
- Faculdade faciminas
- Faculdade barros melo
- Unicamp limeira ft
- Faculdade almeida rodrigues
- Faculdade ites
- Nome de faculdade
- Faculdade da cidade do salvador
- O proprietário tem a faculdade de usar
- Faculdade una contagem
- Faculdade de day trade
- Faculdade uniban osasco
- Paralelas lisandra
- A velocidade da luz amarela no benzeno é de 200 000
- Perpendiculares