comparison VMS.c @ 166:aefd87f9d12f

loop graph
author Nina Engelhardt
date Tue, 18 Oct 2011 15:53:04 +0200
parents 395f58384a5c
children 981acd1db6af
comparison
equal deleted inserted replaced
57:daa5859e7392 79:2d9162b961f3
188 188
189 #ifdef DETECT_DEPENDENCIES 189 #ifdef DETECT_DEPENDENCIES
190 _VMSMasterEnv->dependencies = VMS__malloc(10*sizeof(void*)); 190 _VMSMasterEnv->dependencies = VMS__malloc(10*sizeof(void*));
191 _VMSMasterEnv->dependenciesInfo = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->dependencies),10); 191 _VMSMasterEnv->dependenciesInfo = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->dependencies),10);
192 #endif 192 #endif
193 193
194 #ifdef DETECT_LOOP_GRAPH
195 _VMSMasterEnv->loop_graph = VMS__malloc(10*sizeof(void*));
196 _VMSMasterEnv->loop_graph_array_info = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->loop_graph),10);
197 int loop_i;
198 for(loop_i=0;loop_i<NUM_CORES;loop_i++){
199 _VMSMasterEnv->loop_counter[loop_i]=0;
200 }
201
202 #endif
203
194 #ifdef MEAS__PERF_COUNTERS 204 #ifdef MEAS__PERF_COUNTERS
195 _VMSMasterEnv->counter_history = VMS__malloc(10*sizeof(void*)); 205 _VMSMasterEnv->counter_history = VMS__malloc(10*sizeof(void*));
196 _VMSMasterEnv->counter_history_array_info = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->counter_history),10); 206 _VMSMasterEnv->counter_history_array_info = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->counter_history),10);
197 //printf("Creating HW counters..."); 207 //printf("Creating HW counters...");
198 FILE* output; 208 FILE* output;
807 printf("Opening Dependencies file failed. Please check that folder \"counters\" exists in run directory.\n"); 817 printf("Opening Dependencies file failed. Please check that folder \"counters\" exists in run directory.\n");
808 } else { 818 } else {
809 printf("Could not open Dependencies file, please clean \"counters\" folder. (Must contain less than 255 files.)\n"); 819 printf("Could not open Dependencies file, please clean \"counters\" folder. (Must contain less than 255 files.)\n");
810 } 820 }
811 #endif 821 #endif
822 #ifdef DETECT_LOOP_GRAPH
823 FILE* loop_output;
824 int loop_n;
825 char loop_filename[255];
826 for(loop_n=0;loop_n<255;loop_n++)
827 {
828 sprintf(loop_filename, "./counters/LoopGraph.%d.dot",loop_n);
829 loop_output = fopen(loop_filename,"r");
830 if(loop_output)
831 {
832 fclose(loop_output);
833 }else{
834 break;
835 }
836 }
837 if(loop_n<255){
838 printf("Saving Loop Graph to File: %s ...\n", loop_filename);
839 loop_output = fopen(loop_filename,"w+");
840 if(loop_output!=NULL){
841 set_dependency_file(loop_output);
842 fprintf(loop_output,"digraph Loop {\n");
843 set_loop_file(loop_output);
844 forAllInDynArrayDo(_VMSMasterEnv->counter_history_array_info, &print_dot_node_info );
845 forAllInDynArrayDo( _VMSMasterEnv->loop_graph_array_info, &print_per_slot_to_file );
846 //int coreIdx;
847 //for(coreIdx=0;coreIdx<NUM_CORES;coreIdx++){
848 // fprintf(loop_output,"sync%d_%d [shape=rect,label=\"Sync\"];\n",coreIdx,_VMSMasterEnv->loop_counter[coreIdx]);
849 //}
850 fprintf(loop_output,"}\n");
851 } else
852 printf("Opening Loop Graph file failed. Please check that folder \"counters\" exists in run directory.\n");
853 } else {
854 printf("Could not open Loop Graph file, please clean \"counters\" folder. (Must contain less than 255 files.)\n");
855 }
856 #endif
812 #ifdef MEAS__TIME_PLUGIN 857 #ifdef MEAS__TIME_PLUGIN
813 printHist( _VMSMasterEnv->reqHdlrLowTimeHist ); 858 printHist( _VMSMasterEnv->reqHdlrLowTimeHist );
814 saveHistToFile( _VMSMasterEnv->reqHdlrLowTimeHist ); 859 saveHistToFile( _VMSMasterEnv->reqHdlrLowTimeHist );
815 printHist( _VMSMasterEnv->reqHdlrHighTimeHist ); 860 printHist( _VMSMasterEnv->reqHdlrHighTimeHist );
816 saveHistToFile( _VMSMasterEnv->reqHdlrHighTimeHist ); 861 saveHistToFile( _VMSMasterEnv->reqHdlrHighTimeHist );