GuideView OpenMP性能分析器使用* .gvs文件格式嗎?.gvs(GuideView openmp statistics)文件格式
生成「guide.gvs」,f.e.由英特爾與
$ export LD_PRELOAD=<path_to_icc_or_redist>/lib/libiompprof5.so
$ ./openmp_parallelized_prog
$ ls -l guide.gvs
GuideView OpenMP性能分析器使用* .gvs文件格式嗎?.gvs(GuideView openmp statistics)文件格式
生成「guide.gvs」,f.e.由英特爾與
$ export LD_PRELOAD=<path_to_icc_or_redist>/lib/libiompprof5.so
$ ./openmp_parallelized_prog
$ ls -l guide.gvs
OpenMP'ed程序這是個純文本。
這裏是很短的OMP程序的這樣一個例子:
$ cat guide.gvs
*** KAI statistics library k3301
*** Begin Task 0
Environment variables:
OMP_NUM_THREADS : 2
OMP_SCHEDULE : static
OMP_DYNAMIC : FALSE
OMP_NESTED : FALSE
KMP_STATSFILE : guide.gvs
KMP_STATSCOLS : 80
KMP_INTERVAL : 0
KMP_BLOCKTIME : 200
KMP_PARALLEL : 2
KMP_STACKSIZE : 2097152
KMP_STACKOFFSET : 0
KMP_SCHEDULING : <unknown>
KMP_CHUNK : <unknown>
KMP_LIBRARY : throughput
end
System parameters:
start : Wed Nov 1 12:26:52 2010
stop : Wed Nov 1 12:26:52 2010
host : localhost
ncpu : 2
end
Unix process parameters:
maxrss : 0
minflt : 440
majflt : 2
nswap : 0
inblock : 208
oublock : 0
nvcsw : 6
nivcsw : 7
end
Region counts:
serial regions : 2
barrier regions : 0
parallel regions : 1
end
Program execution time (in seconds):
cpu : 0.00 sec
elapsed : 0.04 sec
serial : 0.00 sec
parallel : 0.04 sec
cpu percent : 0.01 %
end
Summary over all regions (has 2 threads):
# Thread #0 #1
Sum Parallel : 0.036 0.027
Sum Imbalance : 0.035 0.026
Min Parallel : 0.036 0.027
Min Imbalance : 0.035 0.026
Max Parallel : 0.036 0.027
Max Imbalance : 0.035 0.026
end
Region #1 (has 2 threads) at main/9 in "/home/user/icc/omp.c":
# Thread #0 #1
Sum Parallel : 0.036 0.027
Sum Imbalance : 0.035 0.026
Min Parallel : 0.036 0.027
Min Imbalance : 0.035 0.026
Max Parallel : 0.036 0.027
Max Imbalance : 0.035 0.026
end
Region #1 (has 2 threads) profile:
# Thread Incl Excl Routine
0,0 : 0.000 0.000 main/9 "/home/user/icc/omp.c"
1,0 : 0.000 0.000 main/9 "/home/user/icc/omp.c"
end
Serial program regions:
Serial region #1 executes for 0.00 seconds
begins at START OF PROGRAM
ends before region #1 (using 2 threads) at main/9 in "/home/user/icc/omp.c"
Serial region #2 executes for 0.00 seconds
begins after region #1 (using 2 threads) at main/9 in "/home/user/icc/omp.c"
ends at END OF PROGRAM
end
Serial region #1 profile:
# Thread Incl Excl Routine
end
Serial region #2 profile:
# Thread Incl Excl Routine
end
Program events (total):
# Thread #0 #1
mppbeg : 1 0
mppend : 1 0
serial : 2 0
mppfkd : 1 0
mppfrk : 1 0
mppjoi : 1 0
mppadj : 1 0
mpptid : 51 50
end
Region #1 (has 2 threads) events:
# Thread #0 #1
mppfrk : 1 0
mppjoi : 1 0
mpptid : 50 50
end
Serial section events:
# Serial #1 #2
mppbeg : 1 0
mppend : 0 1
serial : 1 1
mppfkd : 1 0
mppadj : 1 0
mpptid : 1 0
end
*** end
一些說明http://www.acsu.buffalo.edu/~charngda/iompprof.html也http://www.compunity.org/events/ewomp03/omptalks/wednesday/PET1/mohr_ibm.pdf的第27-34頁 – osgx 2011-02-15 13:27:06
http://www.compunity.org/events/ewomp03/omptalks/wednesday/PET1/mohr_ibm.pdf鏈接標題爲「IBM OpenMP編程環境(juelich多處理器)」(由Luiz DeRose和Bernd Mohr編寫)。還有一個小例子 - http://www.lrz.de/services/compute/supermuc/tuning/guideview/「LPZ:GuideView」。 GuideView最初是作爲「OpenMP的KAP/Pro工具集」的一部分開發的,我們可以看到諸如「KAI統計信息庫」之類的字符串和諸如「KMP_」之類的環境變量以及像「__kmpc_」這樣的「nam」。自2000年起,KAI在英特爾內部解散:http://www.intel.com/pressroom/archive/releases/2000/cn040600.htm – osgx 2014-06-10 18:29:28
在近代的英特爾編譯器(版本14)的發佈沒有libiompprof5.so,但它是在這裏的11版時代和周圍。這部分在openmprtl.org進程中不是開源的。現在,VTune/Threading Tools用於剖析OpenMP程序,並且有「itt」(「ittnotify」,Instrumentation and Tracing Technology(ITT)API - https://software.intel.com/zh-cn/articles/intel- itt-api-open-source)libomp(openmprtl)和VTune或Threading Tools之間的第三方接口。 – osgx 2014-06-10 18:39:57