Hi!

 

In the CVS of OpenSG 1.8 you will find the Tutorial 28. It is a source Code 
which will show you how to build a simple SortLast application.

SortFirst should work the same way I think. But you don't set a composer for 
this, you set optional compression.

 

Below I have extracted some code for you from that tutorial. The rest of that 
is like in the starte guide with for example multi display. Instead of the 
PipelineComposer class you can also 

use the BinarySwapComposer class How they work is described in the thesis of M. 
Roth (and I think also in the paper). If last not:

 

Pipeline: does what it says. The servers give there results to one next server 
until the last one has everyting.

BinarySwap: pairs of servers exchange parts of their final image. So the 
composing works parallel.

 

Above I got working with Fedora Core 4. On Linux it can be nessessary to make 
your own build. 

 

greetings

Marcus

 

some of the code

__________________

    SortLastWindowPtr mwin= SortLastWindow::create();

 

    // all changes must be enclosed in beginEditCP and endEditCP

    // otherwise the changes will not be transfered over the network.

    beginEditCP(mwin);

                //---don't forget to add your servers

 

    // Set the composer to use

    

    mwin->setComposer(PipelineComposer::create());

    

    // window size

    mwin->setSize(300,300);

 

    // Create/set the client window that will display the result

    

    GLUTWindowPtr clientWindow = GLUTWindow::create();

    

    beginEditCP(clientWindow);

    glutReshapeWindow(300,300);

    clientWindow->setId(winid);

    clientWindow->init();

    endEditCP(clientWindow);

    

    clientWindow->resize(300,300);

    

    // Set the client window that will display the result

    mwin->setClientWindow(clientWindow);

    

    // end edit of cluster window

    endEditCP(mwin);

 

    // create default scene

    if(scene == NullFC)

    {

        scene = makeNodeFor(Group::create());

        beginEditCP(scene);

        scene->addChild(makeTorus(.5, 2, 16, 16));

        scene->addChild(makeCylinder(1, .3, 8, true, true, true));

        endEditCP(scene);

    }

    

    // create the SimpleSceneManager helper

    mgr = new SimpleSceneManager;

 

    // tell the manager what to manage

    mgr->setWindow(mwin );

    mgr->setRoot  (scene);

 

    // show the whole scene

    mgr->showAll();

    

    // initialize window

    mwin->init();

    

    // GLUT main loop

    glutMainLoop();

 

 

Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Pablo Carneiro 
Elias
Gesendet: Montag, 14. Mai 2007 03:52
An: [email protected]
Betreff: Re: [Opensg-users] About OpenSG clustering

 

Hi Marcus and Rieche,

I´ve read many things about OpenSG clustering, Multi-Threading support, 
Aspects, ChangeLists and stuff... Everything is quite simple to understand 
since everything is very well planned and done. But I still have a question 
about OpenSG clustering that you or someone may come to answer. 

Here´s the issue: 

I´ve found many things about how to build a simple clustering app using OpenSG, 
there is many examples available including one at OpenSG starter guide. But all 
these examples show only how to replicate the whole data to all rendering nodes 
(servers), and in these cases each display is a single display (each server 
renders to a independent display) . 
But I couldn´t find how can I set my model to be split into pieces and each of 
them sent to a different rendering server, so each server can render a small 
part of the full model, and then the final image can be composed using frame 
buffer information (for any detph composition it may be needed). I want to know 
if there is any tutorial or example of how can I do this with OpenSG. I think 
it is possible to be done by OpenSG because this article I´ve read, writen by 
Marcus Roth himself (Multi-Threading and Clustering for Scene Graph Systems), 
said it is possible: 

 "The described system supports this kind of distribution
 as well. This can be done through smart
 handling of the ChangeLists, splitting them and
 sending only the parts that are necessary for every 
 specific cluster machine." 

I know I can only split things at Field level of Field container... so I would 
have to set my model to have the geometry split into many different fields so 
it can be possible?... 
I´m not totally sure if I can program it yet.... If anyone has any doc or 
tutorial explaining that would be great. 

Thanks

2007/5/13, Pablo Carneiro Elias < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 
>:

Thank you very much Marcus, it is of great help, it is a gold mine for me, 
thanks! 

2007/5/13, Rieche, Marcus <[EMAIL PROTECTED]>:

        Hi!

         

        Here is the thesis from M Roth. It wasn't linked on the page postet 
