Loose of performance when adding more nodes

3 messages Options
Embed this post
Permalink
tgp

Loose of performance when adding more nodes

Reply Threaded More More options
Print post
Permalink
Hi,

Latetly I've been playing around with equalizer quite a lot, it is a great library for 
parallelizing graphics but I have some minor problems regarding performance.

I'm doing a VR system with 4 nodes and 1 main application node (which doesn't render anything
at the moment) for a CAVE. The nodes are Intel quadcores 4GB RAM with Quadro FX 5600 and the
main node is exactly like the rest but the graphic card is a Geforce 8600 GT. All of them 
running WinXP. All conected with 1GB LAN.

I'm working with a little bit modified version of eqOSG, maybe is something related to OSG?

The weird thing is that after adding shadow maps (some more pass thru the pipe) to the program 
I noticed that when I execute it on the cluster it runs slower than when I run it on the main 
node (the one with the 8600GT) without turning on the eqServer.


This are the test results for the system.

                 ___________________________________________
                 |  WITHOUT SHADOWS   |    WITH SHADOWS    |
                 |¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯¯|
                 |         |   ONLY   |         |   ONLY   |
                 | 4 NODES | MAINNODE | 4 NODES | MAINNODE |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯ |¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯¯|
Scenery1         |         |          |         |          |
300000 vertex    |  ~60FPS |  ~60FPS  |  ~34FPS |  ~60FPS  |
1000000 triangles|         |          |         |          |
                 |         |          |         |          |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯¯|
Scenery2         |         |          |         |          |
1000000 vertex   |  ~53FPS |  ~60FPS  |  ~18FPS |  ~60FPS  |
3300000 triangles|         |          |         |          |
                 |         |          |         |          |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

I think I must be missing something, here is a compressed (and comented) version of my config
file (it is based on "5-pipe.cave.lb.eqc" ):


global
{
    EQ_WINDOW_IATTR_HINT_DECORATION    OFF
    EQ_WINDOW_IATTR_HINT_DOUBLEBUFFER  ON
}


server
{
    config
    {
        latency 0

        appNode
        {
        }

        ###########################################
        There are several NODEs like the folowing
        one 1-4 only changing IP and channel name
        ###########################################
        #NODE 1
        node
        {

            ###########################################
            I added this option so all nodes do the
            frame at the same time
            ###########################################
            attributes { thread_model DRAW_SYNC }
			
            connection { hostname "147.156.113.132" TCPIP_port 4242} 
            pipe
            {
                #FRONT
                name "GPU front"
                window
                {
                    attributes
                    {
                        hint_fullscreen    ON
                        hint_doublebuffer  ON
                    }
                    viewport [ 330 250 320 240 ]
                    channel { name "channel-front" }
                }
            }

            ... (3 NODEs MORE, almost like the one above)

        }



        compound
        {
            view_equalizer {}


            ###########################################
            There are several COMPOUNDs like the folowing
            one, changing channel name, wall cords,...
            ###########################################
            compound
            {
                channel "channel-front"
                wall
                {
                    top_left      [  0.677  0.901 -0.758 ]
                    bottom_left   [ -0.677  0.901 -0.758 ]
                    bottom_right  [ -0.677 -0.901 -0.758 ]
                }


                ###########################################
                I commented the next line because I had
                some artifacts if using it, not only in my
                application, also on eqPly and with different
                computers (the two of them with WinXP)
                I've upload an image here showing the artifacts:
                http://mural.uv.es/togarba/equalizer/foro_image.jpg
                ###########################################
#                load_equalizer {}


                ###########################################
                I added the DFR equalizer because it highly
                increased the framerate when I first tested
                it
                ###########################################
                DFR_equalizer
                {
                    framerate 60.0
                    damping 0
                }
				
                compound{ }
                compound{ channel "channel-left" outputframe{ name "left1" }}
                compound{ channel "channel-top" outputframe{ name "top1" }}
                compound{ channel "channel-right" outputframe{ name "right1"}}
                inputframe { name "left1" }
                inputframe { name "top1" }
                inputframe { name "right1" }
            }

            ... (3 COMPOUNDs MORE, almost like the one above)

        }
}

I've tried to anaylise the statistics with eqPly but I've haven't seen anything 
weird, all seems ok. Maybe I have to implement the statistics in the eqOSG
to see what is happening exactly with the shadows.

Thanks for any help,

Tomás Gª-Pozuelo
Stefan Eilemann

Re: Loose of performance when adding more nodes

Reply Threaded More More options
Print post
Permalink

On 12. Aug 2009, at 10:55, tgp wrote:

> I'm working with a little bit modified version of eqOSG, maybe is  
> something
> related to OSG?
>
> The weird thing is that after adding shadow maps (some more pass  
> thru the
> pipe) to the program
> I noticed that when I execute it on the cluster it runs slower than  
> when I
> run it on the main
> node (the one with the 8600GT) without turning on the eqServer.

[snip]

You are using scalability between the nodes. Shadowing is a global  
operation, that is, each source channel has to render the full shadow  
map. Unless addressed specifically, this kills performance since the  
rendering is no longer parallelizable.

Remark 1: Why don't you simple use a multi-view config, where each  
node only renders for itself (similar to hactar.eqc)
Remark 2: If you need scalability, configure it like 5-pipe.cave.lb.eqc


HTH,

Stefan.


_______________________________________________
eq-dev mailing list
[hidden email]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com
tgp

Re: Loose of performance when adding more nodes

Reply Threaded More More options
Print post
Permalink

> Remark 1: Why don't you simple use a multi-view config, where each  
> node only renders for itself (similar to hactar.eqc)

Great!!!!!!! I just changed the config file to be like hactar.eqc and sudenly it worked like in one node.

Each new day I'm in love a little bit more with your library ;-)

Thanks for everything,

Tomás Gª-Pozuelo