Re: distributed processing ad multiThreading
Re: distributed processing ad multiThreading
- Subject: Re: distributed processing ad multiThreading
- From: Drew McCormack <email@hidden>
- Date: Mon, 17 Sep 2001 14:13:46 +0200
Usually with a distributed architecture you would make use of a library
like PVM or MPI for this sort of task:
http://www.epm.ornl.gov/pvm/pvm_home.html
http://www-unix.mcs.anl.gov/mpi/
These libraries simply provide functions that facilitate communication
between processes. You basically start a separate copy of the program
running on each 'node' and branching (ie standard if's) lead each
process to perform one part of the task at hand.
Even if you decide not to go with one of these standard solutions, you
would probably still end up doing something similar, ie, starting a
separate copy of the program on each node, using UNIX, and having them
communicate by whatever means you decide upon. In this approach, you
wouldn't actually need to use NSThread or something equivalent, because
you simply start a separate copy of the program running on each machine;
each copy is really a separate thread.
Maybe there are trickier ways of doing it, but i doubt they are as
simple or efficient.
Drew McCormack
On Monday, September 17, 2001, at 12:34 , Robert S Goldsmith wrote:
Hi everyone :)
I have a little problem and am not sure the best way to go about it
best in ObjC.
My work is in evolutionary programming, an area of research in which
the programs being written and run have usually got a few distinct
characteristics:
1) There is a 'population' of entities (instances of an object). For my
work, usually only about 5 or 6 (although sometimes there can be
thousands).
2) In base level systems, every one of these entities must be
'evaluated' and given a score on every process step (known as a
generation).
3) Evaluation is a HUGE processing requirement. As an example, some of
my recent work takes over 8 hours to complete only about 10000
generations - and that's in optimised C.
4) There are a huge number of generations needed to solve the problems
being set the system.
5) This is the real problem point - every generation, almost all of the
entities have to be changed. That is, their internal structure is
redesigned based on the 'winner' of the last generation.
The problem I have is that I would like to try and parallelise the
evaluation process.
I have two options. I have access to a 4 processor solaris machine and
a duel processor G4 if I want to try threading in an SMP enviroment and
I have access to about 120 solaris workstations if I want to go for
distributed processing.
SMP I don't think will be much of a problem to try - except the Apple
docs on NSThread etc. are a little thin on the ground. However, with
the distributed processing, how would i go about:
1) launching 'threads' on all the machines
2) getting them to communicate small and large abounts of data
As you can understand, I do not want a huge overhead because time is an
important concideration.
I hope someone can help :)
Thankyou
Robert
_______________________________________________
cocoa-dev mailing list
email@hidden
http://www.lists.apple.com/mailman/listinfo/cocoa-dev