Index
Symbols
- .NO_PARALLEL: special target, 12
- .PARALLEL: special target, 12
- .WAIT special target, 9
A
- About box, 32
- archiving libraries, 10
- array
- graphing, 71
- array display, 73
- arrays
- automatic updating, 72
- automatic parallelization
- -parallel compiler switch, 25
B
- Build Server Configuration File, 4
- build servers, 13
C
- C array example program, 81
- call-graph profile
- threads, 50
- changing array display perspective, 73
- changing the array display, 73
- compiler switch
- -depend, 33
- -loopinfo, 33
- -O4, 25
- -parallel, 25
- promotion of, 32
- -Zlp, 25
- -Ztha (Thread Analyzer), 43
- concurrent file modification, 10
- condition variable
- time spent wating for signal, 42
- contour array graph, 73
D
- -depend (perform data dependency analysis), 33
- dependency lists, 9
- explicit ordering, 9
- implicit ordering, 9
- distributed make, explanation of, 3
- DMake host, 13
- Dmake, basic concept, 3
- DOALL pragma
- mark loop for parallelization, 32
E
- effects of optimizations applied to loops
- inlining, 38
- phantom loops, 38
- environment variable
- LD_LIBRARY_PATH, 25
- PARALLEL, 24
- exit Thread Analyzer, 46
- explicit parallelization, 32
- , 32
- -explicitpar, 32
F
- file
- collision, 12
- concurrent modification, 10
- fix and continue, 97
- conditions, 99
- example, 101
- restrictions, 98
- using, 98
- Fortran array example program, 80
- function glyph (Thread Analyzer), 47
G
- gnuemacs editor, help with, 30
- graphing an array, 71
- graphing an array from dbx, 72
H
- hints about optimizations applied to loops, 34
- compiler generated two versions of this loop, 35
- loop contains backward flow of control, 37
- loop contains data dependency, 36
- loop contains I/O, or other function calls, that are not MT safe, 37
- loop contains multiple exits, 37
- loop contains procedure call, 35
- loop marked by user-inserted pragma, DOALL, 37
- loop may have been distributed, 37
- loop may or may not hold enough work to be profitably parallelized, 36
- loop significantly transformed during optimization, 36
- no hint available, 35
- two or more loops may have been fused, 38
- two or more loops may have been interchanged, 38
I
- inlining, 38
- instrumenting a program with-Ztha, 43
L
- LD_LIBRARY_PATH environment variable, 25
- library update, concurrent, 10
- limitations on makefiles, 9
- loop contains backward flow of control, 37
- loop contains procedure call, 35
- loop may have been distributed, 37
- -loopinfo (print hints about loops), 33
- LoopReport
- loading timing file, 26
- starting, 26
- loops,phantom, 38
- LoopTool
- bar chart of loop runtimes, 27
- choosing an editor, 30
- creating a detailed report on loops, 29
- editing source code, 30
- getting help, 32
- gettting hints, 30
- graphical user interface, 26
- LD_LIBRARY_PATH, 25
- loading timing file, 26
- looptool command, 27
- LVPATH environment variable, 27
- online explanation of all compiler hints, 29
- opening files, 28
- printing the LoopTool graph, 29
- sending comments, 32
- setting default search paths, 30
- specified via command line (looptool command), 27
- starting, 26
- Version menu in editor, 30
- XUSERFILESEARCHPATH, 24
- LVPATH environment variable, 27
M
- macro
- dynamic, 10
- makefiles, limitations, 9
- metrics collected by Thread Analyzer, 48
- multiple targets, 11
- multiprocessing, 19
- multiprocessors, how many, 24
- multithreaded, 19
N
- naming convention, thread, 48
- ncpus utility, 24
- No hint available, 35
O
- optimizations applied to loops
- inlining, 38
- loop transformations
- jamming, 39
- transposition, 39
- unrolling, 39
- phantom loops, 38
P
- LoopReport
- , 27
- LoopTool
- , 27
- -p option, 27
- -parallel (automatic parellelization), 32
- PARALLEL environment variable, 24
- parallel loop nested inside serial loop
- wallclock anomaly, 39
- parallelism, 20
- restricting, 12
- parallelize loop marked by DOALL pragma
- -explicitpar, 32
- phantom loops, 38
- pragma
- DOALL, 32
- processors, how many on your machine, 24
- profile data
- functions, 51
- program, 51
- threads, 51
- program glyph (Thread Analyzer), 47
- promotion of compiler switches, 32
Q
- quit Thread Analyzer, 46
R
- read system call
- number per second, 43
- reader/writer read lock
- time spent wating to acquire, 43
- reader/writer write lock
- time spent waiting to acquire, 43
- restricting parallelism, 12
- restrictions on makefiles, 9
- rotating array display, 73
- runtime checking
- features, 85
- limitations, 86
- memory access error checking, 87
- memory access error reporting, 89
- memory access errors, 89
- memory leak error reporting, 93
- memory leak errors, 93
- memory leaks checking, 90
- setting options, 95
- starting, 87
- Runtime Configuration File, 4
S
- surface array graph, 73
T
- targets
- .NO_PARALLEL:, 12
- .PARALLEL:, 12
- .WAIT, 9
- multiple, 11
- Thread Analyzer, 41 to 53, 53 to 65
- blocking on I/O or thread synchronization, 61
- bottleneck, narrowing focus, 61 to 63
- call-graph profile for threads, 50
- collapse glyph hierarchy, 48
- collecting metrics, 44
- conventions, 48
- CPU time filter, 63 to 65
- display graph, 49
- display table, 49
- error messages, 48
- exit, 46
- expand glyph hierarchy, 48
- filter, 53
- glyph hierarchy, 48
- gprof table, 50
- gprof table for particular thread, 56
- graph condition variable wait time, 63
- hierarchy navigation, 48
- horizontal scrollbar, 47
- identified via graphical data, 60 to ??
- initial investigation, 54 to 59
- instrumenting program, 43
- interactive error messages, 48
- Load button, 49
- load trace directory, 49
- loading a trace directory via command line, 44
- manipulating menus, 48
- metric
- condition variable wait time, 42
- CPU time, 42
- file reads (ops), 43
- file write (bytes), 43
- file writes (ops), 43
- reader/writer read lock wait, 43
- reader/writer write lock, 43
- total sync wait time, 43
- wall clock time, 42
- metric graph, 49
- metric graph property sheet, 49
- metric scope, entire program, 42
- metric scope, single function, 42
- metric scope, single thread, 42
- metric table, 52
- metric table for particular function, 58
- metrics, 48
- collected by, 48
- mouse gestures, 48
- multiple metrics for particular thread or function, 52
- multiple metrics, particular function, 52
- multiple metrics, particular thread, 52
- navigating through glyph hierarchy, 48
- particular glyph level, 51
- performance bottlenecks, 60 to 61
- plot CPU time versus wallclock time, 60
- prof table, 51
- prof table for all threads, 55
- profile data for functions, 51
- profile data for program, 51
- profile data for threads, 51
- property sheet, 49, 51
- quit, 46
- select metric, 49
- sorted metric profile table, 51
- sorted metric profile table for all threads, 59
- sorted metric profile table property sheet, 51
- specifying pathname to executable via command line, 44
- start ThA via comand line, 44
- tha.pid directory, 44
- thread naming convention, 48
- threshold CPU time for function, 53
- threshold CPU time for thread, 53
- trace data file, 46
- View menu, 49
- write trace data files, 44
- -Ztha, 43
- thread glyph (Thread Analyzer), 47
- thread naming convention, 48
- thread synchronization
- time spent on, 43
- timing file, 26
- timing file location
- LoopTool
- current directory, 26
- specified via environment variable, 27
- specified via -p option, 27
- Two or more loops may have been fused, 38
- two or more loops may have been interchanged, 38
U
- updating array displays, 72
V
- Version menu, in LoopTool, 30
- vi editor, help with, 30
- vitem, 72
W
- wallclock anomaly
- parallel loop nested inside serial loop, 39
- write system call
- number of bytes written, 43
- number per second, 43
X
- xemacs editor, help with, 30
- XUSERFILESEARCHPATH (LoopTool environment variable), 24
Z
- -Ztha
- instrument program
- C, 43
- C++, 43
- FORTRAN, 43
- -Ztha compiler option for Thread Analyzer, 43