Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
changeset 69:11bfe9d136ed
removed warnings
| author | Merten Sach <msach@mailbox.tu-berlin.de> |
|---|---|
| date | Wed, 11 May 2011 16:13:24 +0200 |
| parents | 9c3107044f86 |
| children | f9b60012fd74 5ff1631c26ed |
| files | CoreLoop.c MasterLoop.c VMS.c VMS.h VMS__DESIGN_NOTES.txt |
| diffstat | 5 files changed, 101 insertions(+), 19 deletions(-) [+] |
line diff
1.1 --- a/CoreLoop.c Sat Nov 20 08:19:05 2010 +0100 1.2 +++ b/CoreLoop.c Wed May 11 16:13:24 2011 +0200 1.3 @@ -8,7 +8,6 @@ 1.4 #include "VMS.h" 1.5 #include "Queue_impl/BlockingQueue.h" 1.6 1.7 -#include <stdio.h> 1.8 #include <stdlib.h> 1.9 #include <time.h> 1.10 1.11 @@ -50,7 +49,7 @@ 1.12 gate.preGateProgress = 0; 1.13 gate.waitProgress = 0; 1.14 gate.exitProgress = 0; 1.15 - _VMSMasterEnv->workStealingGates[ thisCoresIdx ] = &gate;//race @startup 1.16 + _VMSMasterEnv->workStealingGates[ thisCoresIdx ] = (GateStruc*)&gate;//race @startup 1.17 1.18 //wait until signalled that setup is complete 1.19 pthread_mutex_lock( &suspendLock );
2.1 --- a/MasterLoop.c Sat Nov 20 08:19:05 2010 +0100 2.2 +++ b/MasterLoop.c Wed May 11 16:13:24 2011 +0200 2.3 @@ -87,7 +87,7 @@ 2.4 volatile VirtProcr *volatileMasterPr; 2.5 2.6 volatileMasterPr = animatingPr; 2.7 - masterPr = volatileMasterPr; //used to force re-define after jmp 2.8 + masterPr = (VirtProcr*)volatileMasterPr; //used to force re-define after jmp 2.9 2.10 //First animation of each MasterVP will in turn animate this part 2.11 // of setup code.. (VP creator sets up the stack as if this function 2.12 @@ -114,10 +114,10 @@ 2.13 #endif 2.14 //======================================================================== 2.15 2.16 - masterEnv = _VMSMasterEnv; 2.17 + masterEnv = (MasterEnv*)_VMSMasterEnv; 2.18 2.19 //GCC may optimize so doesn't always re-define from frame-storage 2.20 - masterPr = volatileMasterPr; //just to make sure after jmp 2.21 + masterPr = (VirtProcr*)volatileMasterPr; //just to make sure after jmp 2.22 thisCoresIdx = masterPr->coreAnimatedBy; 2.23 readyToAnimateQ = masterEnv->readyToAnimateQs[thisCoresIdx]; 2.24 schedSlots = masterEnv->allSchedSlots[thisCoresIdx];
3.1 --- a/VMS.c Sat Nov 20 08:19:05 2010 +0100 3.2 +++ b/VMS.c Wed May 11 16:13:24 2011 +0200 3.3 @@ -118,7 +118,7 @@ 3.4 //======================================================================== 3.5 3.6 //===================== Only VMS__malloc after this ==================== 3.7 - masterEnv = _VMSMasterEnv; 3.8 + masterEnv = (MasterEnv*)_VMSMasterEnv; 3.9 3.10 //Make a readyToAnimateQ for each core loop 3.11 readyToAnimateQs = VMS__malloc( NUM_CORES * sizeof(VMSQueueStruc *) ); 3.12 @@ -153,7 +153,7 @@ 3.13 //============================= MEASUREMENT STUFF ======================== 3.14 #ifdef STATS__TURN_ON_PROBES 3.15 _VMSMasterEnv->dynIntervalProbesInfo = 3.16 - makePrivDynArrayOfSize( &(_VMSMasterEnv->intervalProbes), 200); 3.17 + makePrivDynArrayOfSize( (void***)&(_VMSMasterEnv->intervalProbes), 200); 3.18 3.19 _VMSMasterEnv->probeNameHashTbl = makeHashTable( 1000, &VMS__free ); 3.20 3.21 @@ -767,7 +767,7 @@ 3.22 SchedSlot ***allSchedSlots; //ptr to array of ptrs 3.23 3.24 //Before getting rid of everything, print out any measurements made 3.25 - forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, &printHist ); 3.26 + forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, (DynArrayFnPtr)&printHist ); 3.27 //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, &freeHistExt ); 3.28 #ifdef MEAS__TIME_PLUGIN 3.29 printHist( _VMSMasterEnv->reqHdlrLowTimeHist ); 3.30 @@ -849,7 +849,7 @@ 3.31 void 3.32 VMS__throw_exception( char *msgStr, VirtProcr *reqstPr, VMSExcp *excpData ) 3.33 { 3.34 - printf(msgStr); 3.35 + printf("%s",msgStr); 3.36 fflush(stdin); 3.37 exit(1); 3.38 }
4.1 --- a/VMS.h Sat Nov 20 08:19:05 2010 +0100 4.2 +++ b/VMS.h Wed May 11 16:13:24 2011 +0200 4.3 @@ -17,6 +17,7 @@ 4.4 #include "Hash_impl/PrivateHash.h" 4.5 #include "vmalloc.h" 4.6 4.7 +//#include <stdio.h> 4.8 #include <pthread.h> 4.9 #include <sys/time.h> 4.10 4.11 @@ -50,7 +51,7 @@ 4.12 #define DEBUG2( bool, msg, p1, p2) \ 4.13 // if(bool) {printf(msg, p1, p2); fflush(stdin);} 4.14 4.15 -#define ERROR(msg) printf(msg); fflush(stdin); 4.16 +#define ERROR(msg) printf(msg); //fflush(stdin); 4.17 #define ERROR1(msg, param) printf(msg, param); fflush(stdin); 4.18 #define ERROR2(msg, p1, p2) printf(msg, p1, p2); fflush(stdin); 4.19 4.20 @@ -76,7 +77,7 @@ 4.21 //========================= Hardware related Constants ===================== 4.22 //This value is the number of hardware threads in the shared memory 4.23 // machine 4.24 -#define NUM_CORES 4 4.25 +#define NUM_CORES 8 4.26 4.27 // tradeoff amortizing master fixed overhead vs imbalance potential 4.28 // when work-stealing, can make bigger, at risk of losing cache affinity 4.29 @@ -401,21 +402,46 @@ 4.30 4.31 4.32 #define MEAS__SUB_CREATE /*turn on/off subtraction of create from plugin*/ 4.33 + 4.34 +//VPThread 4.35 #define createHistIdx 1 4.36 #define mutexLockHistIdx 2 4.37 #define mutexUnlockHistIdx 3 4.38 #define condWaitHistIdx 4 4.39 #define condSignalHistIdx 5 4.40 4.41 +//VCilk 4.42 +#define spawnHistIdx 1 4.43 +#define syncHistIdx 2 4.44 + 4.45 +//SSR 4.46 +#define SendFromToHistIdx 1 4.47 +#define SendOfTypeHistIdx 2 4.48 +#define ReceiveFromToHistIdx 3 4.49 +#define ReceiveOfTypeHistIdx 4 4.50 + 4.51 4.52 #define MakeTheMeasHists \ 4.53 _VMSMasterEnv->measHistsInfo = \ 4.54 - makePrivDynArrayOfSize( &(_VMSMasterEnv->measHists), 200);\ 4.55 - makeAMeasHist( createHistIdx, "Create", 50, 0, 200 ) \ 4.56 - makeAMeasHist( mutexLockHistIdx, "mutex lock", 50, 0, 100 ) \ 4.57 - makeAMeasHist( mutexUnlockHistIdx, "mutex unlock", 50, 0, 100 ) \ 4.58 - makeAMeasHist( condWaitHistIdx, "cond wait", 50, 0, 100 ) \ 4.59 - makeAMeasHist( condSignalHistIdx, "cond signal", 50, 0, 100 ) 4.60 + makePrivDynArrayOfSize( (void***)&(_VMSMasterEnv->measHists), 200);\ 4.61 + makeAMeasHist( spawnHistIdx, "Spawn", 50, 0, 200 ) \ 4.62 + makeAMeasHist( syncHistIdx, "Sync", 50, 0, 200 ) 4.63 + 4.64 +// makeAMeasHist( createHistIdx, "Create", 50, 0, 100 ) \ 4.65 +// makeAMeasHist( mutexLockHistIdx, "mutex lock", 50, 0, 100 ) \ 4.66 +// makeAMeasHist( mutexUnlockHistIdx, "mutex unlock", 50, 0, 100 ) \ 4.67 +// makeAMeasHist( condWaitHistIdx, "cond wait", 50, 0, 100 ) \ 4.68 +// makeAMeasHist( condSignalHistIdx, "cond signal", 50, 0, 100 ) 4.69 + 4.70 +// makeAMeasHist( SendFromToHistIdx, "SendFromTo", 50, 0, 100 ) \ 4.71 +// makeAMeasHist( SendOfTypeHistIdx, "SendOfType", 50, 0, 100 ) \ 4.72 +// makeAMeasHist( ReceiveFromToHistIdx,"ReceiveFromTo", 50, 0, 100 ) \ 4.73 +// makeAMeasHist( ReceiveOfTypeHistIdx,"ReceiveOfType", 50, 0, 100 ) 4.74 + 4.75 + 4.76 +//=========================================================================== 4.77 +//VPThread 4.78 + 4.79 4.80 #define Meas_startCreate \ 4.81 int32 startStamp, endStamp; \ 4.82 @@ -462,6 +488,63 @@ 4.83 addIntervalToHist( startStamp, endStamp, \ 4.84 _VMSMasterEnv->measHists[ condSignalHistIdx ] ); 4.85 4.86 +//=========================================================================== 4.87 +// VCilk 4.88 +#define Meas_startSpawn \ 4.89 + int32 startStamp, endStamp; \ 4.90 + saveLowTimeStampCountInto( startStamp ); \ 4.91 + 4.92 +#define Meas_endSpawn \ 4.93 + saveLowTimeStampCountInto( endStamp ); \ 4.94 + addIntervalToHist( startStamp, endStamp, \ 4.95 + _VMSMasterEnv->measHists[ spawnHistIdx ] ); 4.96 + 4.97 +#define Meas_startSync \ 4.98 + int32 startStamp, endStamp; \ 4.99 + saveLowTimeStampCountInto( startStamp ); \ 4.100 + 4.101 +#define Meas_endSync \ 4.102 + saveLowTimeStampCountInto( endStamp ); \ 4.103 + addIntervalToHist( startStamp, endStamp, \ 4.104 + _VMSMasterEnv->measHists[ syncHistIdx ] ); 4.105 + 4.106 +//=========================================================================== 4.107 +// SSR 4.108 +#define Meas_startSendFromTo \ 4.109 + int32 startStamp, endStamp; \ 4.110 + saveLowTimeStampCountInto( startStamp ); \ 4.111 + 4.112 +#define Meas_endSendFromTo \ 4.113 + saveLowTimeStampCountInto( endStamp ); \ 4.114 + addIntervalToHist( startStamp, endStamp, \ 4.115 + _VMSMasterEnv->measHists[ SendFromToHistIdx ] ); 4.116 + 4.117 +#define Meas_startSendOfType \ 4.118 + int32 startStamp, endStamp; \ 4.119 + saveLowTimeStampCountInto( startStamp ); \ 4.120 + 4.121 +#define Meas_endSendOfType \ 4.122 + saveLowTimeStampCountInto( endStamp ); \ 4.123 + addIntervalToHist( startStamp, endStamp, \ 4.124 + _VMSMasterEnv->measHists[ SendOfTypeHistIdx ] ); 4.125 + 4.126 +#define Meas_startReceiveFromTo \ 4.127 + int32 startStamp, endStamp; \ 4.128 + saveLowTimeStampCountInto( startStamp ); \ 4.129 + 4.130 +#define Meas_endReceiveFromTo \ 4.131 + saveLowTimeStampCountInto( endStamp ); \ 4.132 + addIntervalToHist( startStamp, endStamp, \ 4.133 + _VMSMasterEnv->measHists[ ReceiveFromToHistIdx ] ); 4.134 + 4.135 +#define Meas_startReceiveOfType \ 4.136 + int32 startStamp, endStamp; \ 4.137 + saveLowTimeStampCountInto( startStamp ); \ 4.138 + 4.139 +#define Meas_endReceiveOfType \ 4.140 + saveLowTimeStampCountInto( endStamp ); \ 4.141 + addIntervalToHist( startStamp, endStamp, \ 4.142 + _VMSMasterEnv->measHists[ReceiveOfTypeHistIdx ] ); 4.143 4.144 //===== 4.145
