Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

PsMultiThreadedPvmBenchmarkingController Class Reference

a pvm controller that uses a multi-threaded benchmarking scheduler More...

#include <PsMultiThreadedPvmBenchmarkingController.h>

Inheritance diagram for PsMultiThreadedPvmBenchmarkingController:

Inheritance graph
[legend]
Collaboration diagram for PsMultiThreadedPvmBenchmarkingController:

Collaboration graph
[legend]
List of all members.

Public Methods

 PsMultiThreadedPvmBenchmarkingController (PsObjectDescriptor &initialObjects, const PsDate &initialDate, int argc, char *argv[])
 constructor

virtual ~PsMultiThreadedPvmBenchmarkingController ()
 destructor

virtual PsnSchedulercreateScheduler ()
 redefine to create a multihtreaded scheduler


Detailed Description

a pvm controller that uses a multi-threaded benchmarking scheduler

Author:
David Margery ( last change by )
Version:

Definition at line 32 of file PsMultiThreadedPvmBenchmarkingController.h.


Constructor & Destructor Documentation

PsMultiThreadedPvmBenchmarkingController::PsMultiThreadedPvmBenchmarkingController PsObjectDescriptor   initialObjects,
const PsDate   initialDate,
int    argc,
char *    argv[]
 

constructor

Parameters:
numberOfThreads the number of threads to create

Definition at line 22 of file PsMultiThreadedPvmBenchmarkingController.cxx.

References PsDate.

00025                                                                                                     : 
00026    PsPvmBenchController<PsMultiThreadedPvmController>(initialObjects,
00027                                                       initialDate,
00028                                                       argc,
00029                                                       argv)
00030 {
00031 
00032 }

PsMultiThreadedPvmBenchmarkingController::~PsMultiThreadedPvmBenchmarkingController   [virtual]
 

destructor

Definition at line 34 of file PsMultiThreadedPvmBenchmarkingController.cxx.

00035 {
00036 
00037 }


Member Function Documentation

PsnScheduler * PsMultiThreadedPvmBenchmarkingController::createScheduler   [virtual]
 

redefine to create a multihtreaded scheduler

Reimplemented from PsPvmBenchController< PsMultiThreadedPvmController >.

Definition at line 39 of file PsMultiThreadedPvmBenchmarkingController.cxx.

References PsPvmBenchController< PsMultiThreadedPvmController >::_completeDurationTab, PsPvmBenchController< PsMultiThreadedPvmController >::_demarshallingDurationTab, PsBenchController< PsMultiThreadedPvmController >::_endSamplingDate, PsBenchController< PsMultiThreadedPvmController >::_file, PsPvmBenchController< PsMultiThreadedPvmController >::_marshallingDurationTab, PsController::_nbStepsByCycle, PsPvmBenchController< PsMultiThreadedPvmController >::_networkReceiveDurationTab, PsPvmBenchController< PsMultiThreadedPvmController >::_networkSendDurationTab, PsBenchController< PsMultiThreadedPvmController >::_numberOfSamples, PsBenchController< PsMultiThreadedPvmController >::_sampleIndex, PsBenchController< PsMultiThreadedPvmController >::_startSamplingDate, PsPvmBenchController< PsMultiThreadedPvmController >::_stepDurationTab, PsController::_stepPeriod, PsController::initialSimulationDate, and vector< long >::resize().

00040 {
00041    PsnScheduler * res ;
00042 
00043    if (_startSamplingDate<PsController::initialSimulationDate) 
00044       {
00045          _startSamplingDate=PsController::initialSimulationDate;
00046          cout<<"PsBenchController::WARNING : no values before PsController::initialSimulationDate ("
00047              <<PsController::initialSimulationDate<<")"<<endl;
00048       }
00049 
00050    _numberOfSamples = (_endSamplingDate-_startSamplingDate)/_stepPeriod + 1;
00051 
00052    if ( _file != NULL ) 
00053       {
00054          res = new PsnMultiThreadedBenchmarkingScheduler(_nbStepsByCycle, 
00055                                                          _numberOfThreads, 
00056                                                          true, 
00057                                                          _sampleIndex, 
00058                                                          _numberOfSamples,
00059                                                          *_file) ;
00060       }
00061    else 
00062       {
00063          res = new PsnMultiThreadedBenchmarkingScheduler(_nbStepsByCycle, 
00064                                                          _numberOfThreads, 
00065                                                          true,
00066                                                          _sampleIndex, 
00067                                                          _numberOfSamples, 
00068                                                          cout ) ;
00069       }
00070 
00071 
00072    _stepDurationTab.resize(_numberOfSamples) ;
00073 
00074    _completeDurationTab.resize(_numberOfSamples) ;
00075 
00076    _networkReceiveDurationTab.resize(_numberOfSamples) ;
00077 
00078    _networkSendDurationTab.resize(_numberOfSamples) ;
00079 
00080    _demarshallingDurationTab.resize(_numberOfSamples) ;
00081 
00082    _marshallingDurationTab.resize(_numberOfSamples) ;
00083 
00084    return res ;
00085 
00086 }


The documentation for this class was generated from the following files:
logo OpenMask

Documentation generated on Mon Nov 25 15:26:14 2002

Generated with doxygen 1.2.12 by Dimitri van Heesch ,   1997-2001