Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VReo > Reo__Matrix_Mult
changeset 1:1b61e0c00512
almost working k=3, about to change to k=4
line diff
1.1 --- a/Matrix_Mult.h Sun Feb 02 17:58:41 2014 -0800 1.2 +++ b/Matrix_Mult.h Wed Feb 19 09:27:10 2014 -0800 1.3 @@ -10,6 +10,7 @@ 1.4 #include <unistd.h> 1.5 #include <malloc.h> 1.6 1.7 +#include <PR__include/PR__primitive_data_types.h> 1.8 #include "ParamHelper/Param.h" 1.9 1.10 //============================== Structures ============================== 1.11 @@ -42,8 +43,8 @@ 1.12 // define the starting and ending boundaries for this piece of the 1.13 // result matrix. These are derivable from the left and right 1.14 // matrices, but included them for readability of code. 1.15 - int prodStartRow, prodEndRow; 1.16 - int prodStartCol, prodEndCol; 1.17 + int resStartRow, resEndRow; 1.18 + int resStartCol, resEndCol; 1.19 // Start and end of the portion of the left matrix that contributes to 1.20 // this piece of the product 1.21 int leftStartRow, leftEndRow;
2.1 --- a/Reo__Matrix_Mult/Circuit.c Sun Feb 02 17:58:41 2014 -0800 2.2 +++ b/Reo__Matrix_Mult/Circuit.c Wed Feb 19 09:27:10 2014 -0800 2.3 @@ -1,6 +1,6 @@ 2.4 #include <math.h> 2.5 #include <string.h> 2.6 -#include "VReo__Test_App.h" 2.7 +#include "Reo__Matrix_Mult.h" 2.8 #include "Circuit.h" 2.9 2.10 VReoCircuit *create_circuit(SlaveVP *animVP) { 2.11 @@ -29,6 +29,8 @@ 2.12 bridge = &(bridges[CKT_BRIDGE_Broad_0]); 2.13 bridge->buffer = NULL; 2.14 bridge->bridgeIsFull = FALSE; 2.15 + bridge->writerType = None; 2.16 + bridge->readerType = None; 2.17 bridge->waitingReaderVP = NULL; 2.18 bridge->waitingWriterVP = NULL; 2.19 bridge->readerPartnerQStruct = NULL; 2.20 @@ -396,17 +398,17 @@ 2.21 2.22 /* Assumption: (writerType != NULL) implies (writerType != VP) */ 2.23 bridge = &(bridges[CKT_BRIDGE_Out_0Input1]); 2.24 - if (bridge->writerType != NULL && bridge->bridgeIsFull) 2.25 + if (bridge->writerType != None && bridge->bridgeIsFull) 2.26 writePrivQ( bridge, bridge->readerOfferQ ); 2.27 2.28 /* Assumption: (writerType != NULL) implies (writerType != VP) */ 2.29 bridge = &(bridges[CKT_BRIDGE_Out_0Input0]); 2.30 - if (bridge->writerType != NULL && bridge->bridgeIsFull) 2.31 + if (bridge->writerType != None && bridge->bridgeIsFull) 2.32 writePrivQ( bridge, bridge->readerOfferQ ); 2.33 2.34 /* Assumption: (readerType != NULL) implies (readerType != VP) */ 2.35 bridge = &(bridges[CKT_BRIDGE_Out_0]); 2.36 - if (bridge->readerType != NULL && !bridge->bridgeIsFull) 2.37 + if (bridge->readerType != None && !bridge->bridgeIsFull) 2.38 writePrivQ( bridge, bridge->writerOfferQ ); 2.39 2.40 // 2.41 @@ -430,13 +432,12 @@ 2.42 void create_VPs_w_init_and_connect( VReoCircuit *circuit, void **initDatums, 2.43 SlaveVP *animVP) 2.44 { 2.45 - 2.46 /* Declare variables. */ 2.47 VReoBridge **boundaryBridges, *bridges, **bridgesForVP; 2.48 SlaveVP **VPs; 2.49 2.50 - TestAppProducerParams *prodParams; 2.51 - TestAppConsumerParams *consParams; 2.52 + VPParams *prodParams; 2.53 + VPParams *consParams; 2.54 2.55 /* Initialize (boundary) bridges. */ 2.56 boundaryBridges = circuit->boundaryBridges; 2.57 @@ -449,10 +450,10 @@ 2.58 bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *)); 2.59 bridgesForVP[0] = boundaryBridges[CKT_VP_PROD0]; 2.60 2.61 - prodParams = PR_WL__malloc(sizeof(TestAppProducerParams)); 2.62 + prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit)); 2.63 prodParams->inBridges = NULL; 2.64 prodParams->outBridges = bridgesForVP; 2.65 - prodParams->initData = initDatums[CKT_VP_PROD0]; 2.66 + prodParams->initData = initDatums[CKT_VP_PROD0]; 2.67 2.68 VPs[CKT_VP_PROD0] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP); 2.69 2.70 @@ -463,7 +464,7 @@ 2.71 bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *)); 2.72 bridgesForVP[0] = boundaryBridges[CKT_VP_PROD1]; 2.73 2.74 - prodParams = PR_WL__malloc(sizeof(TestAppProducerParams)); 2.75 + prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit)); 2.76 prodParams->inBridges = NULL; 2.77 prodParams->outBridges = bridgesForVP; 2.78 prodParams->initData = initDatums[CKT_VP_PROD1]; 2.79 @@ -477,7 +478,7 @@ 2.80 bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *)); 2.81 bridgesForVP[0] = boundaryBridges[CKT_VP_PROD2]; 2.82 2.83 - prodParams = PR_WL__malloc(sizeof(TestAppProducerParams)); 2.84 + prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit)); 2.85 prodParams->inBridges = NULL; 2.86 prodParams->outBridges = bridgesForVP; 2.87 prodParams->initData = initDatums[CKT_VP_PROD2]; 2.88 @@ -522,7 +523,7 @@ 2.89 // boundaryBridges[CKT_VP_CONS1]->readerType = VP; 2.90 2.91 /* Create Consumer VP. */ 2.92 - consParams = PR_WL__malloc(sizeof(TestAppConsumerParams)); 2.93 + consParams = PR_WL__malloc(sizeof(VPParams)); 2.94 2.95 bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *)); 2.96 bridgesForVP[0] = &(bridges[CKT_BRIDGE_Out_0]);
3.1 --- a/Reo__Matrix_Mult/Circuit.h Sun Feb 02 17:58:41 2014 -0800 3.2 +++ b/Reo__Matrix_Mult/Circuit.h Wed Feb 19 09:27:10 2014 -0800 3.3 @@ -5,6 +5,8 @@ 3.4 //#include "VReo_impl/VReo.h" 3.5 #include <PR__include/PR__structs__common.h> 3.6 #include <PR__include/langlets/vreo_wrapper_library.h> 3.7 +#include <PR__include/prqueue.h> 3.8 +#include <PR__include/PR__WL.h> 3.9 3.10 //============================================================================== 3.11
4.1 --- a/Reo__Matrix_Mult/DivideWork.c Sun Feb 02 17:58:41 2014 -0800 4.2 +++ b/Reo__Matrix_Mult/DivideWork.c Wed Feb 19 09:27:10 2014 -0800 4.3 @@ -20,12 +20,11 @@ 4.4 * the start row and end row and start col and end col to be multiplied 4.5 * the length of the vectors 4.6 */ 4.7 -WorkUnitParams ** 4.8 -divideWork( Matrix *leftMatrix, Matrix *rightMatrix, int targetNumUnits ) 4.9 +MatrixMultWorkUnit ** 4.10 +divideWork( Matrix *leftMatrix, Matrix *rightMatrix, Matrix *resultMatrix, 4.11 + int targetNumUnits ) 4.12 { 4.13 - WorkUnitParams *workUnitParams, **workUnits; 4.14 - Matrix *leftMatrix, *rightMatrix, *resultMatrix; 4.15 - int retCode; 4.16 + MatrixMultWorkUnit *workUnitParams, **workUnits; 4.17 int targetDivisor, targetIncrement; 4.18 4.19 // printf("start divide\n"); fflush(stdin); 4.20 @@ -45,21 +44,26 @@ 4.21 4.22 4.23 //make a data struct for each work unit, and fill it with params of work 4.24 - //params are start and end row and col to be multiplied and length of a row 4.25 - workUnits = PR__malloc( sizeof(WorkUnitParams) ); 4.26 + //params are start and end row and col to be multiplied and length of a row 4.27 + //BAD HACK: adding one to array, which will remain empty -- because 4.28 + // circuit creation wants a param struct for each VP -- the empty is for 4.29 + // the consumer.. so the empty spot contents is sent, but never used.. 4.30 + workUnits = PR__malloc( (targetNumUnits +1)* sizeof(MatrixMultWorkUnit *) ); 4.31 int row, col, index = 0; 4.32 for( row = 0; row < leftMatrix->numRows; row += targetIncrement ) 4.33 { 4.34 for( col = 0; col < rightMatrix->numCols; col += targetIncrement ) 4.35 { 4.36 - workUnitParams = PR__malloc( sizeof(WorkUnitParams) ); 4.37 - workUnitParams->startRow = row; 4.38 - workUnitParams->endRow = row + targetIncrement -1; 4.39 - workUnitParams->startCol = col; 4.40 - workUnitParams->endCol = col + targetIncrement -1; 4.41 - workUnitParams->vectLength = leftMatrix->numCols; 4.42 - workUnitParams->leftMatrix = leftMatrix; 4.43 - workUnitParams->rightMatrix = rightMatrix; 4.44 + workUnitParams = PR__malloc( sizeof(MatrixMultWorkUnit) ); 4.45 + workUnitParams->leftMatrix = leftMatrix; 4.46 + workUnitParams->rightMatrix = rightMatrix; 4.47 + workUnitParams->resultMatrix = rightMatrix; 4.48 + workUnitParams->prodArray = PR__malloc( leftMatrix->numRows * 4.49 + rightMatrix->numCols * sizeof(float32) ); 4.50 + workUnitParams->leftStartRow = row; 4.51 + workUnitParams->leftEndRow = row + targetIncrement -1; 4.52 + workUnitParams->rightStartCol= col; 4.53 + workUnitParams->rightEndCol = col + targetIncrement -1; 4.54 4.55 workUnits[ index ] = workUnitParams; 4.56 index += 1; 4.57 @@ -69,11 +73,7 @@ 4.58 } 4.59 4.60 4.61 - 4.62 - resultsParams = malloc( sizeof(ResultsParams) ); 4.63 - resultsParams->numCols = rightMatrix->numCols; 4.64 - resultsParams->numRows = leftMatrix->numRows; 4.65 4.66 //=========== Set up global vars, including conds and mutexes =========== 4.67 - globals = malloc( sizeof(MatrixMultGlobals) ); 4.68 +// globals = malloc( sizeof(MatrixMultGlobals) ); 4.69 //========================================================================
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/Reo__Matrix_Mult/MeasurementStuff.c Wed Feb 19 09:27:10 2014 -0800 5.3 @@ -0,0 +1,104 @@ 5.4 +/* 5.5 + * Copyright 2014 OpenSourceResearchInstitute.org 5.6 + * Licensed under GNU General Public License version 2 5.7 + * 5.8 + * Author: seanhalle@yahoo.com 5.9 + * 5.10 + */ 5.11 + 5.12 +#ifndef H_MEASUREMENTSTUFF_ 5.13 +#define H_MEASUREMENTSTUFF_ 5.14 + 5.15 + // ============================================================================= 5.16 + 5.17 +//SELECT how the measurement is done 5.18 +//only one must be enabled 5.19 +#define MEASURE_TSC 5.20 +//#define MEASURE_PERF 5.21 + 5.22 +#define saveTimeStampCountInto(low, high) \ 5.23 + asm volatile("RDTSC; \ 5.24 + movl %%eax, %0; \ 5.25 + movl %%edx, %1;" \ 5.26 + /* outputs */ : "=m" (low), "=m" (high)\ 5.27 + /* inputs */ : \ 5.28 + /* clobber */ : "%eax", "%edx" \ 5.29 + ); 5.30 + 5.31 +#define saveLowTimeStampCountInto(low) \ 5.32 + asm volatile("RDTSC; \ 5.33 + movl %%eax, %0;" \ 5.34 + /* outputs */ : "=m" (low) \ 5.35 + /* inputs */ : \ 5.36 + /* clobber */ : "%eax", "%edx" \ 5.37 + ); 5.38 + 5.39 +union timeStamp { 5.40 + uint32_t lowHigh[2]; //lowHigh[0] is low, lowHigh[1] is high 5.41 + uint64_t total; 5.42 +}; 5.43 + 5.44 +struct perfData { 5.45 + uint64_t cycles; 5.46 + uint64_t instructions; 5.47 +}; 5.48 + 5.49 +//MEASURE_TSC should be mutually exclusive with MEASURE_PERF 5.50 +#ifdef MEASURE_TSC 5.51 +typedef union timeStamp MeasStruct; 5.52 +#else 5.53 +#ifdef MEASURE_PERF 5.54 +typedef struct perfData MeasStruct; 5.55 +#endif 5.56 +#endif 5.57 + 5.58 + 5.59 +//read and save current perf-counter readings for cycles and instrs 5.60 +#ifdef MEASURE_PERF 5.61 +#define takeAMeas(core, perfDataStruct) do{ \ 5.62 + int cycles_fd = cycles_counter_fd[core]; \ 5.63 + int nread; \ 5.64 + \ 5.65 + nread = read(cycles_fd,&(perfDataStruct.cycles),sizeof(perfDataStruct.cycles)); \ 5.66 + if(nread<0){ \ 5.67 + perror("Error reading cycles counter"); \ 5.68 + cycles = 0; \ 5.69 + } \ 5.70 + } while (0) //macro magic for scoping 5.71 +#else 5.72 +#define takeAMeas(core, timeStampStruct) do{ \ 5.73 + saveTimeStampCountInto(timeStampStruct.lowHigh[0], timeStampStruct.lowHigh[1]);\ 5.74 + } while (0) //macro magic for scoping 5.75 +#endif 5.76 + 5.77 +#ifdef MEASURE_PERF 5.78 +int cycles_counter_fd[NUM_CORES]; 5.79 +int instrs_counter_fd[NUM_CORES]; 5.80 +int cycles_counter_main_fd; 5.81 +#endif 5.82 + 5.83 +//=================================== 5.84 +/* provide a millisecond-resolution timer for each system */ 5.85 +#if defined(unix) || defined(__unix__) 5.86 +#include <time.h> 5.87 +#include <sys/time.h> 5.88 +unsigned long get_msec(void) { 5.89 + static struct timeval timeval, first_timeval; 5.90 + 5.91 + gettimeofday(&timeval, 0); 5.92 + if(first_timeval.tv_sec == 0) { 5.93 + first_timeval = timeval; 5.94 + return 0; 5.95 + } 5.96 + return (timeval.tv_sec - first_timeval.tv_sec) * 1000 + (timeval.tv_usec - first_timeval.tv_usec) / 1000; 5.97 +} 5.98 +#elif defined(__WIN32__) || defined(WIN32) 5.99 +#include <windows.h> 5.100 +unsigned long get_msec(void) { 5.101 + return GetTickCount(); 5.102 +} 5.103 +#else 5.104 +#error "I don't know how to measure time on your platform" 5.105 +#endif 5.106 + 5.107 +#endif //H_MEASUREMENTSTUFF_
6.1 --- a/Reo__Matrix_Mult/Producer_and_Consumer.c Sun Feb 02 17:58:41 2014 -0800 6.2 +++ b/Reo__Matrix_Mult/Producer_and_Consumer.c Wed Feb 19 09:27:10 2014 -0800 6.3 @@ -1,39 +1,47 @@ 6.4 +/* 6.5 + * Copyright 2014 OpenSourceResearchInstitute.org 6.6 + * Licensed under GNU General Public License version 2 6.7 + * 6.8 + * Author: seanhalle@yahoo.com 6.9 + * 6.10 + */ 6.11 #include <math.h> 6.12 #include <string.h> 6.13 -#include "VReo__Test_App.h" 6.14 +#include "Reo__Matrix_Mult.h" 6.15 +#include "../Matrix_Mult.h" 6.16 6.17 /*The input to a VP's birth function is a struct that holds two arrays of 6.18 * pointers to bridges -- one for input bridges, one for output bridges 6.19 + * and, optionally, an array of workUnit params. 6.20 */ 6.21 -void producer_Fn(void *_birthParams, SlaveVP *animVP) { 6.22 - TestAppProducerParams *birthParams = (TestAppProducerParams *) _birthParams; 6.23 +void producer_Fn(void *_birthParams, SlaveVP *animVP) 6.24 + { 6.25 + VPParams * 6.26 + birthParams = (VPParams *) _birthParams; 6.27 6.28 - //Tell the Reo tool that generates circuit about the bridges of this VP 6.29 - //#Reo numInBridges 0 | numOutbridges 1 6.30 - VReoBridge **outBridges = birthParams->outBridges; 6.31 - VReoBridge *bridge; 6.32 - TestAppProdConsMsg *msg; 6.33 - int32 i; 6.34 + //Tell the Reo tool that generates circuit about the bridges of this VP 6.35 + //#Reo numInBridges 0 | numOutbridges 1 6.36 + VReoBridge **outBridges = birthParams->outBridges; 6.37 + VReoBridge *bridge; 6.38 + TestAppProdConsMsg *msg; 6.39 + MatrixMultWorkUnit *matrixMultWorkUnit; 6.40 + int32 i; 6.41 6.42 - DEBUG__printf(dbgAppFlow, "Producer on core: %d", animVP->coreAnimatedBy); 6.43 + DEBUG__printf( dbgAppFlow, "Producer on core: %d", animVP->coreAnimatedBy ); 6.44 6.45 - bridge = outBridges[0]; 6.46 - 6.47 + bridge = outBridges[0]; 6.48 6.49 - msg = PR__malloc(sizeof(TestAppProdConsMsg)); 6.50 - msg->producerID = animVP->slaveNum; 6.51 - 6.52 - //A producer puts out 5 items, doing a print for each. 6.53 - for (i = 0; i < NUM_ITER; i++) { 6.54 - //msg = PR__malloc(sizeof(TestAppProdConsMsg)); 6.55 - //msg->producerID = animVP->slaveNum; 6.56 - msg->producedCnt = i + 1; 6.57 - VReo__put_into_bridge(msg, bridge, animVP); 6.58 - DEBUG__printf(dbgAppFlow, "Producer %d, put in %d", msg->producerID, 6.59 - msg->producedCnt); 6.60 - } 6.61 - VReo__end_VP(animVP); 6.62 -} 6.63 + //Do the multiplies 6.64 + matrixMultWorkUnit = (MatrixMultWorkUnit *)birthParams->initData; 6.65 + for (i = 0; i < NUM_ITER; i++) 6.66 + { 6.67 + calcProduct( matrixMultWorkUnit ); //result appears by side effect 6.68 + VReo__put_into_bridge( matrixMultWorkUnit, bridge, animVP ); 6.69 + DEBUG__printf( dbgAppFlow, "Producer %d, put in %d", 6.70 + msg->producerID, msg->producedCnt ); 6.71 + } 6.72 + VReo__end_VP( animVP ); 6.73 + } 6.74 6.75 6.76 /*Accumulate the results of individual multiplies into the result matrix 6.77 @@ -42,59 +50,70 @@ 6.78 *After the count reaches the point that all results have been received, it 6.79 * ends itself -- result matrix is returned by side effect inside the params. 6.80 */ 6.81 -void consumer_Fn(void *_params, SlaveVP *animVP) { 6.82 - ResultsParams *params = (ResultsParams *) _params; 6.83 - 6.84 - //The circuit creator sends the bridges this VP is connected to 6.85 - // numInBridges 2 | numOutbridges 0 6.86 - VReoBridge **inBridges = params->inBridges; 6.87 +void consumer_Fn(void *_params, SlaveVP *animVP) 6.88 + { 6.89 + ConsParams *consParams; //not needed.. don't need any params 6.90 + MatrixMultWorkUnit *resWorkUnit; 6.91 + VReoBridge *inBridge0, *inBridge1; 6.92 + int32 i, j; 6.93 + 6.94 + DEBUG__printf( dbgAppFlow, "Consumer on core: %d", animVP->coreAnimatedBy ); 6.95 + 6.96 + //The circuit creator sends the bridges this VP is connected to 6.97 + // numInBridges 2 | numOutbridges 0 6.98 + VPParams * 6.99 + params = (VPParams *) _params; //params struct created during 6.100 + VReoBridge **inBridges = params->inBridges; 6.101 VReoBridge **outBridges = params->outBridges; 6.102 - VReoBridge *inBridge0, *inBridge1; 6.103 - int32 i, j, got; 6.104 - TestAppProdConsMsg *msg; 6.105 - 6.106 - DEBUG__printf(dbgAppFlow, "Consumer on core: %d", animVP->coreAnimatedBy); 6.107 - 6.108 +// consParams = params->initData; 6.109 + 6.110 inBridge0 = inBridges[0]; 6.111 inBridge1 = inBridges[1]; 6.112 6.113 - 6.114 - int numRows, numCols, numCells, count=0; 6.115 - float32 *resultMatrixArray; 6.116 - ProductResult *aResult; 6.117 - VectorParams *aResult; 6.118 - 6.119 - 6.120 - params = (ResultsParams *)_params; 6.121 - numCols = params->numCols; 6.122 - numRows = params->numRows; 6.123 - numCells = numRows * numCols; 6.124 - 6.125 - resultMatrixArray = malloc( numCells * sizeof( float32 ) ); 6.126 - params->resultMatrixArray = resultMatrixArray; 6.127 - 6.128 -// sleep(10); 6.129 - NUM_PROD = params->numProducers; 6.130 - int32 row, col; 6.131 + int32 partRow, partCol, numResRows, finalArrayStart, finalStartRow, partArrayStart; 6.132 + int32 finalStride, finalStartCol, partStride, numResCols; 6.133 + float *finalArray, *partArray; 6.134 + Matrix *leftMatrix, *rightMatrix, *resultMatrix; 6.135 6.136 for (i = 0; i < NUM_ITER; i++) 6.137 { 6.138 for (j = 0; j < NUM_PROD; j++) 6.139 - { 6.140 + { 6.141 //get next result from a producer 6.142 - aResult = (ProductResult *) VReo__get_from_bridge(inBridge0, animVP); 6.143 - DEBUG__printf( dbgAppFlow, "Consumer got %d from %d", 6.144 - aResult->producedCnt, aResult->producerID ); 6.145 - aResArray = aResult->array; 6.146 - 6.147 - accumulateResult( resultArray, aResult->partialResultArray, 6.148 - aResult->leftSubMatrix->origStartRow, 6.149 - aResult->leftSubMatrix->numRows, 6.150 - aResult->rightSubMatrix->origStartCol, 6.151 - aResult->rightSubMatrix->numCols, 6.152 - aResult->rightSubMatrix->origMatrix->numCols ); 6.153 + resWorkUnit = (MatrixMultWorkUnit *) VReo__get_from_bridge(inBridge0, animVP); 6.154 + DEBUG__printf( dbgAppFlow, "Consumer got \n" ); 6.155 + //now set up variables will use to copy partial result to final matrix array 6.156 + partArray = resWorkUnit->prodArray; 6.157 + resultMatrix = resWorkUnit->resultMatrix; //matrix for full orig piece 6.158 + finalArray = resultMatrix->array; 6.159 + leftMatrix = resWorkUnit->leftMatrix; 6.160 + rightMatrix = resWorkUnit->rightMatrix; 6.161 + //start and end row in result matrix == start and end row in left input matrix. 6.162 + finalStartRow = resWorkUnit->leftStartRow; 6.163 + numResRows = resWorkUnit->leftEndRow - resWorkUnit->leftStartRow +1; 6.164 + //start and end col in result == start and end col in right input matrix. 6.165 + finalStartCol = resWorkUnit->rightStartCol; 6.166 + numResCols = resWorkUnit->rightEndCol - resWorkUnit->rightStartCol + 1; 6.167 + partStride = numResCols; 6.168 + finalStride = resultMatrix->numCols; //cols in whole final result 6.169 6.170 - PR__free(aResult); 6.171 + /* accumulate from temp array to final result matrix's array 6.172 + * in final result array, have an offset to start row and offset to start col 6.173 + * then iterate within that.. 6.174 + * rows and cols in partial-result array start at zero.. 6.175 + */ 6.176 + for( partRow = 0; partRow < numResRows; partRow++ ) 6.177 + { finalArrayStart = (finalStartRow + partRow) * finalStride + finalStartCol; 6.178 + partArrayStart = partRow * partStride; 6.179 + for( partCol = 0; partCol < numResCols; partCol++ ) 6.180 + { 6.181 + finalArray[ finalArrayStart + partCol ] += 6.182 + partArray[ partArrayStart + partCol ]; 6.183 + } 6.184 + } 6.185 + /*<for testing, repeat same work bunch of times -- so don't free>*/ 6.186 +// PR__free(resWorkUnit->partResArray); 6.187 +// PR__free(resWorkUnit); 6.188 } 6.189 6.190 //tell producers they can go on to next matrix 6.191 @@ -103,90 +122,87 @@ 6.192 VReo__end_VP(animVP); 6.193 } 6.194 6.195 -inline void 6.196 -accumulateResult( float32 *resultArray, float32 *subMatrixPairResultArray, 6.197 - int32 startRow, 6.198 - int32 numRows, 6.199 - int32 startCol, 6.200 - int32 numCols, 6.201 - int32 numOrigCols ) 6.202 - { int32 row, col; 6.203 6.204 - for( row = 0; row < numRows; row++ ) 6.205 - { 6.206 - for( col = 0; col < numCols; col++ ) 6.207 +//===================================== 6.208 +/*Calculates a product of two sub-matrices, placing result into result matrix 6.209 + * The inputs are specified by start and end rows and cols, but use the original 6.210 + * input matrices. 6.211 + *Uses a result matrix that is just for this output. 6.212 + * 6.213 + */ 6.214 +void 6.215 +calcProduct( void *_inputParams ) 6.216 + { 6.217 + MatrixMultWorkUnit *workUnit; 6.218 + int resRow, resCol; 6.219 + int vecPos, rightArrayStart, resArrayStart; 6.220 + int leftStride, rightStride; 6.221 + float32 *leftArray, *rightArray, *resArray, leftElem; 6.222 + Matrix *leftMatrix, *rightMatrix; 6.223 + 6.224 + workUnit = (MatrixMultWorkUnit *)_inputParams; 6.225 + 6.226 + //A vector is one row of left sub-matrix, times one col of right sub-matrix 6.227 + // it marches down both the left row from the row's start col to its end col, 6.228 + // and also marches down the right col, from its start row to its end row. 6.229 + 6.230 + leftMatrix = workUnit->leftMatrix; 6.231 + rightMatrix = workUnit->rightMatrix; 6.232 + 6.233 + leftArray = leftMatrix->array; 6.234 + rightArray = rightMatrix->array; 6.235 + resArray = workUnit->prodArray; //a temp array for result of this one sub-matrix 6.236 + 6.237 + leftStride = leftMatrix->numCols; //numCols is for entire input matrix 6.238 + rightStride = rightMatrix->numCols;// not the sub-piece 6.239 + 6.240 + int32 rightNumCols, resStride, resNumCols, resNumRows, leftNumCols; 6.241 + int32 leftStartRow, leftStartCol, rightStartCol; 6.242 + //result array is sized to this sub-piece.. (+1 'cause 1st idx is 0) 6.243 + rightNumCols = workUnit->rightEndCol - workUnit->rightStartCol + 1; 6.244 + resStride = rightNumCols; 6.245 + resNumCols = rightNumCols; 6.246 + resNumRows = workUnit->leftEndRow - workUnit->leftStartRow + 1; 6.247 + leftNumCols = workUnit->leftEndCol - workUnit->leftStartCol + 1; 6.248 + leftStartRow = workUnit->leftStartRow; 6.249 + leftStartCol = workUnit->leftStartCol; 6.250 + rightStartCol = workUnit->rightStartCol; 6.251 + 6.252 + /* In order to use all elements of right matrix within a cache line, 6.253 + * switch the loop nest around, so that march down row of right matrix, 6.254 + * reusing single element of left matrix with them all.. 6.255 + for i 6.256 + for k 6.257 + a = A[i][k] 6.258 + for j 6.259 + R[i][j] = a * B[k][j] 6.260 + */ 6.261 + 6.262 + for( resRow = 0; resRow < resNumRows; resRow++ ) 6.263 + { //left input matrix starts at startRow, 6.264 + // right starts at startCol, then both march down the vector.. 6.265 + // so, use an iteration variable that marches down vector, and add it to 6.266 + // start positions for left and right arrays.. 6.267 + for( vecPos = 0; vecPos < leftNumCols; vecPos++ ) 6.268 { 6.269 - resultArray[ (row + startRow) * numOrigCols + (col + startCol) ] += 6.270 - subMatrixPairResultArray[ row * numCols + col ]; 6.271 + leftElem = 6.272 + leftArray[ (leftStartRow + resRow) * leftStride + leftStartCol + vecPos ]; 6.273 + //inner loop will march down this row inside right matrix's array 6.274 + rightArrayStart = vecPos * rightStride + rightStartCol; 6.275 + resArrayStart = resRow * resStride; 6.276 + 6.277 + for( resCol = 0; resCol < resNumCols; resCol++ ) 6.278 + { 6.279 + resArray[ resArrayStart + resCol ] += 6.280 + leftElem * rightArray[ rightArrayStart + resCol ]; 6.281 + } 6.282 + 6.283 } 6.284 } 6.285 - 6.286 } 6.287 6.288 6.289 - startRow = aResult->leftSubMatrix->origStartRow; 6.290 - numRows = aResult->leftSubMatrix->numRows, 6.291 - startCol = aResult->rightSubMatrix->origStartCol, 6.292 - numCols = aResult->rightSubMatrix->numCols, 6.293 - numOrigCols = aResult->rightSubMatrix->origMatrix->numCols 6.294 6.295 - for( row = 0; row < numRows; row++ ) 6.296 - { 6.297 - for( col = 0; col < numCols; col++ ) 6.298 - { 6.299 - resultArray[ (row + startRow) * numOrigCols + (col + startCol) ] += 6.300 - aResArray[ row * numCols + col ]; 6.301 - } 6.302 - } 6.303 6.304 6.305 -//===================================== 6.306 -/*A Vector processor is created with an environment that holds two matrices, 6.307 - * the row and col that it owns, and the name of a result gathering 6.308 - * processor. 6.309 - *It calculates its vector product then sends the result to the result 6.310 - * processor, which puts it into the result matrix and returns that matrix 6.311 - * when all is done. 6.312 - */ 6.313 -void * 6.314 -calcVector( void *data ) 6.315 - { 6.316 - VectorParams *params; 6.317 - int myRow, myCol, vectLength, pos; 6.318 - float32 *leftMatrixArray, *rightMatrixArray, result = 0.0; 6.319 - Matrix *leftMatrix, *rightMatrix; 6.320 6.321 - params = (VectorParams *)data; 6.322 - myCol = params->myCol; 6.323 - myRow = params->myRow; 6.324 - vectLength = params->vectLength; 6.325 - leftMatrix = params->leftMatrix; 6.326 - rightMatrix = params->rightMatrix; 6.327 - leftMatrixArray = leftMatrix->array; 6.328 - rightMatrixArray = rightMatrix->array; 6.329 - //===================== DEBUG ====================== 6.330 - #ifdef PRINT_DEBUG_1 6.331 - if( myCol == 0 ) 6.332 - printf("start vector: %d, %d\n", myRow, myCol ); fflush(stdin); 6.333 - #endif 6.334 - //==================================================== 6.335 - 6.336 - for( pos = 0; pos < vectLength; pos++ ) 6.337 - { 6.338 - result += *(leftMatrixArray + myRow * vectLength + pos) * 6.339 - *(rightMatrixArray + pos * vectLength + myCol); 6.340 - } 6.341 - params->result = result; 6.342 - 6.343 - //Send result to results thread 6.344 - pthread_mutex_lock( &(globals->vector_mutex) );//only get 6.345 - //the lock when results thd is inside wait. 6.346 - globals->currVector = params; 6.347 - pthread_cond_signal( &(globals->vector_cond) ); 6.348 - pthread_mutex_unlock( &(globals->vector_mutex) );//release 6.349 - //wait-er -- cond_signal implemented such that wait-er gets lock, no other 6.350 - 6.351 - pthread_exit(0); 6.352 - } 6.353 - 6.354 -//=======================================
7.1 --- a/Reo__Matrix_Mult/Reo__Matrix_Mult.h Sun Feb 02 17:58:41 2014 -0800 7.2 +++ b/Reo__Matrix_Mult/Reo__Matrix_Mult.h Wed Feb 19 09:27:10 2014 -0800 7.3 @@ -5,11 +5,38 @@ 7.4 7.5 #include <PR__include/langlets/vreo_wrapper_library.h> 7.6 #include "Circuit.h" 7.7 - 7.8 +#include "../Matrix_Mult.h" 7.9 7.10 extern int NUM_ITER; 7.11 7.12 //=============================== Defines ============================== 7.13 +/* The parameter values in here represent one unit of work 7.14 + */ 7.15 +typedef struct 7.16 + { 7.17 + // pointers to shared data.. the result matrix must be created when the 7.18 + // left and right matrices are put into the root ancestor DKUPiece. 7.19 + Matrix * leftMatrix; 7.20 + Matrix * rightMatrix; 7.21 + Matrix * resultMatrix; 7.22 + 7.23 + // define the starting and ending boundaries for this piece of the 7.24 + // result matrix. These are derivable from the left and right 7.25 + // matrices, but included them for readability of code. 7.26 + int prodStartRow, prodEndRow; 7.27 + int prodStartCol, prodEndCol; 7.28 + float *prodArray; //array for just the partial product of this work unit 7.29 + 7.30 + // Start and end of the portion of the left matrix that contributes to 7.31 + // this piece of the product 7.32 + int leftStartRow, leftEndRow; 7.33 + int leftStartCol, leftEndCol; 7.34 + // Start and end of the portion of the right matrix that contributes to 7.35 + // this piece of the product 7.36 + int rightStartRow, rightEndRow; 7.37 + int rightStartCol, rightEndCol; 7.38 + } 7.39 +MatrixMultWorkUnit; 7.40 7.41 //============================== Structures ============================== 7.42 typedef struct 7.43 @@ -22,42 +49,10 @@ 7.44 7.45 typedef struct 7.46 { 7.47 - int numRows; 7.48 - int numCols; 7.49 + int numProducers; 7.50 } 7.51 -ResultsParams; 7.52 +ConsParams; 7.53 7.54 -typedef struct 7.55 - { 7.56 - int myCol; 7.57 - int myRow; 7.58 - int vectLength; 7.59 - Matrix *leftMatrix; 7.60 - Matrix *rightMatrix; 7.61 - float32 result; 7.62 - } 7.63 -VectorParams; 7.64 - 7.65 -typedef struct 7.66 - { 7.67 - //for communicating vector results to results Thd 7.68 - pthread_mutex_t vector_mutex; 7.69 - pthread_cond_t vector_cond; 7.70 - VectorParams *currVector; 7.71 - 7.72 - //for communicating results array back to seed (divider) Thd 7.73 - pthread_mutex_t results_mutex; 7.74 - pthread_cond_t results_cond; 7.75 - float32 *results; 7.76 - 7.77 - //for ensuring results thd has vector lock before making vector thds 7.78 - pthread_mutex_t start_mutex; 7.79 - pthread_cond_t start_cond; 7.80 - 7.81 - Matrix *rightMatrix; 7.82 - Matrix *resultMatrix; 7.83 - } 7.84 -MatrixMultGlobals; 7.85 7.86 7.87 // NOTE: this is a birth function param. The first field of any structure 7.88 @@ -68,14 +63,15 @@ 7.89 7.90 VReoBridge **inBridges; //array of pointers into circuit's array of bridges 7.91 VReoBridge **outBridges; //array of pointers into circuit's array of bridges 7.92 -} TestAppProducerParams; 7.93 + void *initData; 7.94 + } VPParams; 7.95 7.96 typedef struct { //The first field must be pointer to a circuit (because is param to birth Fn) 7.97 VReoCircuit *circuit; //First field must ALWAYS be a pointer to a circuit 7.98 7.99 VReoBridge **inBridges; //array of pointers into circuit's array of bridges 7.100 VReoBridge **outBridges; //array of pointers into circuit's array of bridges 7.101 -} TestAppConsumerParams; 7.102 +} MatrixMultResultGatherParams; 7.103 7.104 typedef struct { 7.105 int32 producerID; 7.106 @@ -87,9 +83,10 @@ 7.107 void producer_Fn(void *data, SlaveVP *animatingVP); 7.108 void consumer_Fn(void *data, SlaveVP *animatingVP); 7.109 7.110 -void *divideIntoVectors( void *data ); 7.111 -void *calcVector( void *data ); 7.112 -void *gatherResults( void *data ); 7.113 +MatrixMultWorkUnit ** 7.114 +divideWork( Matrix *leftMatrix, Matrix *rightMatrix, Matrix *resultMatrix, 7.115 + int targetNumUnits ); 7.116 +void calcProduct( void *data ); 7.117 7.118 //================================ Global Vars ============================== 7.119
8.1 --- a/Reo__Matrix_Mult/Result_Pr.c Sun Feb 02 17:58:41 2014 -0800 8.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 8.3 @@ -1,9 +0,0 @@ 8.4 -/* 8.5 - * Copyright 2009 OpenSourceCodeStewardshipFoundation.org 8.6 - * Licensed under GNU General Public License version 2 8.7 - * 8.8 - * Author: seanhalle@yahoo.com 8.9 - * 8.10 - */ 8.11 - 8.12 -#include "PThread__Matrix_Mult.h"
9.1 --- a/Reo__Matrix_Mult/SeedVP.c Sun Feb 02 17:58:41 2014 -0800 9.2 +++ b/Reo__Matrix_Mult/SeedVP.c Wed Feb 19 09:27:10 2014 -0800 9.3 @@ -1,101 +1,19 @@ 9.4 +/* 9.5 + * Copyright 2014 OpenSourceResearchInstitute.org 9.6 + * Licensed under GNU General Public License version 2 9.7 + * 9.8 + * Author: seanhalle@yahoo.com 9.9 + * 9.10 + */ 9.11 + 9.12 #include <math.h> 9.13 #include <string.h> 9.14 9.15 -#include "VReo__Test_App.h" 9.16 +#include "Reo__Matrix_Mult.h" 9.17 9.18 #define NO_INPUT NULL 9.19 9.20 -// ============================================================================= 9.21 - 9.22 -//SELECT how the measurement is done 9.23 -//only one must be enabled 9.24 -#define MEASURE_TSC 9.25 -//#define MEASURE_PERF 9.26 - 9.27 -#define saveTimeStampCountInto(low, high) \ 9.28 - asm volatile("RDTSC; \ 9.29 - movl %%eax, %0; \ 9.30 - movl %%edx, %1;" \ 9.31 - /* outputs */ : "=m" (low), "=m" (high)\ 9.32 - /* inputs */ : \ 9.33 - /* clobber */ : "%eax", "%edx" \ 9.34 - ); 9.35 - 9.36 -#define saveLowTimeStampCountInto(low) \ 9.37 - asm volatile("RDTSC; \ 9.38 - movl %%eax, %0;" \ 9.39 - /* outputs */ : "=m" (low) \ 9.40 - /* inputs */ : \ 9.41 - /* clobber */ : "%eax", "%edx" \ 9.42 - ); 9.43 - 9.44 -union timeStamp { 9.45 - uint32_t lowHigh[2]; //lowHigh[0] is low, lowHigh[1] is high 9.46 - uint64_t total; 9.47 -}; 9.48 - 9.49 -struct perfData { 9.50 - uint64_t cycles; 9.51 - uint64_t instructions; 9.52 -}; 9.53 - 9.54 -//MEASURE_TSC should be mutually exclusive with MEASURE_PERF 9.55 -#ifdef MEASURE_TSC 9.56 -typedef union timeStamp MeasStruct; 9.57 -#else 9.58 -#ifdef MEASURE_PERF 9.59 -typedef struct perfData MeasStruct; 9.60 -#endif 9.61 -#endif 9.62 - 9.63 - 9.64 -//read and save current perf-counter readings for cycles and instrs 9.65 -#ifdef MEASURE_PERF 9.66 -#define takeAMeas(core, perfDataStruct) do{ \ 9.67 - int cycles_fd = cycles_counter_fd[core]; \ 9.68 - int nread; \ 9.69 - \ 9.70 - nread = read(cycles_fd,&(perfDataStruct.cycles),sizeof(perfDataStruct.cycles)); \ 9.71 - if(nread<0){ \ 9.72 - perror("Error reading cycles counter"); \ 9.73 - cycles = 0; \ 9.74 - } \ 9.75 - } while (0) //macro magic for scoping 9.76 -#else 9.77 -#define takeAMeas(core, timeStampStruct) do{ \ 9.78 - saveTimeStampCountInto(timeStampStruct.lowHigh[0], timeStampStruct.lowHigh[1]);\ 9.79 - } while (0) //macro magic for scoping 9.80 -#endif 9.81 - 9.82 -#ifdef MEASURE_PERF 9.83 -int cycles_counter_fd[NUM_CORES]; 9.84 -int instrs_counter_fd[NUM_CORES]; 9.85 -int cycles_counter_main_fd; 9.86 -#endif 9.87 - 9.88 -//=================================== 9.89 -/* provide a millisecond-resolution timer for each system */ 9.90 -#if defined(unix) || defined(__unix__) 9.91 -#include <time.h> 9.92 -#include <sys/time.h> 9.93 -unsigned long get_msec(void) { 9.94 - static struct timeval timeval, first_timeval; 9.95 - 9.96 - gettimeofday(&timeval, 0); 9.97 - if(first_timeval.tv_sec == 0) { 9.98 - first_timeval = timeval; 9.99 - return 0; 9.100 - } 9.101 - return (timeval.tv_sec - first_timeval.tv_sec) * 1000 + (timeval.tv_usec - first_timeval.tv_usec) / 1000; 9.102 -} 9.103 -#elif defined(__WIN32__) || defined(WIN32) 9.104 -#include <windows.h> 9.105 -unsigned long get_msec(void) { 9.106 - return GetTickCount(); 9.107 -} 9.108 -#else 9.109 -#error "I don't know how to measure time on your platform" 9.110 -#endif 9.111 +#include "MeasurementStuff.c" 9.112 9.113 // ============================================================================= 9.114 9.115 @@ -120,26 +38,28 @@ 9.116 */ 9.117 void matrix_mult__seed_Fn(void *_params, SlaveVP *seedVP) 9.118 { 9.119 + /* Declare variables. */ 9.120 + VReoCircuit *circuit; 9.121 + //MatrixMultPiece **workPieces; 9.122 + 9.123 + //MatrixMultParams *params = (MatrixMultParams *)_params; 9.124 + 9.125 + /* Log. */ 9.126 + DEBUG__printf(dbgAppFlow, "start app"); 9.127 9.128 - /* Declare variables. */ 9.129 - VReoCircuit *circuit; 9.130 + /* Start Reo plug-in. */ 9.131 + VReo__start(seedVP); 9.132 9.133 - /* Log. */ 9.134 - DEBUG__printf(dbgAppFlow, "start app"); 9.135 9.136 - /* Start Reo plug-in. */ 9.137 - VReo__start(seedVP); 9.138 + //take measurement before creation of threads, to get total exetime 9.139 + MeasStruct benchStartMeas, benchEndMeas; 9.140 + takeAMeas(0, benchStartMeas); 9.141 9.142 - 9.143 - //take measurement before creation of threads, to get total exetime 9.144 - MeasStruct benchStartMeas, benchEndMeas; 9.145 - takeAMeas(0, benchStartMeas); 9.146 - 9.147 - /* Create circuit. */ 9.148 + /* Create circuit. */ 9.149 circuit = (VReoCircuit *) create_circuit(seedVP); 9.150 9.151 - /* Create VPs. */ 9.152 - create_VPs_and_connect(circuit, seedVP); 9.153 + /* Create VPs -- pass along the array of work units*/ 9.154 + create_VPs_w_init_and_connect(circuit, _params, seedVP); 9.155 9.156 /* Wait for work to end. */ 9.157 VReo__wait_for_all_VReo_created_work_to_end(seedVP);
10.1 --- a/Reo__Matrix_Mult/Vector_Pr.c Sun Feb 02 17:58:41 2014 -0800 10.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 10.3 @@ -1,10 +0,0 @@ 10.4 -/* 10.5 - * Copyright 2009 OpenSourceCodeStewardshipFoundation.org 10.6 - * Licensed under GNU General Public License version 2 10.7 - * 10.8 - * Author: SeanHalle@yahoo.com 10.9 - * 10.10 - */ 10.11 - 10.12 -#include "Reo__Matrix_Mult.h" 10.13 -
11.1 --- a/main.c Sun Feb 02 17:58:41 2014 -0800 11.2 +++ b/main.c Wed Feb 19 09:27:10 2014 -0800 11.3 @@ -11,15 +11,25 @@ 11.4 11.5 int NUM_ITER; 11.6 11.7 -MatrixMultGlobals *globals; 11.8 11.9 int main(int argc, char **argv) 11.10 { Matrix *leftMatrix, *rightMatrix, *resultMatrix; 11.11 ParamBag *paramBag; 11.12 + MatrixMultWorkUnit **workUnits; 11.13 + VPParams *vpParams, **vpParamsArray; 11.14 +// ProdParams *prodParams; 11.15 +// ConsParams *consParams; 11.16 + int32 numUnitsToMake, vpIdx; 11.17 + PRProcess *matrixMultProcess; 11.18 11.19 - DEBUG__printf(TRUE, "arguments: %s | %s", argv[0], argv[1]); 11.20 - if(argc < 3) {printf("give num iter and path to param file on cmd line\n"); exit(1);} 11.21 + DEBUG__printf(TRUE, "arguments -- numIter: %s | path: %s", argv[1], argv[2] ); 11.22 + if(argc < 3) {printf("give: num iter and path to param file on cmd line\n"); exit(1);} 11.23 NUM_ITER = atoi(argv[1]); 11.24 + numUnitsToMake = NUM_PROD; //defined by Reo circuit generator 11.25 + 11.26 + printf("[reo] Settings: %i workers, %i iterations | file: %s \n", NUM_PROD, NUM_ITER, argv[2]); 11.27 + 11.28 + set_up_performance_counters(); 11.29 11.30 //read parameters, from file whose path is given on command line 11.31 paramBag = makeParamBag(); 11.32 @@ -27,25 +37,51 @@ 11.33 initialize_Input_Matrices_Via( &leftMatrix, &rightMatrix, paramBag ); 11.34 11.35 11.36 - printf("[reo] Settings: %i workers, %i iterations -- ", NUM_PROD, NUM_ITER); 11.37 - 11.38 - set_up_performance_counters(); 11.39 - 11.40 - PRProcess *matrixMultProcess; 11.41 - PR_Main__start(); 11.42 - PR_Main__set_app_info( "matrix multiply prod cons in Reo" ); 11.43 + PR__start(); 11.44 + PR__set_app_info( "matrix multiply prod cons in Reo" ); 11.45 + ParamStruc *inputInfo = getParamFromBag( "inputInfo", paramBag ); 11.46 + PR__set_input_info( inputInfo->strValue ); 11.47 11.48 - PR_Main__set_input_info( getParamFromBag( "inputInfo", paramBag ) ); 11.49 - 11.50 - params->resultMatrix = malloc( numRows * numCols * sizeof(double) ); 11.51 - params->workUnits = divideWork( leftInput, rightInput, numUnitsToMake ); 11.52 - 11.53 - matrixMultProcess = PR_Main__create_process(&matrix_mult__seed_Fn, params); 11.54 + resultMatrix = PR__malloc( sizeof(Matrix) ); 11.55 + resultMatrix->array = PR__malloc( leftMatrix->numRows * rightMatrix->numCols * sizeof(double) ); 11.56 + resultMatrix->numCols = rightMatrix->numCols; 11.57 + resultMatrix->numRows = leftMatrix->numRows; 11.58 + workUnits = divideWork( leftMatrix, rightMatrix, resultMatrix, 11.59 + numUnitsToMake ); 11.60 11.61 - PR_Main__wait_for_process_to_end(matrixMultProcess); 11.62 - PR__Main__wait_for_all_activity_to_end(); 11.63 +/* For now, don't need any params inside producer function other than 11.64 + * the work unit. Also, don't need any params at all inside cons function. 11.65 + * So, just send the array of work units to the seed Fn, which will pass it 11.66 + * along to the create_VP part of circuit creation, which will copy the 11.67 + * elements of the array into the param structs given as initData to the 11.68 + * VPs, as they are created. 11.69 + *Need a dummy work unit added to end of work-unit array, to avoid a seg 11.70 + * fault -- just did a bad hack inside divideWork. 11.71 + //Now, create params struct for each producer -- holds work unit 11.72 + for( vpIdx=0; vpIdx<numUnitsToMake; vpIdx++) 11.73 + { 11.74 + vpParams = PR__malloc( sizeof(VPParams) ); 11.75 + prodParams = PR__malloc( sizeof(ProdParams) ); 11.76 + 11.77 + vpParams->initData = prodParams; 11.78 + vpParamsArray[vpIdx] = vpParams; 11.79 + } 11.80 + //create params for consumer 11.81 + 11.82 + vpParams = PR__malloc( sizeof(VPParams) ); 11.83 + = malloc( sizeof(ProdParams) ); 11.84 + 11.85 + vpParams->initData = 11.86 + vpParamsArray[vpIdx] = vpParams; //this last entry is for the consumer 11.87 +*/ 11.88 + 11.89 + matrixMultProcess = PR__create_process( &matrix_mult__seed_Fn, 11.90 + workUnits ); 11.91 + 11.92 + PR__wait_for_process_to_end(matrixMultProcess); 11.93 + PR__wait_for_all_activity_to_end(); 11.94 fflush(stdout); 11.95 - PR_Main__shutdown(); 11.96 + PR__shutdown(); 11.97 11.98 exit(0); 11.99 }
12.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk Sun Feb 02 17:58:41 2014 -0800 12.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk Wed Feb 19 09:27:10 2014 -0800 12.3 @@ -15,13 +15,14 @@ 12.4 CCADMIN=CCadmin 12.5 RANLIB=ranlib 12.6 CC=gcc 12.7 -CCC=gcc-4.6 12.8 -CXX=gcc-4.6 12.9 +CCC=g++ 12.10 +CXX=g++ 12.11 FC=gfortran 12.12 AS=as 12.13 12.14 # Macros 12.15 CND_PLATFORM=GNU-Linux-x86 12.16 +CND_DLIB_EXT=so 12.17 CND_CONF=Debug 12.18 CND_DISTDIR=dist 12.19 CND_BUILDDIR=build 12.20 @@ -34,17 +35,14 @@ 12.21 12.22 # Object Files 12.23 OBJECTFILES= \ 12.24 + ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ 12.25 + ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ 12.26 + ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \ 12.27 + ${OBJECTDIR}/_ext/1702716545/Circuit.o \ 12.28 + ${OBJECTDIR}/_ext/1702716545/DivideWork.o \ 12.29 ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \ 12.30 - ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ 12.31 - ${OBJECTDIR}/_ext/1702716545/Circuit.o \ 12.32 - ${OBJECTDIR}/_ext/1472/main.o \ 12.33 - ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o \ 12.34 - ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ 12.35 - ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o \ 12.36 - ${OBJECTDIR}/_ext/1702716545/Result_Pr.o \ 12.37 - ${OBJECTDIR}/_ext/1702716545/EntryPoint.o \ 12.38 ${OBJECTDIR}/_ext/1702716545/SeedVP.o \ 12.39 - ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o 12.40 + ${OBJECTDIR}/_ext/1472/main.o 12.41 12.42 12.43 # C Compiler Flags 12.44 @@ -69,62 +67,47 @@ 12.45 12.46 ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES} 12.47 ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} 12.48 - ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} 12.49 + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} 12.50 + 12.51 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 12.52 + ${MKDIR} -p ${OBJECTDIR}/_ext/1472 12.53 + ${RM} "$@.d" 12.54 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c 12.55 + 12.56 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 12.57 + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 12.58 + ${RM} "$@.d" 12.59 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c 12.60 + 12.61 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 12.62 + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 12.63 + ${RM} "$@.d" 12.64 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c 12.65 + 12.66 +${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 12.67 + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.68 + ${RM} "$@.d" 12.69 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c 12.70 + 12.71 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 12.72 + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.73 + ${RM} "$@.d" 12.74 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c 12.75 12.76 ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c 12.77 ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.78 - ${RM} $@.d 12.79 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c 12.80 + ${RM} "$@.d" 12.81 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c 12.82 12.83 -${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 12.84 - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 12.85 - ${RM} $@.d 12.86 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c 12.87 - 12.88 -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 12.89 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 12.90 ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.91 - ${RM} $@.d 12.92 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c 12.93 + ${RM} "$@.d" 12.94 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c 12.95 12.96 ${OBJECTDIR}/_ext/1472/main.o: ../main.c 12.97 ${MKDIR} -p ${OBJECTDIR}/_ext/1472 12.98 - ${RM} $@.d 12.99 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/main.o ../main.c 12.100 - 12.101 -${OBJECTDIR}/_ext/1702716545/Divide_Pr.o: ../Reo__Matrix_Mult/Divide_Pr.c 12.102 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.103 - ${RM} $@.d 12.104 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o ../Reo__Matrix_Mult/Divide_Pr.c 12.105 - 12.106 -${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 12.107 - ${MKDIR} -p ${OBJECTDIR}/_ext/1472 12.108 - ${RM} $@.d 12.109 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c 12.110 - 12.111 -${OBJECTDIR}/_ext/1702716545/Vector_Pr.o: ../Reo__Matrix_Mult/Vector_Pr.c 12.112 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.113 - ${RM} $@.d 12.114 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o ../Reo__Matrix_Mult/Vector_Pr.c 12.115 - 12.116 -${OBJECTDIR}/_ext/1702716545/Result_Pr.o: ../Reo__Matrix_Mult/Result_Pr.c 12.117 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.118 - ${RM} $@.d 12.119 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Result_Pr.o ../Reo__Matrix_Mult/Result_Pr.c 12.120 - 12.121 -${OBJECTDIR}/_ext/1702716545/EntryPoint.o: ../Reo__Matrix_Mult/EntryPoint.c 12.122 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.123 - ${RM} $@.d 12.124 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/EntryPoint.o ../Reo__Matrix_Mult/EntryPoint.c 12.125 - 12.126 -${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 12.127 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 12.128 - ${RM} $@.d 12.129 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c 12.130 - 12.131 -${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 12.132 - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 12.133 - ${RM} $@.d 12.134 - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c 12.135 + ${RM} "$@.d" 12.136 + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c 12.137 12.138 # Subprojects 12.139 .build-subprojects:
13.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk Sun Feb 02 17:58:41 2014 -0800 13.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk Wed Feb 19 09:27:10 2014 -0800 13.3 @@ -15,13 +15,14 @@ 13.4 CCADMIN=CCadmin 13.5 RANLIB=ranlib 13.6 CC=gcc 13.7 -CCC=gcc-4.6 13.8 -CXX=gcc-4.6 13.9 +CCC=g++ 13.10 +CXX=g++ 13.11 FC=gfortran 13.12 AS=as 13.13 13.14 # Macros 13.15 CND_PLATFORM=GNU-Linux-x86 13.16 +CND_DLIB_EXT=so 13.17 CND_CONF=Debug_Sequential 13.18 CND_DISTDIR=dist 13.19 CND_BUILDDIR=build 13.20 @@ -34,17 +35,14 @@ 13.21 13.22 # Object Files 13.23 OBJECTFILES= \ 13.24 + ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ 13.25 + ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ 13.26 + ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \ 13.27 + ${OBJECTDIR}/_ext/1702716545/Circuit.o \ 13.28 + ${OBJECTDIR}/_ext/1702716545/DivideWork.o \ 13.29 ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \ 13.30 - ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ 13.31 - ${OBJECTDIR}/_ext/1702716545/Circuit.o \ 13.32 - ${OBJECTDIR}/_ext/1472/main.o \ 13.33 - ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o \ 13.34 - ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ 13.35 - ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o \ 13.36 - ${OBJECTDIR}/_ext/1702716545/Result_Pr.o \ 13.37 - ${OBJECTDIR}/_ext/1702716545/EntryPoint.o \ 13.38 ${OBJECTDIR}/_ext/1702716545/SeedVP.o \ 13.39 - ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o 13.40 + ${OBJECTDIR}/_ext/1472/main.o 13.41 13.42 13.43 # C Compiler Flags 13.44 @@ -61,7 +59,7 @@ 13.45 ASFLAGS= 13.46 13.47 # Link Libraries and Options 13.48 -LDLIBSOPTIONS=-L../../PR__lib 13.49 +LDLIBSOPTIONS=-L../../PR__lib -lpr__ml__sharedmem__dku_debug -lprmalloc -lprparam -lprqueue -lreo_wrapper_lib_opt1 13.50 13.51 # Build Targets 13.52 .build-conf: ${BUILD_SUBPROJECTS} 13.53 @@ -69,62 +67,47 @@ 13.54 13.55 ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES} 13.56 ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} 13.57 - ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} 13.58 + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} 13.59 + 13.60 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 13.61 + ${MKDIR} -p ${OBJECTDIR}/_ext/1472 13.62 + ${RM} "$@.d" 13.63 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c 13.64 + 13.65 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 13.66 + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 13.67 + ${RM} "$@.d" 13.68 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c 13.69 + 13.70 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 13.71 + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 13.72 + ${RM} "$@.d" 13.73 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c 13.74 + 13.75 +${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 13.76 + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.77 + ${RM} "$@.d" 13.78 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c 13.79 + 13.80 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 13.81 + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.82 + ${RM} "$@.d" 13.83 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c 13.84 13.85 ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c 13.86 ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.87 - ${RM} $@.d 13.88 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c 13.89 + ${RM} "$@.d" 13.90 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c 13.91 13.92 -${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 13.93 - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 13.94 - ${RM} $@.d 13.95 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c 13.96 - 13.97 -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 13.98 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 13.99 ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.100 - ${RM} $@.d 13.101 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c 13.102 + ${RM} "$@.d" 13.103 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c 13.104 13.105 ${OBJECTDIR}/_ext/1472/main.o: ../main.c 13.106 ${MKDIR} -p ${OBJECTDIR}/_ext/1472 13.107 - ${RM} $@.d 13.108 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/main.o ../main.c 13.109 - 13.110 -${OBJECTDIR}/_ext/1702716545/Divide_Pr.o: ../Reo__Matrix_Mult/Divide_Pr.c 13.111 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.112 - ${RM} $@.d 13.113 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o ../Reo__Matrix_Mult/Divide_Pr.c 13.114 - 13.115 -${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 13.116 - ${MKDIR} -p ${OBJECTDIR}/_ext/1472 13.117 - ${RM} $@.d 13.118 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c 13.119 - 13.120 -${OBJECTDIR}/_ext/1702716545/Vector_Pr.o: ../Reo__Matrix_Mult/Vector_Pr.c 13.121 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.122 - ${RM} $@.d 13.123 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o ../Reo__Matrix_Mult/Vector_Pr.c 13.124 - 13.125 -${OBJECTDIR}/_ext/1702716545/Result_Pr.o: ../Reo__Matrix_Mult/Result_Pr.c 13.126 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.127 - ${RM} $@.d 13.128 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Result_Pr.o ../Reo__Matrix_Mult/Result_Pr.c 13.129 - 13.130 -${OBJECTDIR}/_ext/1702716545/EntryPoint.o: ../Reo__Matrix_Mult/EntryPoint.c 13.131 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.132 - ${RM} $@.d 13.133 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/EntryPoint.o ../Reo__Matrix_Mult/EntryPoint.c 13.134 - 13.135 -${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 13.136 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 13.137 - ${RM} $@.d 13.138 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c 13.139 - 13.140 -${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 13.141 - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 13.142 - ${RM} $@.d 13.143 - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c 13.144 + ${RM} "$@.d" 13.145 + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c 13.146 13.147 # Subprojects 13.148 .build-subprojects:
14.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-Release.mk Sun Feb 02 17:58:41 2014 -0800 14.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Release.mk Wed Feb 19 09:27:10 2014 -0800 14.3 @@ -15,13 +15,14 @@ 14.4 CCADMIN=CCadmin 14.5 RANLIB=ranlib 14.6 CC=gcc 14.7 -CCC=gcc-4.6 14.8 -CXX=gcc-4.6 14.9 +CCC=g++ 14.10 +CXX=g++ 14.11 FC=gfortran 14.12 AS=as 14.13 14.14 # Macros 14.15 CND_PLATFORM=GNU-Linux-x86 14.16 +CND_DLIB_EXT=so 14.17 CND_CONF=Release 14.18 CND_DISTDIR=dist 14.19 CND_BUILDDIR=build 14.20 @@ -34,17 +35,14 @@ 14.21 14.22 # Object Files 14.23 OBJECTFILES= \ 14.24 + ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ 14.25 + ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ 14.26 + ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \ 14.27 + ${OBJECTDIR}/_ext/1702716545/Circuit.o \ 14.28 + ${OBJECTDIR}/_ext/1702716545/DivideWork.o \ 14.29 ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \ 14.30 - ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ 14.31 - ${OBJECTDIR}/_ext/1702716545/Circuit.o \ 14.32 - ${OBJECTDIR}/_ext/1472/main.o \ 14.33 - ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o \ 14.34 - ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ 14.35 - ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o \ 14.36 - ${OBJECTDIR}/_ext/1702716545/Result_Pr.o \ 14.37 - ${OBJECTDIR}/_ext/1702716545/EntryPoint.o \ 14.38 ${OBJECTDIR}/_ext/1702716545/SeedVP.o \ 14.39 - ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o 14.40 + ${OBJECTDIR}/_ext/1472/main.o 14.41 14.42 14.43 # C Compiler Flags 14.44 @@ -69,62 +67,47 @@ 14.45 14.46 ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES} 14.47 ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} 14.48 - ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} 14.49 + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} 14.50 + 14.51 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 14.52 + ${MKDIR} -p ${OBJECTDIR}/_ext/1472 14.53 + ${RM} "$@.d" 14.54 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c 14.55 + 14.56 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 14.57 + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 14.58 + ${RM} "$@.d" 14.59 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c 14.60 + 14.61 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 14.62 + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 14.63 + ${RM} "$@.d" 14.64 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c 14.65 + 14.66 +${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 14.67 + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.68 + ${RM} "$@.d" 14.69 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c 14.70 + 14.71 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 14.72 + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.73 + ${RM} "$@.d" 14.74 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c 14.75 14.76 ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c 14.77 ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.78 - ${RM} $@.d 14.79 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c 14.80 + ${RM} "$@.d" 14.81 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c 14.82 14.83 -${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 14.84 - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 14.85 - ${RM} $@.d 14.86 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c 14.87 - 14.88 -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 14.89 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 14.90 ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.91 - ${RM} $@.d 14.92 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c 14.93 + ${RM} "$@.d" 14.94 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c 14.95 14.96 ${OBJECTDIR}/_ext/1472/main.o: ../main.c 14.97 ${MKDIR} -p ${OBJECTDIR}/_ext/1472 14.98 - ${RM} $@.d 14.99 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/main.o ../main.c 14.100 - 14.101 -${OBJECTDIR}/_ext/1702716545/Divide_Pr.o: ../Reo__Matrix_Mult/Divide_Pr.c 14.102 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.103 - ${RM} $@.d 14.104 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o ../Reo__Matrix_Mult/Divide_Pr.c 14.105 - 14.106 -${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 14.107 - ${MKDIR} -p ${OBJECTDIR}/_ext/1472 14.108 - ${RM} $@.d 14.109 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c 14.110 - 14.111 -${OBJECTDIR}/_ext/1702716545/Vector_Pr.o: ../Reo__Matrix_Mult/Vector_Pr.c 14.112 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.113 - ${RM} $@.d 14.114 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o ../Reo__Matrix_Mult/Vector_Pr.c 14.115 - 14.116 -${OBJECTDIR}/_ext/1702716545/Result_Pr.o: ../Reo__Matrix_Mult/Result_Pr.c 14.117 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.118 - ${RM} $@.d 14.119 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Result_Pr.o ../Reo__Matrix_Mult/Result_Pr.c 14.120 - 14.121 -${OBJECTDIR}/_ext/1702716545/EntryPoint.o: ../Reo__Matrix_Mult/EntryPoint.c 14.122 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.123 - ${RM} $@.d 14.124 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/EntryPoint.o ../Reo__Matrix_Mult/EntryPoint.c 14.125 - 14.126 -${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 14.127 - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 14.128 - ${RM} $@.d 14.129 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c 14.130 - 14.131 -${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 14.132 - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 14.133 - ${RM} $@.d 14.134 - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c 14.135 + ${RM} "$@.d" 14.136 + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c 14.137 14.138 # Subprojects 14.139 .build-subprojects:
15.1 --- a/nb__Reo_matrix_mult/nbproject/Package-Debug.bash Sun Feb 02 17:58:41 2014 -0800 15.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-Debug.bash Wed Feb 19 09:27:10 2014 -0800 15.3 @@ -10,6 +10,7 @@ 15.4 CND_CONF=Debug 15.5 CND_DISTDIR=dist 15.6 CND_BUILDDIR=build 15.7 +CND_DLIB_EXT=so 15.8 NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 15.9 TMPDIRNAME=tmp-packaging 15.10 OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
16.1 --- a/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash Sun Feb 02 17:58:41 2014 -0800 16.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash Wed Feb 19 09:27:10 2014 -0800 16.3 @@ -10,6 +10,7 @@ 16.4 CND_CONF=Debug_Sequential 16.5 CND_DISTDIR=dist 16.6 CND_BUILDDIR=build 16.7 +CND_DLIB_EXT=so 16.8 NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 16.9 TMPDIRNAME=tmp-packaging 16.10 OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
17.1 --- a/nb__Reo_matrix_mult/nbproject/Package-Release.bash Sun Feb 02 17:58:41 2014 -0800 17.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-Release.bash Wed Feb 19 09:27:10 2014 -0800 17.3 @@ -10,6 +10,7 @@ 17.4 CND_CONF=Release 17.5 CND_DISTDIR=dist 17.6 CND_BUILDDIR=build 17.7 +CND_DLIB_EXT=so 17.8 NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging 17.9 TMPDIRNAME=tmp-packaging 17.10 OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
18.1 --- a/nb__Reo_matrix_mult/nbproject/configurations.xml Sun Feb 02 17:58:41 2014 -0800 18.2 +++ b/nb__Reo_matrix_mult/nbproject/configurations.xml Wed Feb 19 09:27:10 2014 -0800 18.3 @@ -1,5 +1,5 @@ 18.4 <?xml version="1.0" encoding="UTF-8"?> 18.5 -<configurationDescriptor version="80"> 18.6 +<configurationDescriptor version="90"> 18.7 <logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT"> 18.8 <logicalFolder name="HeaderFiles" 18.9 displayName="Header Files" 18.10 @@ -22,15 +22,10 @@ 18.11 projectFiles="true"> 18.12 <itemPath>../Reo__Matrix_Mult/Circuit.c</itemPath> 18.13 <itemPath>../Reo__Matrix_Mult/Circuit.h</itemPath> 18.14 - <itemPath>../Reo__Matrix_Mult/Divide_Pr.c</itemPath> 18.15 - <itemPath>../Reo__Matrix_Mult/EntryPoint.c</itemPath> 18.16 - <itemPath>../Reo__Matrix_Mult/PThread__Matrix_Mult.h</itemPath> 18.17 + <itemPath>../Reo__Matrix_Mult/DivideWork.c</itemPath> 18.18 <itemPath>../Reo__Matrix_Mult/Producer_and_Consumer.c</itemPath> 18.19 - <itemPath>../Reo__Matrix_Mult/Result_Pr.c</itemPath> 18.20 + <itemPath>../Reo__Matrix_Mult/Reo__Matrix_Mult.h</itemPath> 18.21 <itemPath>../Reo__Matrix_Mult/SeedVP.c</itemPath> 18.22 - <itemPath>../Reo__Matrix_Mult/VMS_primitive_data_types.h</itemPath> 18.23 - <itemPath>../Reo__Matrix_Mult/VReo__Test_App.h</itemPath> 18.24 - <itemPath>../Reo__Matrix_Mult/Vector_Pr.c</itemPath> 18.25 </logicalFolder> 18.26 <itemPath>../Matrix_Mult.c</itemPath> 18.27 <itemPath>../Matrix_Mult.h</itemPath> 18.28 @@ -56,16 +51,51 @@ 18.29 <confs> 18.30 <conf name="Debug" type="1"> 18.31 <toolsSet> 18.32 - <remote-sources-mode>LOCAL_SOURCES</remote-sources-mode> 18.33 <compilerSet>default</compilerSet> 18.34 + <dependencyChecking>true</dependencyChecking> 18.35 + <rebuildPropChanged>false</rebuildPropChanged> 18.36 </toolsSet> 18.37 <compileType> 18.38 </compileType> 18.39 + <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="0"> 18.40 + </item> 18.41 + <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0"> 18.42 + </item> 18.43 + <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0"> 18.44 + </item> 18.45 + <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="0"> 18.46 + </item> 18.47 + <item path="../ParamHelper/ReadParamsFromFile.c" 18.48 + ex="false" 18.49 + tool="0" 18.50 + flavor2="0"> 18.51 + </item> 18.52 + <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="0"> 18.53 + </item> 18.54 + <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0"> 18.55 + </item> 18.56 + <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0"> 18.57 + </item> 18.58 + <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c" 18.59 + ex="false" 18.60 + tool="0" 18.61 + flavor2="0"> 18.62 + </item> 18.63 + <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h" 18.64 + ex="false" 18.65 + tool="3" 18.66 + flavor2="0"> 18.67 + </item> 18.68 + <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="0"> 18.69 + </item> 18.70 + <item path="../main.c" ex="false" tool="0" flavor2="0"> 18.71 + </item> 18.72 </conf> 18.73 <conf name="Release" type="1"> 18.74 <toolsSet> 18.75 - <remote-sources-mode>LOCAL_SOURCES</remote-sources-mode> 18.76 <compilerSet>default</compilerSet> 18.77 + <dependencyChecking>true</dependencyChecking> 18.78 + <rebuildPropChanged>false</rebuildPropChanged> 18.79 </toolsSet> 18.80 <compileType> 18.81 <cTool> 18.82 @@ -81,11 +111,45 @@ 18.83 <developmentMode>5</developmentMode> 18.84 </asmTool> 18.85 </compileType> 18.86 + <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="0"> 18.87 + </item> 18.88 + <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0"> 18.89 + </item> 18.90 + <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0"> 18.91 + </item> 18.92 + <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="0"> 18.93 + </item> 18.94 + <item path="../ParamHelper/ReadParamsFromFile.c" 18.95 + ex="false" 18.96 + tool="0" 18.97 + flavor2="0"> 18.98 + </item> 18.99 + <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="0"> 18.100 + </item> 18.101 + <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0"> 18.102 + </item> 18.103 + <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0"> 18.104 + </item> 18.105 + <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c" 18.106 + ex="false" 18.107 + tool="0" 18.108 + flavor2="0"> 18.109 + </item> 18.110 + <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h" 18.111 + ex="false" 18.112 + tool="3" 18.113 + flavor2="0"> 18.114 + </item> 18.115 + <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="0"> 18.116 + </item> 18.117 + <item path="../main.c" ex="false" tool="0" flavor2="0"> 18.118 + </item> 18.119 </conf> 18.120 <conf name="Debug_Sequential" type="1"> 18.121 <toolsSet> 18.122 - <remote-sources-mode>LOCAL_SOURCES</remote-sources-mode> 18.123 <compilerSet>default</compilerSet> 18.124 + <dependencyChecking>true</dependencyChecking> 18.125 + <rebuildPropChanged>false</rebuildPropChanged> 18.126 </toolsSet> 18.127 <compileType> 18.128 <cTool> 18.129 @@ -94,14 +158,55 @@ 18.130 </incDir> 18.131 <preprocessorList> 18.132 <Elem>DEBUG__SEQUENTIAL_MODE</Elem> 18.133 + <Elem>DEBUG__TURN_ON_DEBUG_PRINT</Elem> 18.134 </preprocessorList> 18.135 </cTool> 18.136 <linkerTool> 18.137 <linkerAddLib> 18.138 <pElem>../../PR__lib</pElem> 18.139 </linkerAddLib> 18.140 + <linkerLibItems> 18.141 + <linkerLibLibItem>pr__ml__sharedmem__dku_debug</linkerLibLibItem> 18.142 + <linkerLibLibItem>prmalloc</linkerLibLibItem> 18.143 + <linkerLibLibItem>prparam</linkerLibLibItem> 18.144 + <linkerLibLibItem>prqueue</linkerLibLibItem> 18.145 + <linkerLibLibItem>reo_wrapper_lib_opt1</linkerLibLibItem> 18.146 + </linkerLibItems> 18.147 </linkerTool> 18.148 </compileType> 18.149 + <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="0"> 18.150 + </item> 18.151 + <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0"> 18.152 + </item> 18.153 + <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0"> 18.154 + </item> 18.155 + <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="0"> 18.156 + </item> 18.157 + <item path="../ParamHelper/ReadParamsFromFile.c" 18.158 + ex="false" 18.159 + tool="0" 18.160 + flavor2="0"> 18.161 + </item> 18.162 + <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="0"> 18.163 + </item> 18.164 + <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0"> 18.165 + </item> 18.166 + <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0"> 18.167 + </item> 18.168 + <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c" 18.169 + ex="false" 18.170 + tool="0" 18.171 + flavor2="0"> 18.172 + </item> 18.173 + <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h" 18.174 + ex="false" 18.175 + tool="3" 18.176 + flavor2="0"> 18.177 + </item> 18.178 + <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="0"> 18.179 + </item> 18.180 + <item path="../main.c" ex="false" tool="0" flavor2="0"> 18.181 + </item> 18.182 </conf> 18.183 </confs> 18.184 </configurationDescriptor>
19.1 --- a/nb__Reo_matrix_mult/nbproject/private/configurations.xml Sun Feb 02 17:58:41 2014 -0800 19.2 +++ b/nb__Reo_matrix_mult/nbproject/private/configurations.xml Wed Feb 19 09:27:10 2014 -0800 19.3 @@ -1,5 +1,5 @@ 19.4 <?xml version="1.0" encoding="UTF-8"?> 19.5 -<configurationDescriptor version="80"> 19.6 +<configurationDescriptor version="90"> 19.7 <projectmakefile>Makefile</projectmakefile> 19.8 <confs> 19.9 <conf name="Debug" type="1"> 19.10 @@ -19,9 +19,6 @@ 19.11 </gdb_options> 19.12 <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/> 19.13 </dbx_gdbdebugger> 19.14 - <gizmo_options version="3"> 19.15 - <configurationname>GizmoSimple</configurationname> 19.16 - </gizmo_options> 19.17 <nativedebugger version="1"> 19.18 <engine>gdb</engine> 19.19 </nativedebugger> 19.20 @@ -55,9 +52,6 @@ 19.21 </gdb_options> 19.22 <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/> 19.23 </dbx_gdbdebugger> 19.24 - <gizmo_options version="3"> 19.25 - <configurationname>GizmoSimple</configurationname> 19.26 - </gizmo_options> 19.27 <nativedebugger version="1"> 19.28 <engine>gdb</engine> 19.29 </nativedebugger> 19.30 @@ -91,18 +85,22 @@ 19.31 </gdb_options> 19.32 <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/> 19.33 </dbx_gdbdebugger> 19.34 - <gizmo_options version="3"> 19.35 - <configurationname>GizmoSimple</configurationname> 19.36 - </gizmo_options> 19.37 <nativedebugger version="1"> 19.38 <engine>gdb</engine> 19.39 </nativedebugger> 19.40 <runprofile version="9"> 19.41 <runcommandpicklist> 19.42 <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem> 19.43 + <runcommandpicklistitem>"${OUTPUT_PATH}" 10 9x9.txt</runcommandpicklistitem> 19.44 + <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem> 19.45 + <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem> 19.46 + <runcommandpicklistitem>"${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem> 19.47 + <runcommandpicklistitem>"${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem> 19.48 + <runcommandpicklistitem>"${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem> 19.49 + <runcommandpicklistitem>"${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem> 19.50 </runcommandpicklist> 19.51 - <runcommand>"${OUTPUT_PATH}"</runcommand> 19.52 - <rundir>/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist</rundir> 19.53 + <runcommand>"${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommand> 19.54 + <rundir>/mnt/hgfs/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist</rundir> 19.55 <buildfirst>true</buildfirst> 19.56 <terminal-type>0</terminal-type> 19.57 <remove-instrumentation>0</remove-instrumentation>
20.1 --- a/nb__Reo_matrix_mult/nbproject/private/private.xml Sun Feb 02 17:58:41 2014 -0800 20.2 +++ b/nb__Reo_matrix_mult/nbproject/private/private.xml Wed Feb 19 09:27:10 2014 -0800 20.3 @@ -4,4 +4,7 @@ 20.4 <activeConfTypeElem>1</activeConfTypeElem> 20.5 <activeConfIndexElem>2</activeConfIndexElem> 20.6 </data> 20.7 + <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> 20.8 + <group/> 20.9 + </open-files> 20.10 </project-private>
21.1 --- a/nb__Reo_matrix_mult/nbproject/project.xml Sun Feb 02 17:58:41 2014 -0800 21.2 +++ b/nb__Reo_matrix_mult/nbproject/project.xml Wed Feb 19 09:27:10 2014 -0800 21.3 @@ -27,6 +27,9 @@ 21.4 <type>1</type> 21.5 </confElem> 21.6 </confList> 21.7 + <formatting> 21.8 + <project-formatting-style>false</project-formatting-style> 21.9 + </formatting> 21.10 </data> 21.11 </configuration> 21.12 </project>
