2009/09/25

Animação 3D Multi-Threaded

Numa altura em que os processadores multicore com 4 (e até 8) núcleos se começam a popularizar, e que nos próximos anos provavelmente aumentarão para os 16 e 32, é tempo de começar a utilizá-los.

Para isso a Intel tem feito alguns estudos para promover a adopção de código que utilize dinamicamente o número de cores disponíveis e se ajuste automaticamente.

Ou seja, em vez de termos um CPU "potente" desperdiçado com poucos objectos no ecrã, porque não aumentar o número de objectos na cena - até ao limite máximo que permita manter um framerate aceitável?

É isso que podemos ver em várias demonstrações disponibilizadas pela Intel (com sourcecode completo.)

Por exemplo, nesta demonstração que coloca cavalos a passear pela paisagem, um CPU dual core é capaz de suportar 235 cavalos simultaneamente.



Mas, se corrermos a demonstração num Core i7, com 8 cores, passamos a poder ter quase 600 cavalos.


E o mesmo pode ser aplicado a sistemas de partículas como nesta demo "Smoke":


3 comentários:

  1. Deviam era, além destas tentativas de promoção de ambientes multi core, continuar a investir em ambientes multi core...distribuídos!

    Já devíamos ter algo que permitisse usar threads distribuídas em condições (tal como se tivéssemos a programar localmente)!

    Hugz,
    Luís

    ResponderEliminar
  2. Luis mas isso ja existe.
    é mt comum qd se ker compilar grandes projectos, em vez de estar tudo num CPU, distribui-se por varios PCs.

    ResponderEliminar
  3. @Luis

    Tudo vai nesse sentido. À medida que as latências se reduzem, eventualmente chegaremos ao tempo em que seja "transparente" um processo ser executado num CPU local, ou a milhares de KM de distância.
    (Só tens que fazer bem o teu trabalho, para que isso seja cada vez mais potente e simples de usar! ;)

    ResponderEliminar