main () { int h,i,j,k; int n_var=7; int t_var=5; int nSize[7] = {16, 64, 256, 1024, 4096, 16384, 65536}; int threads[5] = {1, 2, 4, 8, 16}; int repeat = 1000; printf("Lab Work 2 - Performance Test - Merge By Ranking\n"); printf("\t\tseq\t"); for(h=0;h<t_var;h++) printf("t=%i\t", threads[h]); printf("\n"); for(i=0; i<n_var; i++) { //set up inputs int *A, *B, *AB; int n = nSize[i]*2/3; int m = nSize[i]/3; setup(&A, &B, &AB, n, m); //printDataset("Input A: ", A, n); //printDataset("Input B: ", B, m); printf("size=%.5i\t", nSize[i]); timeFunc(mergeSeq, A, B, AB, n, m, 1, repeat); int seqResult[n+m]; for(j=0;j<n+m;j++) seqResult[j] = AB[j]; for(k=0;k<t_var;k++) { //set up threads number. int threads_num = threads[k]; omp_set_dynamic(0); omp_set_num_threads(threads_num); timeFunc(merge, A, B, AB, n, m, threads_num, repeat); } int parResult[n+m]; for(j=0;j<n+m;j++) parResult[j] = AB[j]; verifyResult(seqResult, parResult, n); printf("\n"); //printDataset("Output AB: ", AB, n+m); //printf("\n"); } }
/* ** current_time() ** ** This function returns the same value as time('now'). */ static void ctimeFunc( sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2 ){ UNUSED_PARAMETER2(NotUsed, NotUsed2); timeFunc(context, 0, 0); }
main () { int h,i,j,k; int n_var=7; int t_var=5; int nSize[7] = {16, 64, 256, 1024, 4096, 16384, 65536}; //int nSize[7] = {17,17,17,17,17,17,17}; int threads[5] = {1, 2, 4, 8, 16}; int repeat = 1000; printf("Lab Work 3 - Performance Test - List Ranking\n"); printf("\t\tseq\t"); for(h=0;h<t_var;h++) printf("t=%i\t", threads[h]); printf("\n"); for(i=0; i<n_var; i++) { //set up inputs int *S, *R; int n = nSize[i]; setup(&S, &R, n); // int x[17] = {0, 14, 13, 5, 16, 11, 10, 9, 12, 0, 8, 7, 15, 4, 3, 2, 1}; // // S=x; //printf("Input n: 0 1 2 3 4\n"); //printDataset("Input S: ", S, n); printf("size=%.5i\t", nSize[i]); timeFunc(listRankSeq, S, R, n, repeat); int seqResult[n]; for(j=0;j<n;j++) seqResult[j] = R[j]; for(k=0;k<t_var;k++) { //set up threads number. int threads_num = threads[k]; omp_set_dynamic(0); omp_set_num_threads(threads_num); timeFunc(listRank, S, R, n, repeat); } int parResult[n]; for(j=0;j<n;j++) parResult[j] = R[j]; verifyResult(seqResult, parResult, n); printf("\n"); //printDataset("Output R: ", R, n); //printf("\n"); } }