PPL Logo

TempAwareCommLB Class Reference

#include <TempAwareCommLB.h>

Inheritance diagram for TempAwareCommLB:

Inheritance graph
[legend]
Collaboration diagram for TempAwareCommLB:

Collaboration graph
[legend]
void populateEffectiveFreq (int numProcs)
void initStructs (LDStats *s)
void tempControl ()
void work (LDStats *stats)
bool QueryBalanceNow (int step)

Public Member Functions

void convertToInsts ()
 TempAwareCommLB (const CkLBOptions &)
 TempAwareCommLB (CkMigrateMessage *m)

Data Fields

int procsPerNode
intfreqsEffect
intprocFreq
intprocFreqEffect
intprocFreqNewEffect
intprocFreqNew
int numProcs
int coresPerChip
intfreqs
int numAvailFreqs
int numChips
intprocFreqPtr
FILE * migFile
double starting
floatprocTemp
floatavgChipTemp

Private Types

enum  HeapCmp { GT = '>', LT = '<' }

Private Member Functions

void Heapify (HeapData *, int, int, HeapCmp)
void HeapSort (HeapData *, int, HeapCmp)
void BuildHeap (HeapData *, int, HeapCmp)
bool Compare (double, double, HeapCmp)
HeapDataBuildCpuArray (BaseLB::LDStats *, int, int *)
HeapDataBuildObjectArray (BaseLB::LDStats *, int, int *)

Friends

void printCurrentTemperature (void *LB, double curWallTime)

Data Structures

struct  HeapData
class  ObjLoadGreater
class  ObjPeCommInfo
class  PeCommInfo
class  ProcCommGreater
class  ProcLoadGreater

Detailed Description

Definition at line 11 of file TempAwareCommLB.h.


Member Enumeration Documentation

enum TempAwareCommLB::HeapCmp [private]

Enumerator:
GT 
LT 

Definition at line 44 of file TempAwareCommLB.h.


Constructor & Destructor Documentation

TempAwareCommLB::TempAwareCommLB ( const CkLBOptions  ) 

TempAwareCommLB::TempAwareCommLB ( CkMigrateMessage m  )  [inline]

Definition at line 31 of file TempAwareCommLB.h.


Member Function Documentation

void TempAwareCommLB::populateEffectiveFreq ( int  numProcs  ) 

Definition at line 264 of file TempAwareCommLB.C.

References freqs, freqsEffect, numAvailFreqs, procFreq, procFreqEffect, procFreqNew, and procFreqNewEffect.

Referenced by work().

Here is the caller graph for this function:

void TempAwareCommLB::convertToInsts (  ) 

void TempAwareCommLB::initStructs ( LDStats *  s  ) 

Definition at line 287 of file TempAwareCommLB.C.

References avgChipTemp, numChips, numProcs, procFreq, procFreqEffect, procFreqNew, procFreqNewEffect, and procTemp.

Referenced by work().

Here is the caller graph for this function:

void TempAwareCommLB::tempControl (  ) 

PLEASE COMMENT OUT .. TESTING ONLY

PLEASE COMMENT OUT .. TESTING ONLY

Definition at line 323 of file TempAwareCommLB.C.

References avgChipTemp, freqs, numAvailFreqs, numChips, numProcs, procFreq, procFreqNew, procFreqPtr, and x.

Referenced by work().

Here is the caller graph for this function:

void TempAwareCommLB::work ( LDStats *  stats  ) 

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

Definition at line 397 of file TempAwareCommLB.C.

References _lb_args, Converse::CkMyPe(), CmiAbort(), ObjGraph::convertDecisions(), ObjGraphTemp::convertToInsts(), ProcArrayTemp::convertToInsts(), CkLBArgs::debug(), ProcArray::getAverageLoad(), getPossiblePes(), ProcInfo::getProcId(), handleTransfer(), initStructs(), lower_threshold_temp, p, popFromProcHeap(), populateEffectiveFreq(), procFreq, procFreqNew, ProcArray::procs, tempControl(), stats::time(), updateLoadInfo(), upper_threshold_temp, ObjGraph::vertices, and x.

Here is the call graph for this function:

void TempAwareCommLB::Heapify ( HeapData ,
int  ,
int  ,
HeapCmp   
) [private]

void TempAwareCommLB::HeapSort ( HeapData ,
int  ,
HeapCmp   
) [private]

void TempAwareCommLB::BuildHeap ( HeapData ,
int  ,
HeapCmp   
) [private]

bool TempAwareCommLB::Compare ( double  ,
double  ,
HeapCmp   
) [private]

HeapData* TempAwareCommLB::BuildCpuArray ( BaseLB::LDStats ,
int  ,
int  
) [private]

HeapData* TempAwareCommLB::BuildObjectArray ( BaseLB::LDStats ,
int  ,
int  
) [private]

bool TempAwareCommLB::QueryBalanceNow ( int  step  )  [private]

Definition at line 173 of file TempAwareCommLB.C.


Friends And Related Function Documentation

void printCurrentTemperature ( void *  LB,
double  curWallTime 
) [friend]

Definition at line 78 of file TempAwareCommLB.C.


Field Documentation

Definition at line 22 of file TempAwareCommLB.h.

Definition at line 22 of file TempAwareCommLB.h.

Referenced by populateEffectiveFreq().

Definition at line 22 of file TempAwareCommLB.h.

Referenced by initStructs(), populateEffectiveFreq(), tempControl(), and work().

Definition at line 22 of file TempAwareCommLB.h.

Referenced by initStructs(), and populateEffectiveFreq().

Definition at line 22 of file TempAwareCommLB.h.

Referenced by initStructs(), and populateEffectiveFreq().

Definition at line 22 of file TempAwareCommLB.h.

Referenced by initStructs(), populateEffectiveFreq(), tempControl(), and work().

Definition at line 22 of file TempAwareCommLB.h.

Referenced by initStructs(), and tempControl().

Definition at line 22 of file TempAwareCommLB.h.

Definition at line 22 of file TempAwareCommLB.h.

Referenced by populateEffectiveFreq(), and tempControl().

Definition at line 22 of file TempAwareCommLB.h.

Referenced by populateEffectiveFreq(), and tempControl().

Definition at line 23 of file TempAwareCommLB.h.

Referenced by initStructs(), and tempControl().

Definition at line 23 of file TempAwareCommLB.h.

Referenced by tempControl().

Definition at line 26 of file TempAwareCommLB.h.

Definition at line 27 of file TempAwareCommLB.h.

Definition at line 29 of file TempAwareCommLB.h.

Referenced by initStructs().

Definition at line 29 of file TempAwareCommLB.h.

Referenced by initStructs(), and tempControl().


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

Generated on Mon Sep 21 08:30:37 2020 for Charm++ by  doxygen 1.5.5