Artigos

Opinião – HPC, nVidia e Project Denver

Como muitos de vocês sabem, a nVidia tem um programa de “High Performance Computing”, baseado nas suas placas gráficas, que fazem outro tipo de computação nesta área e têm uma gama dedicada só para tal, com o nome “Tesla”.

O interessante e um pouco estranho, é que várias empresas implementam o Tesla de formas diferentes, o que talvez não seja do agrado da nVidia e penso que isso em parte acontece, porque a nVidia não tem o controlo da platadorma por inteiro, mas sim só de uma pequena parte.

Não controla nem o CPU, nem o chipset, que é o que fala com os GPUs, o que depois faz com que aconteçam coisas que poucos reparam, mas que não são agradáveis à nVidia nem aos clientes.
Por exemplo, o maior super computador do mundo, Tianhe 1A, que usa Teslas, teoricamente deveria ter a performance de 4,7 Petaflops, mas na prática “só” dá 2,56 Petaflops.
O valor continua a ser elevado, mas algo se está a “perder” pelo meio. Eficiente não é.

A nVidia tem um projecto chamado “Echelon” para chegar ao 1 Exaflop, dentro de alguns anos e o interessante é que nos slides fala em “processadores genéricos” e não em INTEL ou AMD, o que faz pensar já aqui a nVidia quer controlar a plataforma por inteiro.

Hoje com o anúncio do projecto Denver, também virado para a HPC, juntei algumas peças e vou especular um pouco.
Isto é um aviso, porque é apenas uma opinião em forma de especulação e o Echelon e o Denver podem não ser nada do que vou dizer.
Fica o aviso.

Voltando um pouco atrás. A nVidia não tem controlo de como é implementado o Tesla e vou mostrar três exemplos, de formas completamente diferentes de como estão a ser instalados e usados. O Tianhe 1A, o produto da HP e o da SGI.

Começando pelo Tianhe 1A, vamos esquecer que ele tem alguns nós com cpus chineses Mips, que pouco fazem no conjunto e vamos ao principal de cada nó:

Quando vi como eram compostos os nós do super computador mais rápido do mundo, apanhei uma valente surpresa.
Isto porque cada nó é composto por 4 Xeon e “só” dois Gpus e mesmo estes são os 2050, que não são o topo da gama dos Tesla da nVidia.
Esperava ver o contrário, mas não.
A ideia com que fiquei é que os CPUs são tão ou mais importantes que os GPUs neste sistema. Isto é, haverá programas que irão correr nos Gpus, mas também haverá programas a correr somente nos CPUs.
Esperava uma arquitectura muito mais dependente dos GPUs, mas parece que não foi essa a ideia.
A isto chamo um super computador “híbrido”, ou se é para usar só os Gpus, um super computador “brute force”.

No entanto há uma coisa que ainda não disse. Como a nVidia não controla a plataforma, não há consenso sobre quantos CPUs se devem usar por cada GPU.

Um exemplo. Este é um nó da HP, que é 2U half-size (a nível de largura).

Este sistema é muito interessante, pois a HP teve um problema. O sistema leva três GPUs e HP insistia que para a melhor performance os três Gpus tinham que estar ligados a slots Pci-Express 16x, que electricamente fossem mesmo 16x e não 8x ou menos.
No entanto o IOH da Intel só tem 40 lanes Pci-Express, o que se fizerem as contas, não dá 16x para todos os slots.
O que a HP fez? Simples (ou nem tanto), colocou dois IOH no sistema. Um ligado a duas gráficas e o outro a outra. Uma solução engenhosa. Aposto que se houvesse mais espaço, ainda adicionariam outro GPU, pois tecnicamente seria possível.
No entanto onde quero chegar é que este sistema é muito mais virado para o processamento “só” com os GPUs, ao contrário do Tianhe 1A.

Outra solução, também diferente, é a da SGI.

Neste caso, temos dois CPUs e “apenas” um GPU, o que não parece equilibrado.
No entanto cada nó da SGI é extremamente pequeno e costumizado, sendo um formato parecido a um pequeno rectângulo.
Onde quero chegar é que apesar de ter apenas um GPU, conseguem uma densidade muito maior num Rack, que as soluções da HP ou do Tianhe 1A e por isso o GPU continua a ser a peça central do puzzle.

Por fim, a minha especulação.
Na SC2010, a nVidia mostrou um pouco, em alguns slides, do que esperam ser o Echelon. Um super computador, que teoricamente pode chegar a 1 Exaflops.
O que vou mostrar é apenas um oitavo de um nó. Pois pelo que percebi, cada nó seria dividido em 8, sendo que esse oitavo teria 1 CPU (genérico) e 8 GPUs, cada um com 20 Tflops de performance, dando assim 160 Tflops, em que num nó será 160 Tflops X 8.

Com o anúncio do projecto Denver, juntei as peças. Aqui fica um oitavo de um nó.

Os oito GPUs deste oitavo de nó ficariam interligados por um router, que por sua vez ficaria ligado ao Denver.
Um nó inteiro teria oito Denvers ligados por uma rede Dragonfly, que se procurarem na internet, é um projecto com grande bandwidth e baixa latência.
A nível de GPUs, num nó, teriamos 8 X 8, sendo que cada grupo de 8 estaria ligado internamente a um router, que tal como tinha dito, se liga a um Denver.

O que penso é que o processamento neste caso estaria completamente nos Gpus e o Denver seria uma parte “menos importante” do conjunto, fazendo apenas de controlador ou dando um exemplo mais actual, quase uma Northbridge de uma motherboard.
Isto seria computação nos GPUs levado ao extremo, em que pouco faz o CPU.

Quase para acabar, volto a dizer que isto é apenas uma opinião e especulação minha, ainda com as notícias a quente, mas gostava de acertar no que disse aqui. Se falhar e acabar de dizer uma grande asneira, paciência.

Etiquetas

Artigos Relacionados

Close