[tt] [croquet-dev] Distributed Neuron in Croquet? Questions.
Eugen Leitl
<eugen at leitl.org> on
Thu Oct 25 16:54:11 UTC 2007
----- Forwarded message from zachary at distributedneuron.net -----
From: zachary at distributedneuron.net
Date: Thu, 25 Oct 2007 12:39:54 -0400
To: croquet-dev at duke.edu
Subject: Re: [croquet-dev] Distributed Neuron in Croquet? Questions.
User-Agent: Internet Messaging Program (IMP) H3 (4.1.4)
Reply-To: croquet-dev at duke.edu, zachary at distributedneuron.net
Thanks for the fast replies and honest answers! Its very much appreciated.
>If P2P multi-user interaction isn't really a
>requirement for your project, then you might want to look elsewhere.
Multi-user interaction is a definite requirement. P2P is not ideal as
a classical server-client setup would also suffice, but it is also not
a negative.
My project is distributed in nature. Classical brain simulation is
often done on a supercomputer or cluster because of the computational
requirements. I've opted to evolve smaller "brains" and distribute
the computation to volunteer clients. Each client runs on a
volunteer's ordinary PC. Each client runs a small neural network and
controls a single organism in the environment. The environment should
contain the organisms of other clients so they can interact.
Interaction is simple - moving, eating, "sensing" each other (vision,
smell, etc), reproducing.
I'm much more interested in the multi-user environment of Croquet than
the 3D capabilities. Infact, my client most likely won't even show
the 3D environment, it eats up valuable processing time. All I need
is a place that can hold organisms, allowing them to interact in a
spatial manner.
>2) You can just make sure that there is someone running the simulation.
After thinking about it, this will happen automatically. The
simulation is a product of clients participating, guaranteeing someone
will always be inside.
>Yes. But don't assume it's slow. For many activities, it isn't.
>Profile and know.
>
>However, remember the definition of the core model. The simulation
>state must be replicated on each participant, such that a snapshot gets
>everything and such that all computation provides the same answers.
>Getting C++ to do that is going to be very hard. Very hard.
I think I'm still ok, after reading about the Core model. I can
effectively treat my neural network code as a blackbox - feeding it
input and receiving output. This output (move, eat, etc) is the
"behavior" of the client and what will be sent to other clients. The
only computation that needs to be done after receiving a snapshot is
updated behavioral messages. Just like real life, organisms only need
to know superficial information about others such as their position
and appearance.
Can Squeak interface with DLLs? I could separate my neural network
code into a DLL. Squeak handles all network and environment
operations, feeding the neural network DLL inputs (spatial
information, vital statistics, etc). The DLL returns behavioral
outputs which Squeak sends to other clients.
Does this make sense? Is this possible? The biggest reason I don't
want to port my code is A) performance worries which may or may not be
an issue and B) its a ton of code I'd have to convert. I just don't
have time to rewrite 4 months of work :)
Unrelated, but the router timestamps may work in my favor. I've been
struggling with a way to keep various clients working at the same
speed. Your computer may be much faster than mine, meaning your
organism can update its behavior more often than mine. This could
impart an advantage (such as responding to threats quicker) that is
independent of the genome, allowing unfit genomes to survive longer
than the should. By controlling the timestamps I could ensure that
all clients have equal opportunity to play on the same speed.
Thanks again for the help!
-Zach
----- End forwarded message -----
--
Eugen* Leitl <a href="http://leitl.org">leitl</a> http://leitl.org
______________________________________________________________
ICBM: 48.07100, 11.36820 http://www.ativel.com http://postbiota.org
8B29F6BE: 099D 78BA 2FD3 B014 B08A 7779 75B0 2443 8B29 F6BE
More information about the tt
mailing list