int win(int a[]){ int b[11]; int i=0 ; int ret= 0; set(b); for(i=0 ; i< 11 ; i++){ if ( valid1(i,a) ){ copy(b,a); put1(i,b); ret|= !win(b); } if ( valid2(i,a) ){ copy(b,a); put2(i,b); ret|= !win(b); } if ( valid3(i,a) ){ copy(b,a); put3(i,b); ret|= !win(b); } } return ret; }
int main(int argc, char *argv[]) { double start1,start2,end1,end2; int r; init1(); start1 = omp_get_wtime(); for (r=0; r<reps; r++){ runloop(1); } end1 = omp_get_wtime(); valid1(); printf("Total time for %d reps of loop 1 = %f\n",reps, (float)(end1-start1)); init2(); start2 = omp_get_wtime(); for (r=0; r<reps; r++){ runloop(2); } end2 = omp_get_wtime(); valid2(); printf("Total time for %d reps of loop 2 = %f\n",reps, (float)(end2-start2)); }
int main(int argc, char *argv[]) { double start1,start2,end1,end2; int r; init1(); start1 = omp_get_wtime(); for (r=0; r<reps; r++){ loop1(); } end1 = omp_get_wtime(); double out1 = valid1(); printf("%f,", (float)(end1-start1)); init2(); start2 = omp_get_wtime(); for (r=0; r<reps; r++){ loop2(); } end2 = omp_get_wtime(); double out2 = valid2(); printf("%f,guided,64,%.10f,%.10f\n", (float)(end2-start2), out1, out2); }
int main(int argc, char *argv[]) { loop_time = malloc(omp_get_max_threads()*sizeof(int)); waiting_time = malloc(omp_get_max_threads()*sizeof(int)); int i; for(i=0; i<omp_get_max_threads(); i++) { loop_time[i] = 0; waiting_time[i] = 0; } double start1,start2,end1,end2; int r; init1(); start1 = omp_get_wtime(); for (r=0; r<reps; r++){ runloop(1); } end1 = omp_get_wtime(); valid1(); printf("Total time for %d reps of loop 1 = %f\n",reps, (float)(end1-start1)); printf("#thread\ttime thread spent working\n"); for(i=0;i<omp_get_max_threads(); i++) { printf("\t%d\t%d\t%d\n", i, loop_time[i], waiting_time[i]); loop_time[i] = 0; waiting_time[i] = 0; } init2(); start2 = omp_get_wtime(); for (r=0; r<reps; r++){ runloop(2); } end2 = omp_get_wtime(); valid2(); printf("Total time for %d reps of loop 2 = %f\n",reps, (float)(end2-start2)); printf("#thread\ttime thread spent working\n"); for(i=0;i<omp_get_max_threads(); i++) { printf("\t%d\t%d\t%d\n", i, loop_time[i], waiting_time[i]); } }
int main(int argc, char *argv[]) { double start1,start2,end1,end2; int r; int i; /* Init locks */ for(i=0;i<MAX_PROCS;i++) omp_init_lock(&(remaining_iters_lock[i])); init1(); start1 = omp_get_wtime(); for (r=0; r<reps; r++){ runloop(1); } end1 = omp_get_wtime(); valid1(); printf("Total time for %d reps of loop 1 = %f\n",reps, (float)(end1-start1)); init2(); start2 = omp_get_wtime(); for (r=0; r<reps; r++){ runloop(2); } end2 = omp_get_wtime(); valid2(); printf("Total time for %d reps of loop 2 = %f\n",reps, (float)(end2-start2)); for(i=0;i<MAX_PROCS;i++) omp_destroy_lock(&(remaining_iters_lock[i])); }
int main(int argc, char *argv[]) { FILE *pFile; double start1,start2,end1,end2,time1,time2; int r; init1(); start1 = omp_get_wtime(); for (r=0; r<reps; r++){ loop1(); } end1 = omp_get_wtime(); valid1(); time1 = (float)(end1-start1); printf("Total time for %d reps of loop 1 = %f\n",reps, time1); pFile = fopen ("myfile.txt" , "w"); if (pFile == NULL) perror ("Error opening file"); init2(); start2 = omp_get_wtime(); for (r=0; r<reps; r++){ loop2(); } end2 = omp_get_wtime(); valid2(); time2 = (float)(end2-start2); printf("Total time for %d reps of loop 2 = %f\n",reps, time2); printf("This file is functional\n"); fprintf(pFile,"%lf\t%lf\n",time1, time2); fclose(pFile); }
int main(){ int i, j; //for loops int choice; //option int height; //height of tree int size; //size of array int done = 0; //if user's done using the program, initialized as false int validation; output = fopen("2014.out","w"); //open output file while(done != 1){ choice = printChoice(); if(choice == 1){ char data[MAX_SIZE]; char tag[MAX_SIZE]; //GET DATA printf("DATA: "); scanf("%[^\n]",data); getchar(); //PRINT DATA ARRAY fprintf(output,"DATA: " ); for(i=0;i<strlen(data);i++){ fprintf(output,"%c", data[i]); } fprintf(output,"\n" ); //GET TAGS printf("TAG: "); scanf("%[^\n]",tag); getchar(); //PRINT TAG ARRAY fprintf(output,"TAG: " ); for(i=0;i<strlen(tag);i++){ fprintf(output,"%c", tag[i]); } fprintf(output,"\n" ); if (strlen(data) != strlen(tag)){ //not equal input fprintf(output,"Input is invalid.\n\n"); } else{ getInput(data); getInput(tag); size = strlen(data); if(size==1 && tag[0] == '0'){ //tree with only one node fprintf(output,"Postorder: %c\n",data[0]); fprintf(output,"Levelorder: %c\n",data[0]); fprintf(output,"\nTable: \nLSON NODE RSON\n--------------\n"); fprintf(output," %c\n\n",data[0]); } else if(size==1 && tag[0] == '1'){ //one node with children is invalid fprintf(output,"Input is invalid.\n\n"); } else{ if(tag[0] == '0'){ fprintf(output,"Input is invalid.\n\n"); } else{ validation = valid1(tag,size); if(validation == -1){ Node *root = Tree(data,tag,size); fprintf(output,"Postorder: "); height = printPost(root,output,0); fprintf(output,"\nLevel Order: "); for(i=0;i<height;i++){ printLevel(root, i, output); } fprintf(output,"\nTable: \nLSON NODE RSON\n--------------\n"); printTable(root,output); fprintf(output,"\n\n"); } else{ fprintf(output,"Input is invalid.\n\n"); } } } } } else if(choice == 2){ char filename[MAX_SIZE]; char data_array[MAX_SIZE]; char tag_array[MAX_SIZE]; char data = ' '; int index = 0; printf("Filename: "); scanf("%s",filename); input = fopen(filename,"r"); while(!feof(input)){ index = 0; while(index < MAX_SIZE){ data_array[index] = ' '; tag_array[index] = -1; index++; } index = 0; while(data!=':' && !feof(input)){ data = fgetc(input); } fgetc(input); while(data!='\n' && !feof(input)){ data = fgetc(input); if(data!=' '){ data_array[index] = data; index++; } } int index = 0; while(data!=':' && !feof(input)){ data = fgetc(input); } fgetc(input); data = fgetc(input); while(data!='\n' && !feof(input)){ if(data!=' '){ tag_array[index] = atoi(&data); index++; } data = fgetc(input); } fprintf(output,"DATA: " ); int i; for(i=0;i<index;i++){ if(i==index-1){ fprintf(output,"%c", data_array[i]); } else{ fprintf(output,"%c", data_array[i]); } } fprintf(output,"\n"); fprintf(output,"TAG: " ); for(i=0;i<index;i++){ fprintf(output,"%d", tag_array[i]); } fprintf(output,"\n"); int size = strlen(data_array); if(index==1 && tag_array[0] == 0){ fprintf(output,"Postorder: %c\n",data_array[0]); fprintf(output,"Levelorder: %c\n",data_array[0]); fprintf(output,"\nTable: \nLSON NODE RSON\n--------------\n"); fprintf(output," %c\n\n",data_array[0]); } else if(index==1 && tag_array[0] != 1){ fprintf(output,"Input is invalid.\n\n"); } else{ //print(tag_array,size1); if(tag_array[0] == 0){ fprintf(output,"Input is invalid.\n\n"); } else{ int validation = valid2(tag_array,index); if(validation == -1){ Node *head_node = Tree2(data_array,tag_array,index); fprintf(output,"Postorder: "); height = printPost(head_node, output,0); fprintf(output,"\nLevelorder: "); int i = 0; for(i=0;i<height;i++){ printLevel(head_node, i, output); } fprintf(output,"\nTable: \nLSON NODE RSON\n--------------\n"); printTable(head_node,output); fprintf(output,"\n\n"); } else{ fprintf(output,"Input is invalid.\n\n"); } } } } fclose(input); } else if(choice==3){ printf("Exits.\n"); done = 1; } else{ printf("Wrong input.\n"); } } fclose(output); }
int main(int argc, char *argv[]) { FILE *pFile2,*pFile1; FILE *pipe_gp1; double start1,start2,end1,end2,time1,time2; int r,i=0,rand(void); pFile1 = fopen ("Data/GUIDED-n-file1.dat" , "w"); pFile2 = fopen ("Data/GUIDED-n-file2.dat" , "w"); if (pFile1 == NULL || pFile2 ==NULL) perror ("Error opening file"); for(i=0;i<100;i++) { init1(); start1 = omp_get_wtime(); for (r=0; r<reps; r++){ loop1(); } end1 = omp_get_wtime(); valid1(); time1 = (float)(end1-start1); //printf("Total time for %d reps of loop 1 = %f\n",reps, time1); init2(); start2 = omp_get_wtime(); for (r=0; r<reps; r++){ loop2(); } end2 = omp_get_wtime(); valid2(); time2 = (float)(end2-start2); // printf("Total time for %d reps of loop 2 = %f\n",reps, time2); // printf("This file is functional\n"); // Write everything in the file, before plotting. fprintf(pFile1,"%lf\t%d\t%lf\n",(i+1)*time1,i+1,time1); fprintf(pFile2,"%lf\t%d\t%lf\n",(i+1)*time2,i+1,time2); } printf("\n\t\t\tWritten to 'GUIDED-n-file1.dat & GUIDED-n-file2.dat'\n\n"); fclose(pFile1); fclose(pFile2); // Gnu-plot script pipe_gp1 = popen("gnuplot","w"); fputs("set terminal wxt 0\n ", pipe_gp1); fputs("unset key\n ", pipe_gp1); fputs("set hidden3d\n ", pipe_gp1); fputs("set dgrid3d 50,50\n ", pipe_gp1); fputs("set title '3DPlot1'\n ", pipe_gp1); fputs("set xlabel'Random Axis Arrangement (for 3-d plot)'\n ", pipe_gp1); fputs("set ylabel 'Iteration Number'\n ", pipe_gp1); fputs("set zlabel 'Time taken for 100 iterations'\n ", pipe_gp1); fputs("splot 'Data/GUIDED-n-file1.dat' u 1:2:3 w lines \n ", pipe_gp1); fputs("set terminal png size 1200,800\n ", pipe_gp1); fputs("set output 'Plots/GUIDED-n-3dplot1.png'\n ", pipe_gp1); fputs("replot\n ", pipe_gp1); fputs("reset\n ", pipe_gp1); fputs("set terminal wxt 0\n ", pipe_gp1); fputs("unset key\n ", pipe_gp1); fputs("set title '2DPlot1'\n ", pipe_gp1); fputs("set xlabel 'Iteration Number'\n ", pipe_gp1); fputs("set ylabel 'Time taken for 100 iterations'\n ", pipe_gp1); fputs("plot 'Data/GUIDED-n-file1.dat' u 2:3 w lines \n ", pipe_gp1); fputs("set terminal png size 1200,800\n ", pipe_gp1); fputs("set output 'Plots/GUIDED-n-2dplot1.png'\n ", pipe_gp1); fputs("replot\n ", pipe_gp1); fputs("reset\n ", pipe_gp1); fputs("set terminal wxt 0\n ", pipe_gp1); fputs("unset key\n ", pipe_gp1); fputs("set hidden3d\n ", pipe_gp1); fputs("set dgrid3d 50,50\n ", pipe_gp1); fputs("set title 'Plot2'\n ", pipe_gp1); fputs("set xlabel'Random Axis Arrangement (for 3-d plot)'\n ", pipe_gp1); fputs("set ylabel 'Iteration Number'\n ", pipe_gp1); fputs("set zlabel 'Time taken for 100 iterations'\n ", pipe_gp1); fputs("splot 'Data/GUIDED-n-file2.dat' u 1:2:3 w lines \n ", pipe_gp1); fputs("set terminal png size 1200,800\n ", pipe_gp1); fputs("set output 'Plots/GUIDED-n-3dplot2.png'\n ", pipe_gp1); fputs("replot\n ", pipe_gp1); fputs("reset\n ", pipe_gp1); fputs("set terminal wxt 0\n ", pipe_gp1); fputs("unset key\n ", pipe_gp1); fputs("set title '2DPlot1'\n ", pipe_gp1); fputs("set xlabel 'Iteration Number'\n ", pipe_gp1); fputs("set ylabel 'Time taken for 100 iterations'\n ", pipe_gp1); fputs("plot 'Data/GUIDED-n-file2.dat' u 2:3 w lines \n ", pipe_gp1); fputs("set terminal png size 1200,800\n ", pipe_gp1); fputs("set output 'Plots/GUIDED-n-2dplot2.png'\n ", pipe_gp1); fputs("replot\n ", pipe_gp1); pclose(pipe_gp1); printf("\n\t\t\tPlots at 'GUIDED-n-plot1.png & GUIDED-n-plot2.png' for loop1 & loop2 (100I)\n\n"); }