Newsgroups: comp.parallel
From: mike@godzilla.zeta.org.au (Mike Thompson)
Subject: Help need
Organization: Kralizec Dialup Internet Sydney, +61-2-837-1183 V.32bis
Date: 21 Sep 1995 18:04:22 GMT
Message-ID: <43s9f6$qrr@usenet.srv.cis.pitt.edu>

Hi,

I need of a bit of broad direction on the sort of parallel solution I
require. I know *nothing* about the area and would like to know where
I should be looking, who to speak to - that sort of stuff.

A quick problem description follows ....

I am using genetic algorithms to find optimal schedules (given various
constrains).

Genetic algorithms require repeated  execution of a fitness
function. Each time this fitness function is called the genetic
algorithm supplies it with a candidate solution (schedule). It is the
job of this fitness function to return a value indicating the merit
(fitness) of the solution (schedule). The genetic algorithm uses this
returned value to move toward optimal schedules - ie. those schedules
which yield the largest return value from the fitness function.

The cost of calling the objective function to evaluate the merit of a
schedule is expensive (CPU-wise and, as a result, time-wise) - it can
take from 1sec to 45secs on a 100Mhz Pentium. Currently, calls to the
objective function are done serially but this yields a system that is
way too slow.

The structure of my genetic algorithm allows many, many (up to, say,
1000) calls to the objective function to be done in parallel - BUT
this is what I don't know how to do.

I'm dreaming of an array of a thousand 80386 chips, each able to
evaluate, in parallel, a call to the objective function. Err, now back
to reality ...

So what is possible ? I would be happy to get just 10 process working
in parallel (100 would be better). 

I guess, the other important thing is my hardware/OS environment which
is IBM-PC/MS-Windows. (Although I will consider any alternative - the
solution is more important than the platform)

Being able to executes a given thread on a given process would be
great. Or alternatively, if I could execute a whole program on a given
processor that would be ok (provided it could exchange data with its
invoker - , say, via disk files). This last option ends up sounding
like networked PCs ... Ummm.

I have heard of Transputers - should I be following this up ? 

Any help will be greatly appreciated.
Mike.

-----------------------------------------------------------------------
Michael Thompson     email:     miket@zeta.org.au
                     voice:     +61 0414 514 415
                     Geography: Sydney, Australia

