# HG changeset patch # User Sean Halle # Date 1392830830 28800 # Node ID 1b61e0c0051280facec352b947aadd210144671d # Parent c4b1849c05eff0da1bb1ae7febd8311afafea6f7 almost working k=3, about to change to k=4 diff -r c4b1849c05ef -r 1b61e0c00512 Matrix_Mult.h --- a/Matrix_Mult.h Sun Feb 02 17:58:41 2014 -0800 +++ b/Matrix_Mult.h Wed Feb 19 09:27:10 2014 -0800 @@ -10,6 +10,7 @@ #include #include +#include #include "ParamHelper/Param.h" //============================== Structures ============================== @@ -42,8 +43,8 @@ // define the starting and ending boundaries for this piece of the // result matrix. These are derivable from the left and right // matrices, but included them for readability of code. - int prodStartRow, prodEndRow; - int prodStartCol, prodEndCol; + int resStartRow, resEndRow; + int resStartCol, resEndCol; // Start and end of the portion of the left matrix that contributes to // this piece of the product int leftStartRow, leftEndRow; diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/Circuit.c --- a/Reo__Matrix_Mult/Circuit.c Sun Feb 02 17:58:41 2014 -0800 +++ b/Reo__Matrix_Mult/Circuit.c Wed Feb 19 09:27:10 2014 -0800 @@ -1,6 +1,6 @@ #include #include -#include "VReo__Test_App.h" +#include "Reo__Matrix_Mult.h" #include "Circuit.h" VReoCircuit *create_circuit(SlaveVP *animVP) { @@ -29,6 +29,8 @@ bridge = &(bridges[CKT_BRIDGE_Broad_0]); bridge->buffer = NULL; bridge->bridgeIsFull = FALSE; + bridge->writerType = None; + bridge->readerType = None; bridge->waitingReaderVP = NULL; bridge->waitingWriterVP = NULL; bridge->readerPartnerQStruct = NULL; @@ -396,17 +398,17 @@ /* Assumption: (writerType != NULL) implies (writerType != VP) */ bridge = &(bridges[CKT_BRIDGE_Out_0Input1]); - if (bridge->writerType != NULL && bridge->bridgeIsFull) + if (bridge->writerType != None && bridge->bridgeIsFull) writePrivQ( bridge, bridge->readerOfferQ ); /* Assumption: (writerType != NULL) implies (writerType != VP) */ bridge = &(bridges[CKT_BRIDGE_Out_0Input0]); - if (bridge->writerType != NULL && bridge->bridgeIsFull) + if (bridge->writerType != None && bridge->bridgeIsFull) writePrivQ( bridge, bridge->readerOfferQ ); /* Assumption: (readerType != NULL) implies (readerType != VP) */ bridge = &(bridges[CKT_BRIDGE_Out_0]); - if (bridge->readerType != NULL && !bridge->bridgeIsFull) + if (bridge->readerType != None && !bridge->bridgeIsFull) writePrivQ( bridge, bridge->writerOfferQ ); // @@ -430,13 +432,12 @@ void create_VPs_w_init_and_connect( VReoCircuit *circuit, void **initDatums, SlaveVP *animVP) { - /* Declare variables. */ VReoBridge **boundaryBridges, *bridges, **bridgesForVP; SlaveVP **VPs; - TestAppProducerParams *prodParams; - TestAppConsumerParams *consParams; + VPParams *prodParams; + VPParams *consParams; /* Initialize (boundary) bridges. */ boundaryBridges = circuit->boundaryBridges; @@ -449,10 +450,10 @@ bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *)); bridgesForVP[0] = boundaryBridges[CKT_VP_PROD0]; - prodParams = PR_WL__malloc(sizeof(TestAppProducerParams)); + prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit)); prodParams->inBridges = NULL; prodParams->outBridges = bridgesForVP; - prodParams->initData = initDatums[CKT_VP_PROD0]; + prodParams->initData = initDatums[CKT_VP_PROD0]; VPs[CKT_VP_PROD0] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP); @@ -463,7 +464,7 @@ bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *)); bridgesForVP[0] = boundaryBridges[CKT_VP_PROD1]; - prodParams = PR_WL__malloc(sizeof(TestAppProducerParams)); + prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit)); prodParams->inBridges = NULL; prodParams->outBridges = bridgesForVP; prodParams->initData = initDatums[CKT_VP_PROD1]; @@ -477,7 +478,7 @@ bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *)); bridgesForVP[0] = boundaryBridges[CKT_VP_PROD2]; - prodParams = PR_WL__malloc(sizeof(TestAppProducerParams)); + prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit)); prodParams->inBridges = NULL; prodParams->outBridges = bridgesForVP; prodParams->initData = initDatums[CKT_VP_PROD2]; @@ -522,7 +523,7 @@ // boundaryBridges[CKT_VP_CONS1]->readerType = VP; /* Create Consumer VP. */ - consParams = PR_WL__malloc(sizeof(TestAppConsumerParams)); + consParams = PR_WL__malloc(sizeof(VPParams)); bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *)); bridgesForVP[0] = &(bridges[CKT_BRIDGE_Out_0]); diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/Circuit.h --- a/Reo__Matrix_Mult/Circuit.h Sun Feb 02 17:58:41 2014 -0800 +++ b/Reo__Matrix_Mult/Circuit.h Wed Feb 19 09:27:10 2014 -0800 @@ -5,6 +5,8 @@ //#include "VReo_impl/VReo.h" #include #include +#include +#include //============================================================================== diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/DivideWork.c --- a/Reo__Matrix_Mult/DivideWork.c Sun Feb 02 17:58:41 2014 -0800 +++ b/Reo__Matrix_Mult/DivideWork.c Wed Feb 19 09:27:10 2014 -0800 @@ -20,12 +20,11 @@ * the start row and end row and start col and end col to be multiplied * the length of the vectors */ -WorkUnitParams ** -divideWork( Matrix *leftMatrix, Matrix *rightMatrix, int targetNumUnits ) +MatrixMultWorkUnit ** +divideWork( Matrix *leftMatrix, Matrix *rightMatrix, Matrix *resultMatrix, + int targetNumUnits ) { - WorkUnitParams *workUnitParams, **workUnits; - Matrix *leftMatrix, *rightMatrix, *resultMatrix; - int retCode; + MatrixMultWorkUnit *workUnitParams, **workUnits; int targetDivisor, targetIncrement; // printf("start divide\n"); fflush(stdin); @@ -45,21 +44,26 @@ //make a data struct for each work unit, and fill it with params of work - //params are start and end row and col to be multiplied and length of a row - workUnits = PR__malloc( sizeof(WorkUnitParams) ); + //params are start and end row and col to be multiplied and length of a row + //BAD HACK: adding one to array, which will remain empty -- because + // circuit creation wants a param struct for each VP -- the empty is for + // the consumer.. so the empty spot contents is sent, but never used.. + workUnits = PR__malloc( (targetNumUnits +1)* sizeof(MatrixMultWorkUnit *) ); int row, col, index = 0; for( row = 0; row < leftMatrix->numRows; row += targetIncrement ) { for( col = 0; col < rightMatrix->numCols; col += targetIncrement ) { - workUnitParams = PR__malloc( sizeof(WorkUnitParams) ); - workUnitParams->startRow = row; - workUnitParams->endRow = row + targetIncrement -1; - workUnitParams->startCol = col; - workUnitParams->endCol = col + targetIncrement -1; - workUnitParams->vectLength = leftMatrix->numCols; - workUnitParams->leftMatrix = leftMatrix; - workUnitParams->rightMatrix = rightMatrix; + workUnitParams = PR__malloc( sizeof(MatrixMultWorkUnit) ); + workUnitParams->leftMatrix = leftMatrix; + workUnitParams->rightMatrix = rightMatrix; + workUnitParams->resultMatrix = rightMatrix; + workUnitParams->prodArray = PR__malloc( leftMatrix->numRows * + rightMatrix->numCols * sizeof(float32) ); + workUnitParams->leftStartRow = row; + workUnitParams->leftEndRow = row + targetIncrement -1; + workUnitParams->rightStartCol= col; + workUnitParams->rightEndCol = col + targetIncrement -1; workUnits[ index ] = workUnitParams; index += 1; @@ -69,11 +73,7 @@ } - - resultsParams = malloc( sizeof(ResultsParams) ); - resultsParams->numCols = rightMatrix->numCols; - resultsParams->numRows = leftMatrix->numRows; //=========== Set up global vars, including conds and mutexes =========== - globals = malloc( sizeof(MatrixMultGlobals) ); +// globals = malloc( sizeof(MatrixMultGlobals) ); //======================================================================== diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/MeasurementStuff.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Reo__Matrix_Mult/MeasurementStuff.c Wed Feb 19 09:27:10 2014 -0800 @@ -0,0 +1,104 @@ +/* + * Copyright 2014 OpenSourceResearchInstitute.org + * Licensed under GNU General Public License version 2 + * + * Author: seanhalle@yahoo.com + * + */ + +#ifndef H_MEASUREMENTSTUFF_ +#define H_MEASUREMENTSTUFF_ + + // ============================================================================= + +//SELECT how the measurement is done +//only one must be enabled +#define MEASURE_TSC +//#define MEASURE_PERF + +#define saveTimeStampCountInto(low, high) \ + asm volatile("RDTSC; \ + movl %%eax, %0; \ + movl %%edx, %1;" \ + /* outputs */ : "=m" (low), "=m" (high)\ + /* inputs */ : \ + /* clobber */ : "%eax", "%edx" \ + ); + +#define saveLowTimeStampCountInto(low) \ + asm volatile("RDTSC; \ + movl %%eax, %0;" \ + /* outputs */ : "=m" (low) \ + /* inputs */ : \ + /* clobber */ : "%eax", "%edx" \ + ); + +union timeStamp { + uint32_t lowHigh[2]; //lowHigh[0] is low, lowHigh[1] is high + uint64_t total; +}; + +struct perfData { + uint64_t cycles; + uint64_t instructions; +}; + +//MEASURE_TSC should be mutually exclusive with MEASURE_PERF +#ifdef MEASURE_TSC +typedef union timeStamp MeasStruct; +#else +#ifdef MEASURE_PERF +typedef struct perfData MeasStruct; +#endif +#endif + + +//read and save current perf-counter readings for cycles and instrs +#ifdef MEASURE_PERF +#define takeAMeas(core, perfDataStruct) do{ \ + int cycles_fd = cycles_counter_fd[core]; \ + int nread; \ + \ + nread = read(cycles_fd,&(perfDataStruct.cycles),sizeof(perfDataStruct.cycles)); \ + if(nread<0){ \ + perror("Error reading cycles counter"); \ + cycles = 0; \ + } \ + } while (0) //macro magic for scoping +#else +#define takeAMeas(core, timeStampStruct) do{ \ + saveTimeStampCountInto(timeStampStruct.lowHigh[0], timeStampStruct.lowHigh[1]);\ + } while (0) //macro magic for scoping +#endif + +#ifdef MEASURE_PERF +int cycles_counter_fd[NUM_CORES]; +int instrs_counter_fd[NUM_CORES]; +int cycles_counter_main_fd; +#endif + +//=================================== +/* provide a millisecond-resolution timer for each system */ +#if defined(unix) || defined(__unix__) +#include +#include +unsigned long get_msec(void) { + static struct timeval timeval, first_timeval; + + gettimeofday(&timeval, 0); + if(first_timeval.tv_sec == 0) { + first_timeval = timeval; + return 0; + } + return (timeval.tv_sec - first_timeval.tv_sec) * 1000 + (timeval.tv_usec - first_timeval.tv_usec) / 1000; +} +#elif defined(__WIN32__) || defined(WIN32) +#include +unsigned long get_msec(void) { + return GetTickCount(); +} +#else +#error "I don't know how to measure time on your platform" +#endif + +#endif //H_MEASUREMENTSTUFF_ diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/Producer_and_Consumer.c --- a/Reo__Matrix_Mult/Producer_and_Consumer.c Sun Feb 02 17:58:41 2014 -0800 +++ b/Reo__Matrix_Mult/Producer_and_Consumer.c Wed Feb 19 09:27:10 2014 -0800 @@ -1,39 +1,47 @@ +/* + * Copyright 2014 OpenSourceResearchInstitute.org + * Licensed under GNU General Public License version 2 + * + * Author: seanhalle@yahoo.com + * + */ #include #include -#include "VReo__Test_App.h" +#include "Reo__Matrix_Mult.h" +#include "../Matrix_Mult.h" /*The input to a VP's birth function is a struct that holds two arrays of * pointers to bridges -- one for input bridges, one for output bridges + * and, optionally, an array of workUnit params. */ -void producer_Fn(void *_birthParams, SlaveVP *animVP) { - TestAppProducerParams *birthParams = (TestAppProducerParams *) _birthParams; +void producer_Fn(void *_birthParams, SlaveVP *animVP) + { + VPParams * + birthParams = (VPParams *) _birthParams; - //Tell the Reo tool that generates circuit about the bridges of this VP - //#Reo numInBridges 0 | numOutbridges 1 - VReoBridge **outBridges = birthParams->outBridges; - VReoBridge *bridge; - TestAppProdConsMsg *msg; - int32 i; + //Tell the Reo tool that generates circuit about the bridges of this VP + //#Reo numInBridges 0 | numOutbridges 1 + VReoBridge **outBridges = birthParams->outBridges; + VReoBridge *bridge; + TestAppProdConsMsg *msg; + MatrixMultWorkUnit *matrixMultWorkUnit; + int32 i; - DEBUG__printf(dbgAppFlow, "Producer on core: %d", animVP->coreAnimatedBy); + DEBUG__printf( dbgAppFlow, "Producer on core: %d", animVP->coreAnimatedBy ); - bridge = outBridges[0]; - + bridge = outBridges[0]; - msg = PR__malloc(sizeof(TestAppProdConsMsg)); - msg->producerID = animVP->slaveNum; - - //A producer puts out 5 items, doing a print for each. - for (i = 0; i < NUM_ITER; i++) { - //msg = PR__malloc(sizeof(TestAppProdConsMsg)); - //msg->producerID = animVP->slaveNum; - msg->producedCnt = i + 1; - VReo__put_into_bridge(msg, bridge, animVP); - DEBUG__printf(dbgAppFlow, "Producer %d, put in %d", msg->producerID, - msg->producedCnt); - } - VReo__end_VP(animVP); -} + //Do the multiplies + matrixMultWorkUnit = (MatrixMultWorkUnit *)birthParams->initData; + for (i = 0; i < NUM_ITER; i++) + { + calcProduct( matrixMultWorkUnit ); //result appears by side effect + VReo__put_into_bridge( matrixMultWorkUnit, bridge, animVP ); + DEBUG__printf( dbgAppFlow, "Producer %d, put in %d", + msg->producerID, msg->producedCnt ); + } + VReo__end_VP( animVP ); + } /*Accumulate the results of individual multiplies into the result matrix @@ -42,59 +50,70 @@ *After the count reaches the point that all results have been received, it * ends itself -- result matrix is returned by side effect inside the params. */ -void consumer_Fn(void *_params, SlaveVP *animVP) { - ResultsParams *params = (ResultsParams *) _params; - - //The circuit creator sends the bridges this VP is connected to - // numInBridges 2 | numOutbridges 0 - VReoBridge **inBridges = params->inBridges; +void consumer_Fn(void *_params, SlaveVP *animVP) + { + ConsParams *consParams; //not needed.. don't need any params + MatrixMultWorkUnit *resWorkUnit; + VReoBridge *inBridge0, *inBridge1; + int32 i, j; + + DEBUG__printf( dbgAppFlow, "Consumer on core: %d", animVP->coreAnimatedBy ); + + //The circuit creator sends the bridges this VP is connected to + // numInBridges 2 | numOutbridges 0 + VPParams * + params = (VPParams *) _params; //params struct created during + VReoBridge **inBridges = params->inBridges; VReoBridge **outBridges = params->outBridges; - VReoBridge *inBridge0, *inBridge1; - int32 i, j, got; - TestAppProdConsMsg *msg; - - DEBUG__printf(dbgAppFlow, "Consumer on core: %d", animVP->coreAnimatedBy); - +// consParams = params->initData; + inBridge0 = inBridges[0]; inBridge1 = inBridges[1]; - - int numRows, numCols, numCells, count=0; - float32 *resultMatrixArray; - ProductResult *aResult; - VectorParams *aResult; - - - params = (ResultsParams *)_params; - numCols = params->numCols; - numRows = params->numRows; - numCells = numRows * numCols; - - resultMatrixArray = malloc( numCells * sizeof( float32 ) ); - params->resultMatrixArray = resultMatrixArray; - -// sleep(10); - NUM_PROD = params->numProducers; - int32 row, col; + int32 partRow, partCol, numResRows, finalArrayStart, finalStartRow, partArrayStart; + int32 finalStride, finalStartCol, partStride, numResCols; + float *finalArray, *partArray; + Matrix *leftMatrix, *rightMatrix, *resultMatrix; for (i = 0; i < NUM_ITER; i++) { for (j = 0; j < NUM_PROD; j++) - { + { //get next result from a producer - aResult = (ProductResult *) VReo__get_from_bridge(inBridge0, animVP); - DEBUG__printf( dbgAppFlow, "Consumer got %d from %d", - aResult->producedCnt, aResult->producerID ); - aResArray = aResult->array; - - accumulateResult( resultArray, aResult->partialResultArray, - aResult->leftSubMatrix->origStartRow, - aResult->leftSubMatrix->numRows, - aResult->rightSubMatrix->origStartCol, - aResult->rightSubMatrix->numCols, - aResult->rightSubMatrix->origMatrix->numCols ); + resWorkUnit = (MatrixMultWorkUnit *) VReo__get_from_bridge(inBridge0, animVP); + DEBUG__printf( dbgAppFlow, "Consumer got \n" ); + //now set up variables will use to copy partial result to final matrix array + partArray = resWorkUnit->prodArray; + resultMatrix = resWorkUnit->resultMatrix; //matrix for full orig piece + finalArray = resultMatrix->array; + leftMatrix = resWorkUnit->leftMatrix; + rightMatrix = resWorkUnit->rightMatrix; + //start and end row in result matrix == start and end row in left input matrix. + finalStartRow = resWorkUnit->leftStartRow; + numResRows = resWorkUnit->leftEndRow - resWorkUnit->leftStartRow +1; + //start and end col in result == start and end col in right input matrix. + finalStartCol = resWorkUnit->rightStartCol; + numResCols = resWorkUnit->rightEndCol - resWorkUnit->rightStartCol + 1; + partStride = numResCols; + finalStride = resultMatrix->numCols; //cols in whole final result - PR__free(aResult); + /* accumulate from temp array to final result matrix's array + * in final result array, have an offset to start row and offset to start col + * then iterate within that.. + * rows and cols in partial-result array start at zero.. + */ + for( partRow = 0; partRow < numResRows; partRow++ ) + { finalArrayStart = (finalStartRow + partRow) * finalStride + finalStartCol; + partArrayStart = partRow * partStride; + for( partCol = 0; partCol < numResCols; partCol++ ) + { + finalArray[ finalArrayStart + partCol ] += + partArray[ partArrayStart + partCol ]; + } + } + /**/ +// PR__free(resWorkUnit->partResArray); +// PR__free(resWorkUnit); } //tell producers they can go on to next matrix @@ -103,90 +122,87 @@ VReo__end_VP(animVP); } -inline void -accumulateResult( float32 *resultArray, float32 *subMatrixPairResultArray, - int32 startRow, - int32 numRows, - int32 startCol, - int32 numCols, - int32 numOrigCols ) - { int32 row, col; - for( row = 0; row < numRows; row++ ) - { - for( col = 0; col < numCols; col++ ) +//===================================== +/*Calculates a product of two sub-matrices, placing result into result matrix + * The inputs are specified by start and end rows and cols, but use the original + * input matrices. + *Uses a result matrix that is just for this output. + * + */ +void +calcProduct( void *_inputParams ) + { + MatrixMultWorkUnit *workUnit; + int resRow, resCol; + int vecPos, rightArrayStart, resArrayStart; + int leftStride, rightStride; + float32 *leftArray, *rightArray, *resArray, leftElem; + Matrix *leftMatrix, *rightMatrix; + + workUnit = (MatrixMultWorkUnit *)_inputParams; + + //A vector is one row of left sub-matrix, times one col of right sub-matrix + // it marches down both the left row from the row's start col to its end col, + // and also marches down the right col, from its start row to its end row. + + leftMatrix = workUnit->leftMatrix; + rightMatrix = workUnit->rightMatrix; + + leftArray = leftMatrix->array; + rightArray = rightMatrix->array; + resArray = workUnit->prodArray; //a temp array for result of this one sub-matrix + + leftStride = leftMatrix->numCols; //numCols is for entire input matrix + rightStride = rightMatrix->numCols;// not the sub-piece + + int32 rightNumCols, resStride, resNumCols, resNumRows, leftNumCols; + int32 leftStartRow, leftStartCol, rightStartCol; + //result array is sized to this sub-piece.. (+1 'cause 1st idx is 0) + rightNumCols = workUnit->rightEndCol - workUnit->rightStartCol + 1; + resStride = rightNumCols; + resNumCols = rightNumCols; + resNumRows = workUnit->leftEndRow - workUnit->leftStartRow + 1; + leftNumCols = workUnit->leftEndCol - workUnit->leftStartCol + 1; + leftStartRow = workUnit->leftStartRow; + leftStartCol = workUnit->leftStartCol; + rightStartCol = workUnit->rightStartCol; + + /* In order to use all elements of right matrix within a cache line, + * switch the loop nest around, so that march down row of right matrix, + * reusing single element of left matrix with them all.. + for i + for k + a = A[i][k] + for j + R[i][j] = a * B[k][j] + */ + + for( resRow = 0; resRow < resNumRows; resRow++ ) + { //left input matrix starts at startRow, + // right starts at startCol, then both march down the vector.. + // so, use an iteration variable that marches down vector, and add it to + // start positions for left and right arrays.. + for( vecPos = 0; vecPos < leftNumCols; vecPos++ ) { - resultArray[ (row + startRow) * numOrigCols + (col + startCol) ] += - subMatrixPairResultArray[ row * numCols + col ]; + leftElem = + leftArray[ (leftStartRow + resRow) * leftStride + leftStartCol + vecPos ]; + //inner loop will march down this row inside right matrix's array + rightArrayStart = vecPos * rightStride + rightStartCol; + resArrayStart = resRow * resStride; + + for( resCol = 0; resCol < resNumCols; resCol++ ) + { + resArray[ resArrayStart + resCol ] += + leftElem * rightArray[ rightArrayStart + resCol ]; + } + } } - } - startRow = aResult->leftSubMatrix->origStartRow; - numRows = aResult->leftSubMatrix->numRows, - startCol = aResult->rightSubMatrix->origStartCol, - numCols = aResult->rightSubMatrix->numCols, - numOrigCols = aResult->rightSubMatrix->origMatrix->numCols - for( row = 0; row < numRows; row++ ) - { - for( col = 0; col < numCols; col++ ) - { - resultArray[ (row + startRow) * numOrigCols + (col + startCol) ] += - aResArray[ row * numCols + col ]; - } - } -//===================================== -/*A Vector processor is created with an environment that holds two matrices, - * the row and col that it owns, and the name of a result gathering - * processor. - *It calculates its vector product then sends the result to the result - * processor, which puts it into the result matrix and returns that matrix - * when all is done. - */ -void * -calcVector( void *data ) - { - VectorParams *params; - int myRow, myCol, vectLength, pos; - float32 *leftMatrixArray, *rightMatrixArray, result = 0.0; - Matrix *leftMatrix, *rightMatrix; - params = (VectorParams *)data; - myCol = params->myCol; - myRow = params->myRow; - vectLength = params->vectLength; - leftMatrix = params->leftMatrix; - rightMatrix = params->rightMatrix; - leftMatrixArray = leftMatrix->array; - rightMatrixArray = rightMatrix->array; - //===================== DEBUG ====================== - #ifdef PRINT_DEBUG_1 - if( myCol == 0 ) - printf("start vector: %d, %d\n", myRow, myCol ); fflush(stdin); - #endif - //==================================================== - - for( pos = 0; pos < vectLength; pos++ ) - { - result += *(leftMatrixArray + myRow * vectLength + pos) * - *(rightMatrixArray + pos * vectLength + myCol); - } - params->result = result; - - //Send result to results thread - pthread_mutex_lock( &(globals->vector_mutex) );//only get - //the lock when results thd is inside wait. - globals->currVector = params; - pthread_cond_signal( &(globals->vector_cond) ); - pthread_mutex_unlock( &(globals->vector_mutex) );//release - //wait-er -- cond_signal implemented such that wait-er gets lock, no other - - pthread_exit(0); - } - -//======================================= diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/Reo__Matrix_Mult.h --- a/Reo__Matrix_Mult/Reo__Matrix_Mult.h Sun Feb 02 17:58:41 2014 -0800 +++ b/Reo__Matrix_Mult/Reo__Matrix_Mult.h Wed Feb 19 09:27:10 2014 -0800 @@ -5,11 +5,38 @@ #include #include "Circuit.h" - +#include "../Matrix_Mult.h" extern int NUM_ITER; //=============================== Defines ============================== +/* The parameter values in here represent one unit of work + */ +typedef struct + { + // pointers to shared data.. the result matrix must be created when the + // left and right matrices are put into the root ancestor DKUPiece. + Matrix * leftMatrix; + Matrix * rightMatrix; + Matrix * resultMatrix; + + // define the starting and ending boundaries for this piece of the + // result matrix. These are derivable from the left and right + // matrices, but included them for readability of code. + int prodStartRow, prodEndRow; + int prodStartCol, prodEndCol; + float *prodArray; //array for just the partial product of this work unit + + // Start and end of the portion of the left matrix that contributes to + // this piece of the product + int leftStartRow, leftEndRow; + int leftStartCol, leftEndCol; + // Start and end of the portion of the right matrix that contributes to + // this piece of the product + int rightStartRow, rightEndRow; + int rightStartCol, rightEndCol; + } +MatrixMultWorkUnit; //============================== Structures ============================== typedef struct @@ -22,42 +49,10 @@ typedef struct { - int numRows; - int numCols; + int numProducers; } -ResultsParams; +ConsParams; -typedef struct - { - int myCol; - int myRow; - int vectLength; - Matrix *leftMatrix; - Matrix *rightMatrix; - float32 result; - } -VectorParams; - -typedef struct - { - //for communicating vector results to results Thd - pthread_mutex_t vector_mutex; - pthread_cond_t vector_cond; - VectorParams *currVector; - - //for communicating results array back to seed (divider) Thd - pthread_mutex_t results_mutex; - pthread_cond_t results_cond; - float32 *results; - - //for ensuring results thd has vector lock before making vector thds - pthread_mutex_t start_mutex; - pthread_cond_t start_cond; - - Matrix *rightMatrix; - Matrix *resultMatrix; - } -MatrixMultGlobals; // NOTE: this is a birth function param. The first field of any structure @@ -68,14 +63,15 @@ VReoBridge **inBridges; //array of pointers into circuit's array of bridges VReoBridge **outBridges; //array of pointers into circuit's array of bridges -} TestAppProducerParams; + void *initData; + } VPParams; typedef struct { //The first field must be pointer to a circuit (because is param to birth Fn) VReoCircuit *circuit; //First field must ALWAYS be a pointer to a circuit VReoBridge **inBridges; //array of pointers into circuit's array of bridges VReoBridge **outBridges; //array of pointers into circuit's array of bridges -} TestAppConsumerParams; +} MatrixMultResultGatherParams; typedef struct { int32 producerID; @@ -87,9 +83,10 @@ void producer_Fn(void *data, SlaveVP *animatingVP); void consumer_Fn(void *data, SlaveVP *animatingVP); -void *divideIntoVectors( void *data ); -void *calcVector( void *data ); -void *gatherResults( void *data ); +MatrixMultWorkUnit ** +divideWork( Matrix *leftMatrix, Matrix *rightMatrix, Matrix *resultMatrix, + int targetNumUnits ); +void calcProduct( void *data ); //================================ Global Vars ============================== diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/Result_Pr.c --- a/Reo__Matrix_Mult/Result_Pr.c Sun Feb 02 17:58:41 2014 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -/* - * Copyright 2009 OpenSourceCodeStewardshipFoundation.org - * Licensed under GNU General Public License version 2 - * - * Author: seanhalle@yahoo.com - * - */ - -#include "PThread__Matrix_Mult.h" diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/SeedVP.c --- a/Reo__Matrix_Mult/SeedVP.c Sun Feb 02 17:58:41 2014 -0800 +++ b/Reo__Matrix_Mult/SeedVP.c Wed Feb 19 09:27:10 2014 -0800 @@ -1,101 +1,19 @@ +/* + * Copyright 2014 OpenSourceResearchInstitute.org + * Licensed under GNU General Public License version 2 + * + * Author: seanhalle@yahoo.com + * + */ + #include #include -#include "VReo__Test_App.h" +#include "Reo__Matrix_Mult.h" #define NO_INPUT NULL -// ============================================================================= - -//SELECT how the measurement is done -//only one must be enabled -#define MEASURE_TSC -//#define MEASURE_PERF - -#define saveTimeStampCountInto(low, high) \ - asm volatile("RDTSC; \ - movl %%eax, %0; \ - movl %%edx, %1;" \ - /* outputs */ : "=m" (low), "=m" (high)\ - /* inputs */ : \ - /* clobber */ : "%eax", "%edx" \ - ); - -#define saveLowTimeStampCountInto(low) \ - asm volatile("RDTSC; \ - movl %%eax, %0;" \ - /* outputs */ : "=m" (low) \ - /* inputs */ : \ - /* clobber */ : "%eax", "%edx" \ - ); - -union timeStamp { - uint32_t lowHigh[2]; //lowHigh[0] is low, lowHigh[1] is high - uint64_t total; -}; - -struct perfData { - uint64_t cycles; - uint64_t instructions; -}; - -//MEASURE_TSC should be mutually exclusive with MEASURE_PERF -#ifdef MEASURE_TSC -typedef union timeStamp MeasStruct; -#else -#ifdef MEASURE_PERF -typedef struct perfData MeasStruct; -#endif -#endif - - -//read and save current perf-counter readings for cycles and instrs -#ifdef MEASURE_PERF -#define takeAMeas(core, perfDataStruct) do{ \ - int cycles_fd = cycles_counter_fd[core]; \ - int nread; \ - \ - nread = read(cycles_fd,&(perfDataStruct.cycles),sizeof(perfDataStruct.cycles)); \ - if(nread<0){ \ - perror("Error reading cycles counter"); \ - cycles = 0; \ - } \ - } while (0) //macro magic for scoping -#else -#define takeAMeas(core, timeStampStruct) do{ \ - saveTimeStampCountInto(timeStampStruct.lowHigh[0], timeStampStruct.lowHigh[1]);\ - } while (0) //macro magic for scoping -#endif - -#ifdef MEASURE_PERF -int cycles_counter_fd[NUM_CORES]; -int instrs_counter_fd[NUM_CORES]; -int cycles_counter_main_fd; -#endif - -//=================================== -/* provide a millisecond-resolution timer for each system */ -#if defined(unix) || defined(__unix__) -#include -#include -unsigned long get_msec(void) { - static struct timeval timeval, first_timeval; - - gettimeofday(&timeval, 0); - if(first_timeval.tv_sec == 0) { - first_timeval = timeval; - return 0; - } - return (timeval.tv_sec - first_timeval.tv_sec) * 1000 + (timeval.tv_usec - first_timeval.tv_usec) / 1000; -} -#elif defined(__WIN32__) || defined(WIN32) -#include -unsigned long get_msec(void) { - return GetTickCount(); -} -#else -#error "I don't know how to measure time on your platform" -#endif +#include "MeasurementStuff.c" // ============================================================================= @@ -120,26 +38,28 @@ */ void matrix_mult__seed_Fn(void *_params, SlaveVP *seedVP) { + /* Declare variables. */ + VReoCircuit *circuit; + //MatrixMultPiece **workPieces; + + //MatrixMultParams *params = (MatrixMultParams *)_params; + + /* Log. */ + DEBUG__printf(dbgAppFlow, "start app"); - /* Declare variables. */ - VReoCircuit *circuit; + /* Start Reo plug-in. */ + VReo__start(seedVP); - /* Log. */ - DEBUG__printf(dbgAppFlow, "start app"); - /* Start Reo plug-in. */ - VReo__start(seedVP); + //take measurement before creation of threads, to get total exetime + MeasStruct benchStartMeas, benchEndMeas; + takeAMeas(0, benchStartMeas); - - //take measurement before creation of threads, to get total exetime - MeasStruct benchStartMeas, benchEndMeas; - takeAMeas(0, benchStartMeas); - - /* Create circuit. */ + /* Create circuit. */ circuit = (VReoCircuit *) create_circuit(seedVP); - /* Create VPs. */ - create_VPs_and_connect(circuit, seedVP); + /* Create VPs -- pass along the array of work units*/ + create_VPs_w_init_and_connect(circuit, _params, seedVP); /* Wait for work to end. */ VReo__wait_for_all_VReo_created_work_to_end(seedVP); diff -r c4b1849c05ef -r 1b61e0c00512 Reo__Matrix_Mult/Vector_Pr.c --- a/Reo__Matrix_Mult/Vector_Pr.c Sun Feb 02 17:58:41 2014 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -/* - * Copyright 2009 OpenSourceCodeStewardshipFoundation.org - * Licensed under GNU General Public License version 2 - * - * Author: SeanHalle@yahoo.com - * - */ - -#include "Reo__Matrix_Mult.h" - diff -r c4b1849c05ef -r 1b61e0c00512 main.c --- a/main.c Sun Feb 02 17:58:41 2014 -0800 +++ b/main.c Wed Feb 19 09:27:10 2014 -0800 @@ -11,15 +11,25 @@ int NUM_ITER; -MatrixMultGlobals *globals; int main(int argc, char **argv) { Matrix *leftMatrix, *rightMatrix, *resultMatrix; ParamBag *paramBag; + MatrixMultWorkUnit **workUnits; + VPParams *vpParams, **vpParamsArray; +// ProdParams *prodParams; +// ConsParams *consParams; + int32 numUnitsToMake, vpIdx; + PRProcess *matrixMultProcess; - DEBUG__printf(TRUE, "arguments: %s | %s", argv[0], argv[1]); - if(argc < 3) {printf("give num iter and path to param file on cmd line\n"); exit(1);} + DEBUG__printf(TRUE, "arguments -- numIter: %s | path: %s", argv[1], argv[2] ); + if(argc < 3) {printf("give: num iter and path to param file on cmd line\n"); exit(1);} NUM_ITER = atoi(argv[1]); + numUnitsToMake = NUM_PROD; //defined by Reo circuit generator + + printf("[reo] Settings: %i workers, %i iterations | file: %s \n", NUM_PROD, NUM_ITER, argv[2]); + + set_up_performance_counters(); //read parameters, from file whose path is given on command line paramBag = makeParamBag(); @@ -27,25 +37,51 @@ initialize_Input_Matrices_Via( &leftMatrix, &rightMatrix, paramBag ); - printf("[reo] Settings: %i workers, %i iterations -- ", NUM_PROD, NUM_ITER); - - set_up_performance_counters(); - - PRProcess *matrixMultProcess; - PR_Main__start(); - PR_Main__set_app_info( "matrix multiply prod cons in Reo" ); + PR__start(); + PR__set_app_info( "matrix multiply prod cons in Reo" ); + ParamStruc *inputInfo = getParamFromBag( "inputInfo", paramBag ); + PR__set_input_info( inputInfo->strValue ); - PR_Main__set_input_info( getParamFromBag( "inputInfo", paramBag ) ); - - params->resultMatrix = malloc( numRows * numCols * sizeof(double) ); - params->workUnits = divideWork( leftInput, rightInput, numUnitsToMake ); - - matrixMultProcess = PR_Main__create_process(&matrix_mult__seed_Fn, params); + resultMatrix = PR__malloc( sizeof(Matrix) ); + resultMatrix->array = PR__malloc( leftMatrix->numRows * rightMatrix->numCols * sizeof(double) ); + resultMatrix->numCols = rightMatrix->numCols; + resultMatrix->numRows = leftMatrix->numRows; + workUnits = divideWork( leftMatrix, rightMatrix, resultMatrix, + numUnitsToMake ); - PR_Main__wait_for_process_to_end(matrixMultProcess); - PR__Main__wait_for_all_activity_to_end(); +/* For now, don't need any params inside producer function other than + * the work unit. Also, don't need any params at all inside cons function. + * So, just send the array of work units to the seed Fn, which will pass it + * along to the create_VP part of circuit creation, which will copy the + * elements of the array into the param structs given as initData to the + * VPs, as they are created. + *Need a dummy work unit added to end of work-unit array, to avoid a seg + * fault -- just did a bad hack inside divideWork. + //Now, create params struct for each producer -- holds work unit + for( vpIdx=0; vpIdxinitData = prodParams; + vpParamsArray[vpIdx] = vpParams; + } + //create params for consumer + + vpParams = PR__malloc( sizeof(VPParams) ); + = malloc( sizeof(ProdParams) ); + + vpParams->initData = + vpParamsArray[vpIdx] = vpParams; //this last entry is for the consumer +*/ + + matrixMultProcess = PR__create_process( &matrix_mult__seed_Fn, + workUnits ); + + PR__wait_for_process_to_end(matrixMultProcess); + PR__wait_for_all_activity_to_end(); fflush(stdout); - PR_Main__shutdown(); + PR__shutdown(); exit(0); } diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk --- a/nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk Wed Feb 19 09:27:10 2014 -0800 @@ -15,13 +15,14 @@ CCADMIN=CCadmin RANLIB=ranlib CC=gcc -CCC=gcc-4.6 -CXX=gcc-4.6 +CCC=g++ +CXX=g++ FC=gfortran AS=as # Macros CND_PLATFORM=GNU-Linux-x86 +CND_DLIB_EXT=so CND_CONF=Debug CND_DISTDIR=dist CND_BUILDDIR=build @@ -34,17 +35,14 @@ # Object Files OBJECTFILES= \ + ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ + ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ + ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \ + ${OBJECTDIR}/_ext/1702716545/Circuit.o \ + ${OBJECTDIR}/_ext/1702716545/DivideWork.o \ ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \ - ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ - ${OBJECTDIR}/_ext/1702716545/Circuit.o \ - ${OBJECTDIR}/_ext/1472/main.o \ - ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o \ - ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ - ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o \ - ${OBJECTDIR}/_ext/1702716545/Result_Pr.o \ - ${OBJECTDIR}/_ext/1702716545/EntryPoint.o \ ${OBJECTDIR}/_ext/1702716545/SeedVP.o \ - ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o + ${OBJECTDIR}/_ext/1472/main.o # C Compiler Flags @@ -69,62 +67,47 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES} ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} - ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} + +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1472 + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c + +${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c + +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c + +${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c + +${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c -${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c - -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c +${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c ${OBJECTDIR}/_ext/1472/main.o: ../main.c ${MKDIR} -p ${OBJECTDIR}/_ext/1472 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/main.o ../main.c - -${OBJECTDIR}/_ext/1702716545/Divide_Pr.o: ../Reo__Matrix_Mult/Divide_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o ../Reo__Matrix_Mult/Divide_Pr.c - -${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1472 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c - -${OBJECTDIR}/_ext/1702716545/Vector_Pr.o: ../Reo__Matrix_Mult/Vector_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o ../Reo__Matrix_Mult/Vector_Pr.c - -${OBJECTDIR}/_ext/1702716545/Result_Pr.o: ../Reo__Matrix_Mult/Result_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Result_Pr.o ../Reo__Matrix_Mult/Result_Pr.c - -${OBJECTDIR}/_ext/1702716545/EntryPoint.o: ../Reo__Matrix_Mult/EntryPoint.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/EntryPoint.o ../Reo__Matrix_Mult/EntryPoint.c - -${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c - -${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 - ${RM} $@.d - $(COMPILE.c) -g -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c + ${RM} "$@.d" + $(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c # Subprojects .build-subprojects: diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk --- a/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk Wed Feb 19 09:27:10 2014 -0800 @@ -15,13 +15,14 @@ CCADMIN=CCadmin RANLIB=ranlib CC=gcc -CCC=gcc-4.6 -CXX=gcc-4.6 +CCC=g++ +CXX=g++ FC=gfortran AS=as # Macros CND_PLATFORM=GNU-Linux-x86 +CND_DLIB_EXT=so CND_CONF=Debug_Sequential CND_DISTDIR=dist CND_BUILDDIR=build @@ -34,17 +35,14 @@ # Object Files OBJECTFILES= \ + ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ + ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ + ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \ + ${OBJECTDIR}/_ext/1702716545/Circuit.o \ + ${OBJECTDIR}/_ext/1702716545/DivideWork.o \ ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \ - ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ - ${OBJECTDIR}/_ext/1702716545/Circuit.o \ - ${OBJECTDIR}/_ext/1472/main.o \ - ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o \ - ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ - ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o \ - ${OBJECTDIR}/_ext/1702716545/Result_Pr.o \ - ${OBJECTDIR}/_ext/1702716545/EntryPoint.o \ ${OBJECTDIR}/_ext/1702716545/SeedVP.o \ - ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o + ${OBJECTDIR}/_ext/1472/main.o # C Compiler Flags @@ -61,7 +59,7 @@ ASFLAGS= # Link Libraries and Options -LDLIBSOPTIONS=-L../../PR__lib +LDLIBSOPTIONS=-L../../PR__lib -lpr__ml__sharedmem__dku_debug -lprmalloc -lprparam -lprqueue -lreo_wrapper_lib_opt1 # Build Targets .build-conf: ${BUILD_SUBPROJECTS} @@ -69,62 +67,47 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES} ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} - ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} + +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1472 + ${RM} "$@.d" + $(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 + +${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 + ${RM} "$@.d" + $(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 + +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 + ${RM} "$@.d" + $(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 + +${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 + ${RM} "$@.d" + $(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 + +${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 + ${RM} "$@.d" + $(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 ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(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 + ${RM} "$@.d" + $(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 -${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c - -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c +${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c + ${RM} "$@.d" + $(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 ${OBJECTDIR}/_ext/1472/main.o: ../main.c ${MKDIR} -p ${OBJECTDIR}/_ext/1472 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/main.o ../main.c - -${OBJECTDIR}/_ext/1702716545/Divide_Pr.o: ../Reo__Matrix_Mult/Divide_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o ../Reo__Matrix_Mult/Divide_Pr.c - -${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1472 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c - -${OBJECTDIR}/_ext/1702716545/Vector_Pr.o: ../Reo__Matrix_Mult/Vector_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o ../Reo__Matrix_Mult/Vector_Pr.c - -${OBJECTDIR}/_ext/1702716545/Result_Pr.o: ../Reo__Matrix_Mult/Result_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Result_Pr.o ../Reo__Matrix_Mult/Result_Pr.c - -${OBJECTDIR}/_ext/1702716545/EntryPoint.o: ../Reo__Matrix_Mult/EntryPoint.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/EntryPoint.o ../Reo__Matrix_Mult/EntryPoint.c - -${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c - -${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 - ${RM} $@.d - $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -I../.. -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c + ${RM} "$@.d" + $(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c # Subprojects .build-subprojects: diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/Makefile-Release.mk --- a/nb__Reo_matrix_mult/nbproject/Makefile-Release.mk Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Release.mk Wed Feb 19 09:27:10 2014 -0800 @@ -15,13 +15,14 @@ CCADMIN=CCadmin RANLIB=ranlib CC=gcc -CCC=gcc-4.6 -CXX=gcc-4.6 +CCC=g++ +CXX=g++ FC=gfortran AS=as # Macros CND_PLATFORM=GNU-Linux-x86 +CND_DLIB_EXT=so CND_CONF=Release CND_DISTDIR=dist CND_BUILDDIR=build @@ -34,17 +35,14 @@ # Object Files OBJECTFILES= \ + ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ + ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ + ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \ + ${OBJECTDIR}/_ext/1702716545/Circuit.o \ + ${OBJECTDIR}/_ext/1702716545/DivideWork.o \ ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \ - ${OBJECTDIR}/_ext/1539317932/ParamBag.o \ - ${OBJECTDIR}/_ext/1702716545/Circuit.o \ - ${OBJECTDIR}/_ext/1472/main.o \ - ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o \ - ${OBJECTDIR}/_ext/1472/Matrix_Mult.o \ - ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o \ - ${OBJECTDIR}/_ext/1702716545/Result_Pr.o \ - ${OBJECTDIR}/_ext/1702716545/EntryPoint.o \ ${OBJECTDIR}/_ext/1702716545/SeedVP.o \ - ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o + ${OBJECTDIR}/_ext/1472/main.o # C Compiler Flags @@ -69,62 +67,47 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES} ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} - ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS} + +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1472 + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c + +${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c + +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c + +${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c + +${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c + ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c -${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c - -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c +${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c ${OBJECTDIR}/_ext/1472/main.o: ../main.c ${MKDIR} -p ${OBJECTDIR}/_ext/1472 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/main.o ../main.c - -${OBJECTDIR}/_ext/1702716545/Divide_Pr.o: ../Reo__Matrix_Mult/Divide_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Divide_Pr.o ../Reo__Matrix_Mult/Divide_Pr.c - -${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1472 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c - -${OBJECTDIR}/_ext/1702716545/Vector_Pr.o: ../Reo__Matrix_Mult/Vector_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Vector_Pr.o ../Reo__Matrix_Mult/Vector_Pr.c - -${OBJECTDIR}/_ext/1702716545/Result_Pr.o: ../Reo__Matrix_Mult/Result_Pr.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/Result_Pr.o ../Reo__Matrix_Mult/Result_Pr.c - -${OBJECTDIR}/_ext/1702716545/EntryPoint.o: ../Reo__Matrix_Mult/EntryPoint.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/EntryPoint.o ../Reo__Matrix_Mult/EntryPoint.c - -${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1702716545 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c - -${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c - ${MKDIR} -p ${OBJECTDIR}/_ext/1539317932 - ${RM} $@.d - $(COMPILE.c) -O2 -MMD -MP -MF $@.d -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c + ${RM} "$@.d" + $(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c # Subprojects .build-subprojects: diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/Package-Debug.bash --- a/nb__Reo_matrix_mult/nbproject/Package-Debug.bash Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/Package-Debug.bash Wed Feb 19 09:27:10 2014 -0800 @@ -10,6 +10,7 @@ CND_CONF=Debug CND_DISTDIR=dist CND_BUILDDIR=build +CND_DLIB_EXT=so NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging TMPDIRNAME=tmp-packaging OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash --- a/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash Wed Feb 19 09:27:10 2014 -0800 @@ -10,6 +10,7 @@ CND_CONF=Debug_Sequential CND_DISTDIR=dist CND_BUILDDIR=build +CND_DLIB_EXT=so NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging TMPDIRNAME=tmp-packaging OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/Package-Release.bash --- a/nb__Reo_matrix_mult/nbproject/Package-Release.bash Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/Package-Release.bash Wed Feb 19 09:27:10 2014 -0800 @@ -10,6 +10,7 @@ CND_CONF=Release CND_DISTDIR=dist CND_BUILDDIR=build +CND_DLIB_EXT=so NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging TMPDIRNAME=tmp-packaging OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/configurations.xml --- a/nb__Reo_matrix_mult/nbproject/configurations.xml Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/configurations.xml Wed Feb 19 09:27:10 2014 -0800 @@ -1,5 +1,5 @@ - + ../Reo__Matrix_Mult/Circuit.c ../Reo__Matrix_Mult/Circuit.h - ../Reo__Matrix_Mult/Divide_Pr.c - ../Reo__Matrix_Mult/EntryPoint.c - ../Reo__Matrix_Mult/PThread__Matrix_Mult.h + ../Reo__Matrix_Mult/DivideWork.c ../Reo__Matrix_Mult/Producer_and_Consumer.c - ../Reo__Matrix_Mult/Result_Pr.c + ../Reo__Matrix_Mult/Reo__Matrix_Mult.h ../Reo__Matrix_Mult/SeedVP.c - ../Reo__Matrix_Mult/VMS_primitive_data_types.h - ../Reo__Matrix_Mult/VReo__Test_App.h - ../Reo__Matrix_Mult/Vector_Pr.c ../Matrix_Mult.c ../Matrix_Mult.h @@ -56,16 +51,51 @@ - LOCAL_SOURCES default + true + false + + + + + + + + + + + + + + + + + + + + + + + + - LOCAL_SOURCES default + true + false @@ -81,11 +111,45 @@ 5 + + + + + + + + + + + + + + + + + + + + + + + + - LOCAL_SOURCES default + true + false @@ -94,14 +158,55 @@ DEBUG__SEQUENTIAL_MODE + DEBUG__TURN_ON_DEBUG_PRINT ../../PR__lib + + pr__ml__sharedmem__dku_debug + prmalloc + prparam + prqueue + reo_wrapper_lib_opt1 + + + + + + + + + + + + + + + + + + + + + + + + + diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/private/configurations.xml --- a/nb__Reo_matrix_mult/nbproject/private/configurations.xml Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/private/configurations.xml Wed Feb 19 09:27:10 2014 -0800 @@ -1,5 +1,5 @@ - + Makefile @@ -19,9 +19,6 @@ - - GizmoSimple - gdb @@ -55,9 +52,6 @@ - - GizmoSimple - gdb @@ -91,18 +85,22 @@ - - GizmoSimple - gdb "${OUTPUT_PATH}" + "${OUTPUT_PATH}" 10 9x9.txt + "${OUTPUT_PATH}" 10 config_files/9x9.txt + "${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt + "${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt + "${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt + "${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt + "${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt - "${OUTPUT_PATH}" - /home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist + "${OUTPUT_PATH}" 10 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt + /mnt/hgfs/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist true 0 0 diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/private/private.xml --- a/nb__Reo_matrix_mult/nbproject/private/private.xml Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/private/private.xml Wed Feb 19 09:27:10 2014 -0800 @@ -4,4 +4,7 @@ 1 2 + + + diff -r c4b1849c05ef -r 1b61e0c00512 nb__Reo_matrix_mult/nbproject/project.xml --- a/nb__Reo_matrix_mult/nbproject/project.xml Sun Feb 02 17:58:41 2014 -0800 +++ b/nb__Reo_matrix_mult/nbproject/project.xml Wed Feb 19 09:27:10 2014 -0800 @@ -27,6 +27,9 @@ 1 + + false +