From 47ced4e96bbb782b9e780e8f2cfc637b2c21ff44 Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Mon, 19 Oct 2020 01:30:29 -0400 Subject: Enable internal DIS job looping and port to new extra.h API Changes to DIS code: - field, pointer, transitive, and update's random initialization steps moved the main job loop (so that they run on fresh state each job). - Moved free() calls outside of the job loop in matrix - Removed loose clock() call in pointer Misc fixes: - Added input file for neighborhood - Log status before, rather than after, printing in gen_input.py --- dis/Matrix/ver2/matrix.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'dis/Matrix') diff --git a/dis/Matrix/ver2/matrix.c b/dis/Matrix/ver2/matrix.c index 2b075fb..5162579 100755 --- a/dis/Matrix/ver2/matrix.c +++ b/dis/Matrix/ver2/matrix.c @@ -407,13 +407,6 @@ void biConjugateGradient(double *value, int *col_ind, int *row_start, *actualError = error; *actualIteration = iteration; - free(tmpVector1); - free(tmpVector2); - free(tmpVector3); - - free(vectorR); - free(vectorP); - return; } @@ -525,27 +518,34 @@ int main(int argc, char **argv) { randInit(seed); - START_LOOP - initMatrix(matrixA, dim, numberNonzero); + for_each_job { + initMatrix(matrixA, dim, numberNonzero); - create_CRS(matrixA, value, col_ind, row_start, dim, numberNonzero); + create_CRS(matrixA, value, col_ind, row_start, dim, numberNonzero); - initVector(vectorB, dim); - zeroVector(vectorX, dim); + initVector(vectorB, dim); + zeroVector(vectorX, dim); - beginTime = time(NULL); + beginTime = time(NULL); - actualError = 0; - actualIteration = 0; + actualError = 0; + actualIteration = 0; - biConjugateGradient(value, col_ind, row_start, vectorB, vectorX, - errorTolerance, maxIterations, &actualError, - &actualIteration, dim, vectorP, vectorR, nextVectorR, - tmpVector1, tmpVector2, tmpVector3); + biConjugateGradient(value, col_ind, row_start, vectorB, vectorX, + errorTolerance, maxIterations, &actualError, + &actualIteration, dim, vectorP, vectorR, nextVectorR, + tmpVector1, tmpVector2, tmpVector3); - STOP_LOOP + } endTime = time(NULL); + free(tmpVector1); + free(tmpVector2); + free(tmpVector3); + + free(vectorR); + free(vectorP); + sum = 0; for (k = 1; k < dim; k++) { sum += sum + *(vectorX + k); -- cgit v1.2.2