PPL Logo

conv-com/convcomlibmanager.C File Reference

Implementations of convcomlibmanager.h classes. More...

Go to the source code of this file.

Functions

 CkpvDeclare (ConvComlibManager, conv_com_object)
 The location in the global table where the converse Comlib manager is located.
 CkpvDeclare (int, comlib_handler)
 Handler to which send messages inside the comlib framework.
void * strategyHandler (void *msg)
 Method invoked upon receipt a message routed through comlib.
 CkpvDeclare (int, comlib_ready)
 Handler to accept the second acknowledgements, after which a new table can be broadcasted.
void * comlibReadyHandler (void *msg)
 Method to acknowledge the ready status.
 CkpvDeclare (int, comlib_table_received)
 Handler to count and accept the acknowledgements of table received.
void * comlibTableReceivedHandler (void *msg)
 Method invoked upon receipt of an acknowledgement of table received.
 CkpvDeclare (int, comlib_receive_table)
 Handler to broadcast all the strategies to all the processors.
void * comlibReceiveTableHandler (void *msg)
 Method invoked upon receipt of the strategy table.
 CkpvDeclare (int, RecvdummyHandle)
 Handler for dummy messages.
void recv_dummy (void *msg)
void propagate_handler_frag (void *)
 : hack for PipeBroadcastStrategy to register its handlers, fix it.
void initConvComlibManager ()
 At startup on each processor, this method is called.
StrategyConvComlibGetStrategy (int loc)
void ConvComlibScheduleDoneInserting (int loc)

Variables

int com_debug = 0


Detailed Description

Implementations of convcomlibmanager.h classes.

Strategies synchronization process:.

It also defines all the converse handlers to perform the broadcast of the strategies to all the processors (synchronization process). These routines provide this support also to the charm layer.

Author:
Sameer Kumar 28/03/04

Heavily revised, Filippo Gioachin 01/06

1) the strategies are inserted on processor 0 (and possibly in other processors with the same order. The strategies are marked as "new"

2) when ComlibDoneCreating is called, processor 0 broadcast all the new strategies to all the processors, and marks them as "inSync"

3) when a processor receives a table it updates its personal table with the incoming, it marks all the strategies just arrived as "inSync", and it sends an acknowledgement back to processor 0.

4) when an acknowledgement is received by processor 0, a counter is decremented. When it reaches 0, all the "inSync" strategies are switched to status "ready" and they can start working. All the messages in the tmplist are delivered. The sync is broadcasted.

5) when an acknowledgement is received by a processor other than 0, all the "inSync" strategies are switched to "ready" and the messages in tmplist are delivered.

6) in order to prevent two consecutive table broadcasts to interfere with each other, an additional acknowledgement is sent back by each processor to processor 0 to allow a new table update to happen.

Definition in file convcomlibmanager.C.


Generated on Fri May 25 08:00:44 2012 for Charm++ by  doxygen 1.5.5