![]() |
CMP134 - Introdução ao Processamento Paralelo
e Distribuído
Cristiano Lazzari - clazz@inf.ufrgs.br
Abril de 2001
Introdução
O ASCI White foi desenvolvido, principalmente
pela IBM para fazer parte de um programa do departamento de energia dos
Estados Unidos(CORÇA). O principal objetivo deste programa
é testar armas nucleares eliminando eventuais problemas de segurança
que podem vir a acontecer em testes reais. O ASCI (Accelerated Strategic
Computing Initiative) foi criado em resposta a uma diretriz feita em
1995 por Clinton.
A construção ASCI White começou
no laboratório da IBM em Poughkeepsie, New York. O desenvolvimento
do sistema proseguiu confidencial até o dia 29 de junho de 2000.
Fazendo parte deste programa estavam mais de 100 colaboradores da IBM e
entre 10 a 15 membros do ASCI.
O projeto ASCI White alcançou o desempenho
de 12,3 teraflops, 23% acima do que foi contratado. Para os próximos
anos, o programa ASCI pretente ainda desenvolver supercomputadores de 30
e 100 teraflops de tamanho.
O ASCI White
O ASCI White é composto de 8.192 processadores
em 512 nós. Cada nó utilizado, possui 16 CPUs do tipo RS/6000
375 MHz POWER3 SMP High. O tamanho da memória do ASCI White
é de 4 terabytes e a capacidade de armazenamento do supercomputador
chega a 150 terabytes distribuídos em 7.000 discos. Com estas características,
o ASCI White possui um poder de processamento de 12.3 Teraflops, ou seja,
ele pode executar mais de 12 trilhões de operações
por segundo.
Cada um de seus 512 nós é um multiprocessador
simétrico autônomo (SMP, ou symmetric multiprocessor) com
sua própria memória, sistema operacional e disco local. Para
assegurar seu desempenho, o ASCI White faz uso de um sistema de arquivos
paralelo(GPFS, ou General Parallel File System ) facilitando o compartilhamento
de dados entre os nós.
Figura 1. Diagrama da configuração
do ASCI White
O Sistema do RS/6000 que implementa o ASCI White
possui arquitetura de 64bits e cada um dos nós é uma máquina
autônoma que possui sua própria memória, sistema operacional,
disco local e 16 CPUs Power3 SMP High. Os processadores fazem uso de um
pipeline superescalar RISC com 2 unidades de ponto-flutuante, 3 unidades
para inteiros, 2 unidades de Load/Store e 1 unidade destinada a predicao
de branchs.
As 2 unidades de ponto flutuante são totalmente
independentes, cada uma com capacidade de executar rotinas de raiz quadrada
e divisão.
Das 3 unidades de execução para intruções
de ponto fixo, 2 são extritamente destinadas a execução
de rotinas com operações aritméticas e a outra é
destinada a operações multiciclo como multiplicação
e divisão.
O Power3 possui ainda duas unidades de Load/Store.
Loads são executados especulativamente e stores são armazenados
em uma fila para que não haja perda de desempenho enquanto loads
estão sendo executados.
A unidade de execução de desvios aplica
predição dinamica de branchs, suportando predição
de até 4 branchs pendentes. Esta unidade possui uma cache de endereços
de 256 entradas e uma tabela de históricos de 2048 entradas.
Figura 2. Diagrama de blocos de um Power3
As instruções são executadas
especulativamente utilizando-se de um esquema de renomeação
de registradores com 64 registradores virtuais(32 de inteiros e 32 de ponto
flutuante) e 40 registradores físicos(16 de inteiros e 24 de ponto
flutuante).
A capacidade de memória RAM de um nó
pode chegar a 64GB. Caches de nível 1 podem armazenar até
64KB de dados e 32KB de instruções. O Power3 possui uma cache
de nível 2 externa de 8MB, sendo ela unificada para dados e instruções.
Com essas características, o Power3 é
capaz de executar até 8 instruções por ciclo de relógio
e fazer até 4 operações de ponto flutuante em cada
ciclo.
Figura 3. Diagrama de um Power3 SMP High Node
A figura 3 mostra o diagrama de blocos de um Power3 SMP High Node. Ele é formado de 1 a 4 placas de processadores, uma placa separada para elementos de E/S, possui até 4 placas de memórias e uma placa principal com um Switch de endereços e dois controladores independentes de memória. A tabela abaixo explica cada um dos chips que aparecem na figura 3.
Chip | Função |
Power3 | Processador |
NCA | Node Controler (address) : Manipula endereços de todas as transações e as coordenadas das transferências de dados entre os processadores, memórias e elementos de E/S |
NCD | Node Controler (Data) : Contem os caminhos para a transferência de dados entre a memória e os processadores |
ASX | Switch de endereços |
Crossbow | Controla a transferência de dados |
Arrow | Carrega dados da memória e para a memória e entre os nós |
Saber | Portal para sub-sistemas de E/S |
SP Fabric Adapter | Portal de comunicação entre os High Nodes |
Para garantir alto desempenho em situações
de processamento pesado, o Power3 investe em duas tecnicas de redução
de latência :
1) Todas as caches são non-blocking.
Ou seja, perdas em caches de dados ou instruções não
prejudicam o processador. A cache de instruções suporta até
2 misses e a cache de dados até 4.
2) O Power3 implementa algoritmos de
detecção de acesso a dados e instruções em
hardware, na qual permite pré-busca nos níveis mais próximos
do processador na hierarquia de memória. Pré-buscas de dados
reduzem a latência melhorando o desempenho e a utilização
do processador enquanto pré-buscas de instruções na
cache de nível 1 elimina retardos obtidos na busca em memória.
Desenvolvido com uma tecnologia hibrida de 0,25
micron, o Power3 contem 15 milhões de transistores e possui 5 níveis
de interconexão.
Software
O ASCI White possui uma linha de softwares muito
parecida com a utilizada no ASCI Blue-Pacific. O sistema operacional utilizado
é o AIX. Uma implementação proprietária do
UNIX que suporta tanto sistemas 32bits quanto 64bits dos RS/6000.
Softwares para ambientes paralelos disponibilizam
aos usuários uma coleção de ferramentas para programação
paralela. Nestas ferramentas destacam-se as linguagens C, C++ e FORTRAN.
Para a viabilização do programa do
departamento de energia são utilizadas bibliotecas MPI. Estas
bibliotecas possibilitam a troca de menssagens entre os nós.
Desempenho
Testes de desempenho são fundamentais para
que se conheça as capacidades de uma arquitetura. Principalmente
quando se trabalha tendo como objetivo um projeto do tamanho do ASCI
White, é necessário que se tenha informações
que provem que tal arquitetura é capaz de realizar tarefas pela
qual foi desenvolvida.
Existem algumas entidades que objetivam avaliar
desempenho de computadores. Entre elas destacam-se a SPEC e Linpack. A
TOP 500 é uma fundação que inciciou em 1993, utilizando-se
das estatísticas Linpack e com o objetivo de mostrar os 500 supercomputadores
de acordo com seus desenpenhos.
A tabela 2 mostra uma tabela comparativa entre os
5 supercomputadores que lideram a lista do TOP500.
|
|
|
(GFlops) |
|
|
|
|
|
1
|
|
|
4.938
|
|
Pesquisa em Energia |
SP Power3 |
12.288
|
430.000
|
2
|
|
|
2.379
|
|
Pesquisa |
Pentium Pro |
3.207
|
362.880
|
3
|
|
|
2.144
|
|
Pesquisa em Energia |
PowerPC 604e |
3.868
|
431.344
|
4
|
|
|
1.608
|
|
Pesquisa |
|
3.072
|
374.400
|
5
|
|
|
1.417
|
|
Pesquisa Aero-espacial |
|
2.004
|
374.000
|
Referencias Bibliográficas
IBM Corporation. RS/6000 System. Março
de 2000.
Dinkjian, Robert; Mayfield, Michael. POWER3:
Next Generation 64-bit PowerPC Processor Design. Outubro de 1998.
Amos, Bob; Mayfield, Michael. RS/6000 SP POWER3
SMP High Node : Next Generation in Scalable Computing. Agosto de
1999.
Mojtabaeezamani, G. RS/6000 SP 375MHz POWER3
SMP Node Architecture. Fevereiro de 2000.
Dongarra, Jack J. Performance of Various Computers
Using Standard Linear Equations Software. Computer Science Department.
University of Tennesse. Knoxville. Janeiro de 2001.
Sites Utilizados como Pesquisa
ASCI White | http://www.llnl.gov/asci/platforms/white/index.html |
TOP 500 | http://www.top500.org |
Linpack | http://www.netlib.no/netlib/benchmark |