A Resource Management and Communication class that uses PVM for underlying support of inter-process communication and resource management
A Resource Management and Communication class that uses PVM for underlying support of inter-process communication and resource management.We *could* do cool things here...like keep track of amount of data sent, to whom, etc. We could also MWprintf ( 99, "..." ) everything that gets sent for heaps and heaps of debugging.
~MWPvmRC()
A. Resource Management Routines
void exit( int exitval )
int setup( int argc, char *argv[], int *my_id, int *master_id )
int config( int *nhosts, int *narches, MWWorkerID ***workers )
int start_worker( MWWorkerID *w )
int init_beginning_workers( int *nworkers, MWWorkerID ***workers )
workers - A pointer to an array of pointers to
MWWorkerID classes. This call will new() memory
for the MWWorkerIDs. Also, if (*w)[n]->id2 is
-1, that means that the spawn failed for
worker number n. int restart_beginning_workers( int *nworkers, MWWorkerID ***workers, MWmessages msg )
int removeWorker( MWWorkerID *w )
int read_RMstate( FILE *fp )
int write_RMstate( FILE *fp )
Other Functions to be implemented
int hostaddlogic( int *num_workers )
int do_spawn( MWWorkerID *w )
int setup_notifies( int task_tid )
int ask_for_host( int howmany, int archnum )
archnum - The arch class number to ask for. void conf()
int min( int *array, int len )
int is_master
C. Communication Routines
int initsend( int encoding = PvmDataDefault)
int send( int to_whom, int msgtag )
int recv( int from_whom, int msgtag )
int bufinfo( int buf_id, int *len, int *tag, int *from )
void who( int *id )
int pack( char *bytes, int nitem, int stride = 1 )
int pack( float *f, int nitem, int stride = 1 )
int pack( double *d, int nitem, int stride = 1 )
int pack( int *i, int nitem, int stride = 1 )
int pack( unsigned int *ui, int nitem, int stride = 1 )
int pack( short *sh, int nitem, int stride = 1 )
int pack( unsigned short *ush, int nitem, int stride = 1 )
int pack( long *l, int nitem, int stride = 1 )
int pack( unsigned long *ul, int nitem, int stride = 1 )
int pack( char *str )
int unpack( char *bytes, int nitem, int stride = 1 )
int unpack( float *f, int nitem, int stride = 1 )
int unpack( double *d, int nitem, int stride = 1 )
int unpack( int *i, int nitem, int stride = 1 )
int unpack( unsigned int *ui, int nitem, int stride = 1 )
int unpack( short *sh, int nitem, int stride = 1 )
int unpack( unsigned short *ush, int nitem, int stride = 1 )
int unpack( long *l, int nitem, int stride = 1 )
int unpack( unsigned long *ul, int nitem, int stride = 1 )
C. Some Misc Helper functions
struct condorpvm_submit_element* find_exec_class int arch
int choose_exec_class( int *tempi )
char* find_executable( int ex_cl, int ar_cl )
void sort_exec_class_ratio( int *temp )
char* exists_executable( int ex_cl, int ar_cl )
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de