Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > SSR > SSR__Blocked_Matrix_Mult__Bench
changeset 12:1461ed1901cc
update to common ancestor (VirtProcr to SlaveVP) and updated include paths
| author | Some Random Person <seanhalle@yahoo.com> |
|---|---|
| date | Fri, 09 Mar 2012 22:21:26 -0800 |
| parents | ca572fdc9a80 |
| children | bbf819d6e382 |
| files | Matrix_Mult.h SSR_Matrix_Mult/Divide_Pr.c SSR_Matrix_Mult/Result_Pr.c SSR_Matrix_Mult/SSR_Matrix_Mult.h SSR_Matrix_Mult/subMatrix_Pr.c main.c |
| diffstat | 6 files changed, 48 insertions(+), 49 deletions(-) [+] |
line diff
1.1 --- a/Matrix_Mult.h Fri Mar 09 19:03:28 2012 +0100 1.2 +++ b/Matrix_Mult.h Fri Mar 09 22:21:26 2012 -0800 1.3 @@ -10,8 +10,8 @@ 1.4 #include <unistd.h> 1.5 #include <malloc.h> 1.6 1.7 -#include "../VMS_Implementations/VMS_impl/VMS_primitive_data_types.h" 1.8 -#include "../C_Libraries/ParamHelper/Param.h" 1.9 +#include "VMS_impl/VMS_primitive_data_types.h" 1.10 +#include "ParamHelper/Param.h" 1.11 1.12 //============================== Structures ============================== 1.13
2.1 --- a/SSR_Matrix_Mult/Divide_Pr.c Fri Mar 09 19:03:28 2012 +0100 2.2 +++ b/SSR_Matrix_Mult/Divide_Pr.c Fri Mar 09 22:21:26 2012 -0800 2.3 @@ -15,45 +15,45 @@ 2.4 // perform this division on a matrix of size gives that many result calcs 2.5 //IE, size this so that sequential time to calc equals divide time 2.6 // find the value by experimenting -- but divide time and calc time scale 2.7 - // same way, so this value should remain valid across hardware 2.8 + // same way, so this value might remain the same across hardware 2.9 #define NUM_CELLS_IN_SEQUENTIAL_CUTOFF 1000 2.10 2.11 2.12 //=========================================================================== 2.13 int inline 2.14 -measureMatrixMultPrimitive( VirtProcr *animPr ); 2.15 +measureMatrixMultPrimitive( SlaveVP *animPr ); 2.16 2.17 SlicingStrucCarrier * 2.18 calcIdealSizeAndSliceDimensions( Matrix *leftMatrix, Matrix *rightMatrix, 2.19 - VirtProcr *animPr ); 2.20 + SlaveVP *animPr ); 2.21 2.22 SlicingStruc * 2.23 sliceUpDimension( float32 idealSizeOfSide, int startVal, int endVal, 2.24 - VirtProcr *animPr ); 2.25 + SlaveVP *animPr ); 2.26 2.27 void 2.28 -freeSlicingStruc( SlicingStruc *slicingStruc, VirtProcr *animPr ); 2.29 +freeSlicingStruc( SlicingStruc *slicingStruc, SlaveVP *animPr ); 2.30 2.31 SubMatrix ** 2.32 createSubMatrices( SlicingStruc *rowSlices, SlicingStruc *colSlices, 2.33 - int32 numUses, Matrix *origMatrix, VirtProcr *animPr ); 2.34 + int32 numUses, Matrix *origMatrix, SlaveVP *animPr ); 2.35 2.36 void 2.37 freeSubMatrices( SlicingStruc *rowSlices, SlicingStruc *colSlices, 2.38 - SubMatrix **subMatrices, VirtProcr *animPr ); 2.39 + SubMatrix **subMatrices, SlaveVP *animPr ); 2.40 2.41 void 2.42 pairUpSubMatricesAndMakeProcessors( SubMatrix **leftSubMatrices, 2.43 SubMatrix **rightSubMatrices, 2.44 int32 numRowIdxs, int32 numColIdxs, 2.45 int32 numVecIdxs, 2.46 - VirtProcr *resultPr, 2.47 - VirtProcr *animatingPr ); 2.48 + SlaveVP *resultPr, 2.49 + SlaveVP *animatingPr ); 2.50 2.51 void 2.52 makeSubMatricesAndProcrs( Matrix *leftMatrix, Matrix *rightMatrix, 2.53 SlicingStrucCarrier *slicingStrucCarrier, 2.54 - VirtProcr *resultPr, VirtProcr *animatingPr ); 2.55 + SlaveVP *resultPr, SlaveVP *animatingPr ); 2.56 2.57 2.58 2.59 @@ -112,10 +112,9 @@ 2.60 * two levels of nesting to create sub-matrices, and three levels to pair 2.61 * up the sub-matrices. 2.62 */ 2.63 - 2.64 void divideWorkIntoSubMatrixPairProcrs( void *_dividerParams, 2.65 - VirtProcr *animPr ) 2.66 - { VirtProcr *resultPr; 2.67 + SlaveVP *animPr ) 2.68 + { SlaveVP *resultPr; 2.69 DividerParams *dividerParams; 2.70 ResultsParams *resultsParams; 2.71 Matrix *leftMatrix, *rightMatrix, *resultMatrix; 2.72 @@ -126,10 +125,10 @@ 2.73 DEBUG( dbgAppFlow, "start divide\n") 2.74 2.75 int32 2.76 - divideProbe = VMS__create_single_interval_probe( "divideProbe", 2.77 + divideProbe = VMS_App__create_single_interval_probe( "divideProbe", 2.78 animPr ); 2.79 - VMS__record_sched_choice_into_probe( divideProbe, animPr ); 2.80 - VMS__record_interval_start_in_probe( divideProbe ); 2.81 + VMS_App__record_sched_choice_into_probe( divideProbe, animPr ); 2.82 + VMS_App__record_interval_start_in_probe( divideProbe ); 2.83 2.84 //=========== Setup -- make local copies of ptd-to-things, malloc, aso 2.85 int32 numResRows, numResCols, vectLength; 2.86 @@ -217,8 +216,8 @@ 2.87 2.88 DEBUG( dbgAppFlow, "end divide\n") 2.89 2.90 - VMS__record_interval_end_in_probe( divideProbe ); 2.91 - VMS__print_stats_of_all_probes(); 2.92 + VMS_App__record_interval_end_in_probe( divideProbe ); 2.93 + VMS_App__print_stats_of_all_probes(); 2.94 2.95 //nothing left to do so dissipate, SSR will wait to shutdown and hence 2.96 // make results available to outside until all the processors have 2.97 @@ -232,7 +231,7 @@ 2.98 2.99 SlicingStrucCarrier * 2.100 calcIdealSizeAndSliceDimensions( Matrix *leftMatrix, Matrix *rightMatrix, 2.101 - VirtProcr *animPr ) 2.102 + SlaveVP *animPr ) 2.103 { 2.104 float32 idealSizeOfSide, idealSizeOfSide1, idealSizeOfSide2; 2.105 SlicingStruc *leftRowSlices, *vecSlices, *rightColSlices; 2.106 @@ -305,7 +304,7 @@ 2.107 void 2.108 makeSubMatricesAndProcrs( Matrix *leftMatrix, Matrix *rightMatrix, 2.109 SlicingStrucCarrier *slicingStrucCarrier, 2.110 - VirtProcr *resultPr, VirtProcr *animPr ) 2.111 + SlaveVP *resultPr, SlaveVP *animPr ) 2.112 { 2.113 SlicingStruc *leftRowSlices, *vecSlices, *rightColSlices; 2.114 2.115 @@ -353,8 +352,8 @@ 2.116 SubMatrix **rightSubMatrices, 2.117 int32 numRowIdxs, int32 numColIdxs, 2.118 int32 numVecIdxs, 2.119 - VirtProcr *resultPr, 2.120 - VirtProcr *animatingPr ) 2.121 + SlaveVP *resultPr, 2.122 + SlaveVP *animatingPr ) 2.123 { 2.124 int32 resRowIdx, resColIdx, vecIdx; 2.125 int32 numLeftColIdxs, numRightColIdxs; 2.126 @@ -436,7 +435,7 @@ 2.127 */ 2.128 SubMatrix ** 2.129 createSubMatrices( SlicingStruc *rowSlices, SlicingStruc *colSlices, 2.130 - int32 numUses, Matrix *origMatrix, VirtProcr *animPr ) 2.131 + int32 numUses, Matrix *origMatrix, SlaveVP *animPr ) 2.132 { 2.133 int32 numRowIdxs, numColIdxs, rowIdx, colIdx; 2.134 int32 startRow, endRow, startCol, endCol; 2.135 @@ -487,7 +486,7 @@ 2.136 2.137 void 2.138 freeSubMatrices( SlicingStruc *rowSlices, SlicingStruc *colSlices, 2.139 - SubMatrix **subMatrices, VirtProcr *animPr ) 2.140 + SubMatrix **subMatrices, SlaveVP *animPr ) 2.141 { 2.142 int32 numRowIdxs, numColIdxs, rowIdx, colIdx, rowOffset; 2.143 SubMatrix *subMatrix; 2.144 @@ -513,7 +512,7 @@ 2.145 2.146 SlicingStruc * 2.147 sliceUpDimension( float32 idealSizeOfSide, int startVal, int endVal, 2.148 - VirtProcr *animPr ) 2.149 + SlaveVP *animPr ) 2.150 { float32 residualAcc = 0; 2.151 int numSlices, i, *startVals, sizeOfSlice, endCondition; 2.152 SlicingStruc *slicingStruc = SSR__malloc_to(sizeof(SlicingStruc), animPr); 2.153 @@ -553,7 +552,7 @@ 2.154 } 2.155 2.156 void 2.157 -freeSlicingStruc( SlicingStruc *slicingStruc, VirtProcr *animPr ) 2.158 +freeSlicingStruc( SlicingStruc *slicingStruc, SlaveVP *animPr ) 2.159 { 2.160 SSR__free( slicingStruc->startVals, animPr ); 2.161 SSR__free( slicingStruc, animPr ); 2.162 @@ -561,7 +560,7 @@ 2.163 2.164 2.165 int inline 2.166 -measureMatrixMultPrimitive( VirtProcr *animPr ) 2.167 +measureMatrixMultPrimitive( SlaveVP *animPr ) 2.168 { 2.169 int r, c, v, numCycles; 2.170 float32 *res, *left, *right;
3.1 --- a/SSR_Matrix_Mult/Result_Pr.c Fri Mar 09 19:03:28 2012 +0100 3.2 +++ b/SSR_Matrix_Mult/Result_Pr.c Fri Mar 09 22:21:26 2012 -0800 3.3 @@ -26,8 +26,8 @@ 3.4 *After the count reaches the point that all results have been received, it 3.5 * returns the result matrix and dissipates. 3.6 */ 3.7 -void gatherResults( void *_params, VirtProcr *animatingPr ) 3.8 - { VirtProcr *dividerPr; 3.9 +void gatherResults( void *_params, SlaveVP *animatingPr ) 3.10 + { SlaveVP *dividerPr; 3.11 ResultsParams *params; 3.12 int row, col, numRows, numCols, numSubMatrixPairs, count=0; 3.13 float32 *resultArray;
4.1 --- a/SSR_Matrix_Mult/SSR_Matrix_Mult.h Fri Mar 09 19:03:28 2012 +0100 4.2 +++ b/SSR_Matrix_Mult/SSR_Matrix_Mult.h Fri Mar 09 22:21:26 2012 -0800 4.3 @@ -8,7 +8,7 @@ 4.4 4.5 #include <stdio.h> 4.6 4.7 -#include "../../VMS_Implementations/SSR_impl/SSR.h" 4.8 +#include "SSR_impl/SSR.h" 4.9 #include "../Matrix_Mult.h" 4.10 4.11 4.12 @@ -31,7 +31,7 @@ 4.13 4.14 typedef struct 4.15 { 4.16 - VirtProcr *dividerPr; 4.17 + SlaveVP *dividerPr; 4.18 int numRows; 4.19 int numCols; 4.20 int numSubMatrixPairs; 4.21 @@ -55,7 +55,7 @@ 4.22 SubMatrix; 4.23 4.24 typedef struct 4.25 - { VirtProcr *resultPr; 4.26 + { SlaveVP *resultPr; 4.27 SubMatrix *leftSubMatrix; 4.28 SubMatrix *rightSubMatrix; 4.29 float32 *partialResultArray; 4.30 @@ -84,9 +84,9 @@ 4.31 }; 4.32 4.33 //============================= Processor Functions ========================= 4.34 -void divideWorkIntoSubMatrixPairProcrs( void *data, VirtProcr *animatingPr ); 4.35 -void calcSubMatrixProduct( void *data, VirtProcr *animatingPr ); 4.36 -void gatherResults( void *data, VirtProcr *animatingPr ); 4.37 +void divideWorkIntoSubMatrixPairProcrs( void *data, SlaveVP *animatingPr ); 4.38 +void calcSubMatrixProduct( void *data, SlaveVP *animatingPr ); 4.39 +void gatherResults( void *data, SlaveVP *animatingPr ); 4.40 4.41 4.42 //================================ Entry Point ==============================
5.1 --- a/SSR_Matrix_Mult/subMatrix_Pr.c Fri Mar 09 19:03:28 2012 +0100 5.2 +++ b/SSR_Matrix_Mult/subMatrix_Pr.c Fri Mar 09 22:21:26 2012 -0800 5.3 @@ -13,10 +13,10 @@ 5.4 5.5 5.6 void inline 5.7 -copyFromOrig( SubMatrix *subMatrix, VirtProcr *animPr ); 5.8 +copyFromOrig( SubMatrix *subMatrix, SlaveVP *animPr ); 5.9 5.10 void inline 5.11 -copyTransposeFromOrig( SubMatrix *subMatrix, VirtProcr *animPr ); 5.12 +copyTransposeFromOrig( SubMatrix *subMatrix, SlaveVP *animPr ); 5.13 5.14 void inline 5.15 multiplySubBlocksTransposed( float32 *leftArray, float32 *rightArray, 5.16 @@ -44,19 +44,19 @@ 5.17 *When done, it sends the result to the result processor 5.18 */ 5.19 void 5.20 -calcSubMatrixProduct( void *data, VirtProcr *animatingPr ) 5.21 +calcSubMatrixProduct( void *data, SlaveVP *animatingPr ) 5.22 { 5.23 SMPairParams *params; 5.24 - VirtProcr *resultPr; 5.25 + SlaveVP *resultPr; 5.26 float32 *leftArray, *rightArray, *resArray; 5.27 SubMatrix *leftSubMatrix, *rightSubMatrix; 5.28 5.29 - DEBUG1(dbgAppFlow, "start sub-matrix mult: %d\n", animatingPr->procrID) 5.30 + DEBUG1(dbgAppFlow, "start sub-matrix mult: %d\n", animatingPr->slaveID) 5.31 #ifdef TURN_ON_DEBUG_PROBES 5.32 - int32 subMatrixProbe = VMS__create_single_interval_probe( "subMtx", 5.33 + int32 subMatrixProbe = VMS_App__create_single_interval_probe( "subMtx", 5.34 animatingPr); 5.35 - VMS__record_sched_choice_into_probe( subMatrixProbe, animatingPr ); 5.36 - VMS__record_interval_start_in_probe( subMatrixProbe ); 5.37 + VMS_App__record_sched_choice_into_probe( subMatrixProbe, animatingPr ); 5.38 + VMS_App__record_interval_start_in_probe( subMatrixProbe ); 5.39 #endif 5.40 5.41 params = (SMPairParams *)data; 5.42 @@ -92,7 +92,7 @@ 5.43 params->partialResultArray = resArray; 5.44 5.45 #ifdef TURN_ON_DEBUG_PROBES 5.46 - VMS__record_interval_end_in_probe( subMatrixProbe ); 5.47 + VMS_App__record_interval_end_in_probe( subMatrixProbe ); 5.48 #endif 5.49 5.50 SSR__send_of_type_to( animatingPr, params, RESULTS_MSG, resultPr ); 5.51 @@ -224,7 +224,7 @@ 5.52 } 5.53 5.54 void inline 5.55 -copyTransposeFromOrig( SubMatrix *subMatrix, VirtProcr *animPr ) 5.56 +copyTransposeFromOrig( SubMatrix *subMatrix, SlaveVP *animPr ) 5.57 { int numCols, numRows, origStartRow, origStartCol, origStride, stride; 5.58 Matrix *origMatrix; 5.59 float32 *origArray, *subArray; 5.60 @@ -262,7 +262,7 @@ 5.61 5.62 5.63 void inline 5.64 -copyFromOrig( SubMatrix *subMatrix, VirtProcr *animPr ) 5.65 +copyFromOrig( SubMatrix *subMatrix, SlaveVP *animPr ) 5.66 { int numCols, numRows, origStartRow, origStartCol, stride, origStride; 5.67 Matrix *origMatrix; 5.68 float32 *origArray, *subArray;
6.1 --- a/main.c Fri Mar 09 19:03:28 2012 +0100 6.2 +++ b/main.c Fri Mar 09 22:21:26 2012 -0800 6.3 @@ -11,7 +11,7 @@ 6.4 #include "Matrix_Mult.h" 6.5 #include "SSR_Matrix_Mult/SSR_Matrix_Mult.h" 6.6 6.7 -char __ProgrammName[] = "Blocked Matrix Multiply"; 6.8 +char __ProgramName[] = "Blocked Matrix Multiply"; 6.9 char __DataSet[255]; 6.10 /** 6.11 *
