<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Thank you so much for your quick answer... I just didnt send the
batcher.c file... :-)<br>
<br>
Anyway... I got the idea... You guys are great!<br>
<br>
[]s<br>
Ronald<br>
<br>
Rusty Lusk escreveu:
<blockquote cite="mid:B3CB3FE0-25CD-462D-84D8-3956FDD832A0@mcs.anl.gov"
 type="cite">Hi Ronald,
  <br>
  <br>
As it happens, I have just written an MPI application that does *sort
of* what you have in mind.&nbsp;&nbsp; It uses a load-balancing library called
ADLB that was developed for another purpose, which is where the MPI
part is, but this little application might do what you need.&nbsp;&nbsp; It takes
a file of shell commands (for example, instances of your CPU-intensive
sequential program) and runs them separately but in parallel as part of
a single MPI job.&nbsp;&nbsp; I am attaching the README, which has instructions
and a simple example.
  <br>
  <br>
Regards,
  <br>
Rusty Lusk
  <br>
  <br>
  <pre wrap="">
<hr size="4" width="90%">






On Monday,Aug 17, 2009, at 8:22 AM, <a class="moz-txt-link-abbreviated" href="mailto:ronald@audaces.com.br">ronald@audaces.com.br</a> wrote:



<blockquote type="cite">Hi all,



This is my first message to this mailing list. Im just entering this world of

MPI and MPICH seems to be a wonderful implementation from what Ive seen till

now.



My subject is not really into MPICH itself buf a more general MPI application

design. So... I hope you experts at MPI/MPICH can help me.



Well... lets go to the problem:



In our company, we a have a CPU intesive algorithm that we already run on a

multi-process "manually controlled" (not MPI) environment. The core algorithm

is a thirdy party library (not parallel) so, we dont have access to the code in

order to implement paralellism on the algorithm itself.



But we can see it as a candidate for MPI if we look at the problem at an higher

level: A set of problems that can be solved concurrently by this algorithm...

The paralellismm consists of solving each problem in parallel. Each "run" of

the serial algorithm in a process. And of course we get all the message passing

mechanism (that is a big problem regarding parallel applications and MPI handles

it very well).



We plan to use it like this: Every machine on the network will provide its

processors to the Cluster (one machine gives 1, others 2, others 4 processors)

in every processor we should run one problem at a time. A central processing

unit will coordinate (and collect) the results and manage the processes (using

MPI).



An example: My problem consists of 100 problems to be solved and... on my

network I have 10 processing unit (processors on slave machines). Lets say we

want to run our algorith (an heuristic procedure) for 10 minutes for each

problem. Our controller will for each problem:

- See if there is a free Processor.

- Send the problem to this processor so that it can compute its solution

- Recieve back its solution and keep it.

- Repeat till the 100 problems are solved.

In this case it will take 100 min. to solve all the 100 problems. (10 mins for

each 10 parallel workers, if it weren't in parallel it would take 1000 min.)



This is the kind of paralellism that we need. I though of a lot of ways to solve

it but I would like to hear what do you guys think.



At this time of my studies I'm tending to do it this way:

- The controlling unit is a server that accepts connections.

- For every new process it needs, it launches (mpiexec) a new process to

proccess it, passing the connection as a parameter to the executor.

- the executor communicates the progress through mpi to the server.

- The it goes till the end;





What do you guys think. Any help will be appreciated... Im really stuck by my

lack of experience on choosing the way to go.



Thanks in advance.



Ronald







</blockquote>

  </pre>
</blockquote>
<br>
</body>
</html>