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

 
IBM RS/6000

    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
Tabela 1. Descrição dos chips do Power3 High

    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.
 
Pos.
Fabricante
Computador
Desenpenho RMax 
(GFlops)
Ano
Área
 Processadores
Desempenho de Peak Teórico (GFlops)
Tamanho do Problema
1
IBM
ASCI White
4.938
2000
Pesquisa em Energia
8.192
SP Power3
12.288
430.000
2
Intel
ASCI Red
2.379
1999
Pesquisa
9.632 
Pentium Pro 
3.207
362.880
3
IBM
ASCI Blue-Pacific
2.144
1999
Pesquisa em Energia
5.808
PowerPC 604e
3.868
431.344
4
SGI
ASCI Blue Mountain
1.608
1998
Pesquisa
6.144
3.072
374.400
5
IBM
SP Power3 375 MHz
1.417
2000
Pesquisa Aero-espacial
1.336
2.004
374.000

Tabela 2. Lista dos melhores da TOP 500.




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