Parallel Systems

EPPA for pvm: User Documentation

Code Instrumentation

The files & their purpose

On our LINUX system, the files are under the PARDIR directory (set to /home/parallel/software).
Or download the files from the pvm example with EPPA.
The files: The compiler needs:
    pvm, mysql : pvm and database
    parlib.a : library with the class measure
    EPPAInstrumentation.h & standardlib.h : headers for compiling

Include them in the projectfile as follow:

INCLUDEPATH    = /usr/include/g++ $(PVM_ROOT)/include $(MYSQLDIR)/include  $(PARDIR)/include
LIBS           = -L$(PVM_ROOT)/lib/LINUX -L$(MYSQLDIR)/lib -L$(PARDIR)/lib -lpar -lpvm3 -lgpvm3 -lmysqlclient
If you put the EPPA files in a different directory as your code, add this path to the INCLUDEPATH and change -L$(PARDIR)/lib into -L plus the path
 

Class EPPAProbe (see EPPAInstrumentation.h)

Start:
EPPAProbe(const string& alg_name, int machines, DO_WITH_SIMILAR_EXP doWithSimilarExp=REPLACE_IF_FASTER, int W=1, const string& comment_str = " ")
EPPAProbe();

EPPAProbe(bool activateMeasurements); 

void StartMeasuring(); void SlaveIsSpawned(int slaveTid);
Destructor:

 ~EPPAProbe();
void Stop();
Measure:

TIME EndOfPhase(int phaseType, int nbrQuantums=0, int nbrOperations=0, string comment="");
  PH_IDLE: whenever the process was idle (at blocking receive points)
PH_WORK: when the process has performed useful work
PH_PART: the partitioning of the work
PH_SYNC: for extra synchronisation overhead, specific for your parallel algorithm
TIME EndOfCommPhase(int phaseType, int commPartnerTid=-1, int nbrQuantums=0, string comment="");
Information:

int GetExperimentID(); // database experiment ID
TIME ViewExpChrono(); // time since start of experiment (us)

TIME ViewPhaseChrono(); // time of current phase (us) <>

<>See also pvm example program with EPPA

<>

<>
- Back to the top -