Newbie questions + OpenGL parallel?

Jimmy Alzen jimmy@cnit.se
Wed, 30 Jun 1999 10:50:21 -0400


Gyurcsan Ferenc Tamas wrote:

> Hi,
> > I'm still unclear as to why you have to re-write your applications to
> > run on a Beowulf cluster. Is it just because there are no compilers
> > available yet (for Linux) that can autoparallelize  (is that a word?)
> > code to run on anything with more than 2 processors (I'm looking at the
> > Absoft Pro Fortran for Linux with regards to that last point).
>
> I think if you want to have a fast program, you should rewrite the co
> because a compiler doesn't know much about your problem, what the needed
> communication is gonna be, how many rows and columns have to be
> overlapped, etc. I know it's definitely exponential extra work.
>
> Somebody mentioned that it would be nice to have a parallelized mesagl.
> My question is what would be the theory of it? What can be parallelized in
> opengl? I am learning opengl right now, and I am wondering how it
> would be possible to parallelize it.
>
> Thanks, Ferenc

Hi there!

I suppose you mean paralellized software rendering.
Paralell hardware rendering is IMHO best obtained with
scanline-interleave, like on voodoo2 cards. I have also
heard of a product which could SLI up to 4 voodoo or TNT cards.

The problem with paralellizing software rendering is really
that the hardware nowadays is so fast... its much cheaper
just buying a good 3D-accellerated card with OpenGL support
like the TNT2.
These 3D-processors are optimized specifically for very limited
tasks needed in rasterization. And they probably have multiple execution units

in each rasterization unit.
Many of them also have direct-coupled 128 bit busses to the graphics memory,
allowing for memory access superior to ordinary CPU's.

I think paralellizing OpenGL with a beowulf cluster is
A Bad Idea(tm), because
1)    Its cheaper to buy the 3D-hardware.
2)    IMHO it will be very difficult (and expensive) to achieve high
framerates at high resolutions.
        For example:Imagine software rendering a 1280*1024 animation in 24bit
color,
                             at 20 fps (very possible with a half-decent 3D
card today).
                            A fast calculation shows that the required network
bandwidth to the rendering
                            machine needs to be about 80 megabytes/second.
This is quite near the theoretical
                            bandwidth of gigabit ethernet ,thus the receiving
machine will be loaded just
                            receiving packets, where its it gonna get the
cycles needed to display the image?.
                            And the bus bandwidth to the graphics card on the
receiving end would be severely
                            impaired.
3)    Being experienced in writing software rendering routines like the ones
used in quake, I think its difficult
        with today's CPU's to achieve even the same performance as one 3D-chip
on 8 pII 450 CPU's.
4)    OpenGL is designed to allow hardware implementation. Possibly this makes
software implementation
        harder.

On the other hand, paralellizing graphics rendering is what I experiment with
on my
cluster .......

/ Jimmy