before (the other documents need special access. Can't access them). But it is 
in german.

        You will find there much theory about the methods used in OpenSG. 
Especially SortFirst, SortLast and how to communicate in a cluster. Don't know 
which paper it was but there was a one with a short explanation in english.

         

        The field concept is explained in this paper. 
http://www.lsi.usp.br/~mkzuffo/PSI5787/opensg/Reiners_Basics.pdf 
<http://www.lsi.usp.br/%7Emkzuffo/PSI5787/opensg/Reiners_Basics.pdf> 

         

        Okay most can be found with google scholar.

         

        Greetings

         

        Marcus Rieche

         

        Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Pablo 
Carneiro Elias
        Gesendet: Samstag, 12. Mai 2007 22:21
        An: [email protected]
        Betreff: Re: [Opensg-users] About OpenSG clustering

         

        Hi Carsten, I thank you very much for the information. I´ll start 
studying from these two classes (RemoteAspect and ChangeLlist) and I´ll 
probably have many questions soon. Thanks!
        []´s Pablo.

        2007/5/12, Carsten Neumann <[EMAIL PROTECTED]>:

                Hello Pablo,
        
        Pablo Carneiro Elias wrote:
        > Hi Everyone. I need some support from anyone who deeply understand 
OpenSG
        > clustering algorithms and strategies.
        
        hm, I'm not that deeply familiar with the cluster code, but I know how 
        it works in principle.
        
        > Here´s the issue: I´m working on a big project together with my 
university
        > and we have a demand for real time simulations using a lot of
        > geometry (about 1 or 2 million triangles at least)  that changes all 
the 
        > time (due to the simulations) and should necessarily run on a cluster.
        >
        > Once we´re willing to use OpenSG as the scenegraph (among other 
things,
        > also
        > because of the clustering native support of OpenSG), my task is to 
analyze 
        > the efficiency of the clustering algorithms and strategies of OpenSG. 
I
        > need
        > to study what happens behind the magic of OpenSG clustering (how the
        > data is
        > transfered, including protocol details, the strategy of data sharing 
- 
        > whether or not the whole geometry is sent every time even if just a 
small
        > part of it is changed)...
        
        The basic unit for OpenSG to track changes is a Field. So if you modify
        a single vertex or all of them does not matter, the whole field is 
        considered changed. Consequently if only parts of a large model change
        these parts should be put into a Geometry core by themselves.
        What OpenSG does to make clustering work is the same it does to get
        multithread suppport: It records changes to fields and transmits those 
        changes over the wire (the RemoteAspect does this, see
        Source/System/Cluster/Base/OSGRemoteAspect.{h,cpp}, changes are recorded
        in the change list for the aspect, see
        Source/System/FieldContainer/OSGChangeList.{h,cpp}) 
        
        > I know the first thing I should do in order to get all this 
information is
        > to open OpenSG source code and to study it (I´m doing it by now), but 
since
        > my time is VERY short (the report must be ready in 3 days, and the 
task was 
        > assigned to me yesterday), I need any document that can help me to 
achieve
        > my goal of analyzing things behind OpenSG clustering (hard code 
details). I
        > need any benchmark document or algorithm analysis document or 
anything. Any 
        > help will be very welcome.
        
        AFAIK Marcus Roth has written most of the cluster code and published a
        number of papers on the topic (here is a list, but the documents can not
        be downloaded from that site: http://www.igd.fhg.de/~mroth/ 
<http://www.igd.fhg.de/%7Emroth/> ). Sorry, I
        don't have any download links to these.
        
        > Thank you very much. I hope anyone can help me on anything (any 
explanation
        > about any detail of OpenSG clustering will be very welcome to).
        
        I know it's not exactly what you were asking for, but I'll try to
        regularly check my inbox over the weekend, so if you have any specific 
        questions, feel free to ask.
        
                Good luck with your report,
                        Carsten
        
        
-------------------------------------------------------------------------
        This SF.net email is sponsored by DB2 Express 
        Download DB2 Express C - the FREE version of DB2 express and take
        control of your XML. No limits. Just data. Click to get it now.
        http://sourceforge.net/powerbar/db2/ 
        _______________________________________________
        Opensg-users mailing list
        [email protected]
        https://lists.sourceforge.net/lists/listinfo/opensg-users

         

        
        
-------------------------------------------------------------------------
        This SF.net email is sponsored by DB2 Express
        Download DB2 Express C - the FREE version of DB2 express and take
        control of your XML. No limits. Just data. Click to get it now. 
        http://sourceforge.net/powerbar/db2/
        _______________________________________________
        Opensg-users mailing list 
        [email protected]
        https://lists.sourceforge.net/lists/listinfo/opensg-users

 

 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to