Skip to Content.
Sympa Menu

charm - Re: [charm] [ppl] Vectors in Charm++

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] [ppl] Vectors in Charm++


Chronological Thread 
  • From: Nasim Muhammad <naseem8442 AT hotmail.com>
  • To: "'Phil Miller'" <mille121 AT illinois.edu>
  • Cc: 'Charm Mailing List' <charm AT cs.illinois.edu>
  • Subject: Re: [charm] [ppl] Vectors in Charm++
  • Date: Sun, 13 May 2012 16:29:02 -0400
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

Hi,

I am again starting my project and really would like your help. This time I
will try to include every detail. If you can provide the better approach, I
would really appreciate.

I am creating 20,000 objects initially which will grow and die over a period
of time on 8 processors. This number increases to millions over a period of
one year. Since I don't know in advance about number of objects, I am using
CkVec to store my objects. Now I know that charm++ dynamically create
objects on different processors.

Master object at processor 0 is responsible for creating all objects. My
objects which runs on different processors send signals to Master, such as
object dies or lives after some time. Once master object receives signals
from all existing objects, it deleted died objects, and create new objects.
After this it ask every object to perform various tasks and report back as
dead or alive. My objects do not communicate with each other, they
communicate with only master object.

I am also curious about few things:
I found that it creates more objects at processor 0 than compare to others.
For example, if I create 125 objects at 4 processors then 50 will be at
processor zero and 25 each on other processors (approximately). Since my
master object receives signals, is it not good to leave processor zero for
communication purpose and create objects on rest of others. But how to do
this?

If you can provide the contact number, I can call you to discuss the problem
at your convenience.

Thanks,

Nasim


> -----Original Message-----
> From:
> unmobile AT gmail.com
>
> [mailto:unmobile AT gmail.com]
> On Behalf Of Phil
> Miller
> Sent: March-23-12 11:38 AM
> To: Nasim Muhammad
> Cc: Charm Mailing List
> Subject: Re: [ppl] Vectors in Charm++
>
> On Mon, Feb 6, 2012 at 10:02, Nasim Muhammad
> <naseem8442 AT hotmail.com>
> wrote:
> > I am creating objects and storing in a vector. I don’t know in advance
> > that how many objects I need to create and there is addition and
> > deletion of those objects throughout my simulation. Therefore I can’t
> > use fixed dimensional array. Let’s say, If I create those objects on
> > processor 0 and submit my job on 4 processors then how would I
> > distribute them on other processors?
> >
> > I am looking for a sample code or something that might help. I am
> > stuck at the moment and need your help.
>
> Hi Nasim,
>
> Charm++ supports dynamically creating parallel objects and
> distributing them among the processors in a system. Unless one tells it
> specifically where to create a new chare, it actually distributes them
> across all
> available processors by default.
>
> What is the structure of your parallel algorithm? Is there a master object
> that
> spawns tasks and waits for them complete? Assuming a master-worker
> paradigm, do the worker tasks ever need to communicate with each other,
> or just the master? Will the master ever 'broadcast'
> to the existing task objects, or just communicate with them individually?
>
> The more you tell us about your planned application, the more we can be of
> help.
>
> Phil






Archive powered by MHonArc 2.6.16.

Top of Page