I think this sort of virtual world is an excellent idea.
I agree with Benjamin Johnston's idea of a unified object model where
everything consists of beads.
I notice you mentioned distributing the computation. This would
certainly be valuable in the long run, but for the first version I
would suggest having each simulation instance run on a single machine
with the fastest physics capable GPU on the market, and accepting that
it will still run slower than real time. Let an experiment be an
overnight run, and use multiple machines by running multiple
experiments at the same time. That would make the programming for the
first version more tractable.
Actually, I think it would be easier, more useful and more portable to
distribute the computation rather than trying to make it to run on a GPU.
This kind of computation is very local - objects can primarily interact
only with objects that are nearby. A straightforward distribution scheme
would be to partition the world spatially - slice up the world into
different regions and run each region on a different PC. A first version
might use a fixed partitioning, but more sophisticated versions could
have partitions that grow or shrink according to their computational
load, or could have partitions that are based on a balanced spatial
indexing scheme.
I believe that my scheme is fairly scalable - in the order of O(n log n)
(i.e., a fairly fixed local computation for each node in the graph,
including a search in a spatial index to find its nearest neighbors). My
current implementation is O(n^2) because I haven't done any indexing.
The great thing about solving distribution up front is that you improve
the performance without any development costs, simply by throwing more
computers at it. Consider, for example, that it only costs US$20/hour to
rent 100 "High CPU" computers from Amazon EC2. That is a lot of
computing power!
-Ben
-------------------------------------------
agi
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/
Modify Your Subscription:
https://www.listbox.com/member/?member_id=8660244&id_secret=126863270-d7b0b0
Powered by Listbox: http://www.listbox.com