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