• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: distributed processing ad multiThreading
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: distributed processing ad multiThreading
      • From: Robert S Goldsmith <email@hidden>
References: 
 >distributed processing ad multiThreading (From: Robert S Goldsmith <email@hidden>)

  • Prev by Date: Re: distributed processing ad multiThreading
  • Next by Date: Re: distributed processing ad multiThreading
  • Previous by thread: Re: distributed processing ad multiThreading
  • Next by thread: Re: distributed processing ad multiThreading
  • Index(es):
    • Date
    • Thread