So what you are looking for is an MPI extension API that let's you say "migrate me from my current node to node <foo>"? Or do you have a rank that is the "master" that would order "move rank N to node <foo>"?
Either could be provided, I imagine - just want to ensure I understand what you need. Can you pass along a brief description of the syntax and functionality you would need? On Nov 10, 2011, at 8:27 AM, Mudassar Majeed wrote: > > Thank you for your reply. In our previous publication, we have figured it out > that run more than one processes on cores and balancing the computational > load considerably reduces the total execution time. You know the > MPI_Graph_create function, we created another function MPI_Load_create that > maps the processes on cores such that balance of computational load can be > achieved on cores. We were having some issues with increase in communication > cost due to ranks rearrangements (due to MPI_Comm_split, with color=0), so in > this research work we will see how can we balance both computation load on > each core and communication load on each node. Those processes that > communicate more will reside on the same node keeping the computational load > balance over the cores. I solved this problem using ILP but ILP takes time > and can't be used in run time so I am thinking about an heuristic. That's why > I want to see if it is possible to migrate a process from one core to another > or not. Then I will see how good my heuristic will be. > > thanks > Mudassar > > From: Jeff Squyres <jsquy...@cisco.com> > To: Mudassar Majeed <mudassar...@yahoo.com>; Open MPI Users > <us...@open-mpi.org> > Cc: Ralph Castain <r...@open-mpi.org> > Sent: Thursday, November 10, 2011 2:19 PM > Subject: Re: [OMPI users] Process Migration > > On Nov 10, 2011, at 8:11 AM, Mudassar Majeed wrote: > > > Thank you for your reply. I am implementing a load balancing function for > > MPI, that will balance the computation load and the communication both at a > > time. So my algorithm assumes that all the cores may at the end get > > different number of processes to run. > > Are you talking about over-subscribing cores? I.e., putting more than 1 MPI > process on each core? > > In general, that's not a good idea. > > > In the beginning (before that function will be called), each core will have > > equal number of processes. So I am thinking either to start more processes > > on each core (than needed) and run my function for load balancing and then > > block the remaining processes (on each core). In this way I will be able to > > achieve different number of processes per core. > > Open MPI spins aggressively looking for network progress. For example, if > you block in an MPI_RECV waiting for a message, Open MPI is actively banging > on the CPU looking for network progress. Because of this (and other > reasons), you probably do not want to over-subscribe your processors > (meaning: you probably don't want to put more than 1 process per core). > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > >