[Verse-dev] Verse and HPVM

Emil Brink emil at obsession.se
Thu Feb 17 08:37:50 CET 2005


On Wed, 16 Feb 2005 14:21:46 -0600
"Baldridge, Timothy" <tbaldridge at alertacademy.com> wrote:

> Basically what I am interested in, is the ability to form some type of
> abstraction to the normal message passing interface. My goal, is to come
> as close to the fork() command, but on a cluster . But what I would be
> interested in using Verse for, is for syncing data across various
> machines. 

Hm... Okay, I can see why you need to sync data, but not quite see how
the way Verse does it would suit your needs. You are aware that the
existing (reference) code for Verse assumes the existance of a server
("host"), to which all clients need to actively connect?

> I had understood that when a modification was made on one machine, it
> was synced automatically across all the machines.

Almost, but only if you, um do it right. The Verse API does not give you
objects which you can modify and then automatically generate the data
traffic necessary to sync it, it's more low-level than that. You actually
(as a client) ask the server to change the object (=the node) contents,
manually.

For instance, in the case of geometry data, you don't just change the
value of a vertex position locally, in fact you never do that. When you
want a vertex to move to a new position, you explicitly tell the server
by calling the verse_send_g_vertex_set_xyz() function. The server checks
that the parameters make sense, and if it agrees it updates the vertex'
position and sends the same command in response to all clients who are
subscribers to the layer in which the vertex resides.

Of course it's possible to present client code with a different API or
just plain data, and do the required synchronization behind the curt-
ains (there is a Uni-Verse project called "Purple" that does something
closer to that), but it's not something the API does for you.

> This is something that would be very useful for HPVM, because it would
> basically allow me to throw out the network code I currently use and
> focus on the higher level routines. Just as verse allows multiple users
> to all manipulate the same data as if they were on one machine, so
> HPVM tries to allow multiple processes to exist as if they were on the
> same machine. 

I suppose it could, but it really seems like a very ill fit between
available technology (=Verse) and application (=HPVM). Verse is very
good at creating the illusion of a shared workspace (or even a shared
memory space, if you will) but it does so by implementing an entierly
different model, that of nodes that hold data in a certain model.

> Where would I find out more information about the blob and tag data?
> The verse documentation is rather skimpy.

Sorry about that, it's an ongoing quest. The best documentation is the
spec that Gert linked to, the text about tags is here:
<http://www.blender.org/modules/verse/verse-spec/nodes.html#AEN116>,
and also (in good old open source tradition) the source code, more
specifically the verse.h header which presents the API. You can see
it in CVS here, for instance:

<http://projects.blender.org/viewcvs/viewcvs.cgi/verse/verse.h?rev=1.19&cvsroot=verse&content-type=text/vnd.viewcvs-markup>

Thanks for your interest and quick feedback.

Regards,

/Emil


More information about the Verse-dev mailing list