modifier *, 186, 186modifier &, 186modifier %, 186modifier +, 186modifier =, 186Operand constraintsmachine, 183Optimization, 23C/C++ pragmas, 45, 108C/C++ pragmas scope, 111default level, 28default levels, 44defined, 24Fortran directives, 45, 107Fortran directives scope, 110function inlining, 15, 24, 49global, 24, 28global optimization, 28inline libraries, 50Inter-Procedural Analysis, 24IPA, 24local, 24, 28, 45loops, 24loop unrolling, 24, 29-Munroll, 29no level specified, 27none, 27-O0, 27-O1, 27-O2, 27-O3, 27-O4, 27-Olevel, 27options, 23parallelization, 35PFO, 25PGPROF, 23profile-feedback (PFO), 44Profile-Feedback Optimization, 25profiler, 23using -Mipa, 39vectorization, 24, 30Optionscache size, 31-dryrun, 26frequently used, 21196Mchkfpstk, 139-Minfo, 26-Mneginfo, 26optimizing code, 23perfromance-related, 21prefetch, 32SSE-related, 31PParallalizationcode speed, 15Parallelization, 23, 24auto-parallelization, 35C++ Pragmas, 60Directives, 55Directives, defined, 59directives format, 59directives usage, 38failed auto-parallelization, 36Mac OS X, 14-Mconcur=altcode, 35-Mconcur=cncall, 36-Mconcur=dist, 36NCPUS environment variable, 36Pragmas, 55pragmas usage, 38safe_lastval, 38Parallel Programmingautomatic shared-memory, 7data parallel shared-memory, 7distributed-memeory, 7Linux, 9OpenMP shared-memory, 7run HPF program, 8run SMP program, 8styles, 7Performance-fast, 20-fastsse, 20-Mipa, 21-Mpi=fast, 21options, 21overview, 20PGDBGlaunch, 11launch for x64, 11<strong>PGI</strong> Start menu, 11, 11<strong>PGI</strong>_Termabort value, 141debug value, 140signal value, 140trace value, 140<strong>PGI</strong>_TERMnoabort value, 141nodebug value, 140nosignal value, 140notrace value, 140<strong>PGI</strong> CDK, 76PGPROFlaunch, 11overview, 23<strong>PGI</strong> Start menu, 11profile MPI applications, 75profiler, 23Platformsspecific considerations, 9supported, 9PortabilityLinux, 146Linux package, 146multi-threaded programs, 46Pragmas, 107C/C++, 3clauses, 62default scope, 108defined, 60format, 60global scope, 108loop scope, 108OpenMP C/C++, 55optimization, 108<strong>PGI</strong> Proprietary, 108prefetch example, 115prefetch syntax, 115recognition, 60routine scope, 108scope, 108, 111scope rules, 113Summary table, 60summary table, 108syntax, 108Prefetch, 32
Indexdirectives, 113directives example, 114directives sentinel, 114directives syntax, 114pargma example, 115pargma syntax, 115Preprocessorcpp, 5Fortran, 5Processorsarchitecture, 148Profilegenerate data, 78MPI applications, 75Profiler, 23launch, 11PGPROF, 75Programsextracting, 53PropagationIPA phase, 41Proprietary environment variablesFORTRAN_OPT, 133, 135GMON_OUT_PREFIX, 133MP_BIND, 133MP_BLIST, 133MP_SPIN, 133MP_WARN, 133MPSTKZ, 133NCPUS, 134NCPUS_MAX, 134NO_STOP_MESSAGE, 134<strong>PGI</strong>, 134<strong>PGI</strong>_CONTINUE, 134<strong>PGI</strong>_OBJSUFFIX, 134<strong>PGI</strong>_STACK_USAGE, 134<strong>PGI</strong>_TERM, 134<strong>PGI</strong>_TERM_DEBUG, 134, 134STATIC_RANDOM_SEED, 134TMP, 134TMPDIR, 134Rranlib command, 122RecompileIPA phase, 41Redistributable fileslicensing on Linux, 147Linux, 146RedistributablesMicrosoft Open Tools, 147<strong>PGI</strong> directories, 147ReleasePVF Release Notes, 11Restrictionsinlining, 53Return values, 155character, 155complex, 156Runtimelibraries on Windows, 120library routines, 65Linux considerations, 145SScalarslast value, 38Scopesdirectives, 107pragma rules, 113pragmas, 108Serverdocumentation, 11Setenvironment variables, 131Shared object filescreating, 118using, 118Shells<strong>PGI</strong> bash, 10<strong>PGI</strong> bash for x64, 10<strong>PGI</strong> command, 10<strong>PGI</strong> command for x64, 10siterc files, 14SSEexample, 33scalar code generation, 28vectorization example, 32Stackstraceback, 143Startmenu, PGDBG, 11, 11menu, PGPROF, 11Staticdata in Linux, 168Static librarieson Windows, 121STDCALLcalling conventions, 164Stringsmodifiers, assembly, 188Subroutines, 152Symbolname construction, 163Syntaxcommand-line options, 2pragmas, 108prefetch directives, 114, 114prefetch pragmas, 115SYSTEM_CLOCK, 46usage, 46TTableFortran Directives, 108, 115MPI Implementation Options, 74OpenMP Environment Variables,70TasksOpenMP overview, 58thread-compliant, HP-MPI, 77TimingCPU_CLOCK, 46execution, 45SYSTEM_CLOCK, 46TOC file, 52ToolsPGDBG, xviiiPGPROF, xviii, xviiiusage documentation, 11, 11UUnderscoresinter-language calling usage, 153Unified Binariescommand-line switches, 149, 149directives, 149-Mipa option, 39197
- Page 2 and 3:
While every precaution has been tak
- Page 5 and 6:
PGI ® Compiler User’s Guide4. Us
- Page 7 and 8:
PGI ® Compiler User’s GuideRefer
- Page 12 and 13:
xii14.6. Intrinsic Header File Orga
- Page 14 and 15:
xiv13.3. Large Array and Small Memo
- Page 16 and 17:
Organizationxvi• Fortran 95 Handb
- Page 18 and 19:
Conventionsin this guide with which
- Page 21 and 22:
Chapter 1. Getting StartedThis chap
- Page 23 and 24:
Chapter 1. Getting StartedWhere:opt
- Page 25 and 26:
Chapter 1. Getting Startedfilename.
- Page 27 and 28:
Chapter 1. Getting Startedfilename.
- Page 29 and 30:
Chapter 1. Getting Startedparallel
- Page 31 and 32:
Chapter 1. Getting Startedas execut
- Page 33 and 34:
Chapter 1. Getting Startedar or ran
- Page 35 and 36:
Chapter 1. Getting StartedTo do thi
- Page 37 and 38:
Chapter 2. Using Command LineOption
- Page 39 and 40:
Chapter 2. Using Command Line Optio
- Page 41 and 42:
Chapter 2. Using Command Line Optio
- Page 43 and 44:
Chapter 3. Optimizing & Parallelizi
- Page 45 and 46:
Chapter 3. Optimizing & Parallelizi
- Page 47 and 48:
Chapter 3. Optimizing & Parallelizi
- Page 49 and 50:
Chapter 3. Optimizing & Parallelizi
- Page 51 and 52:
Chapter 3. Optimizing & Parallelizi
- Page 53 and 54:
Chapter 3. Optimizing & Parallelizi
- Page 55 and 56:
Chapter 3. Optimizing & Parallelizi
- Page 57 and 58:
Chapter 3. Optimizing & Parallelizi
- Page 59 and 60:
Chapter 3. Optimizing & Parallelizi
- Page 61 and 62:
Chapter 3. Optimizing & Parallelizi
- Page 63 and 64:
Chapter 3. Optimizing & Parallelizi
- Page 65 and 66:
Chapter 3. Optimizing & Parallelizi
- Page 67:
Chapter 3. Optimizing & Parallelizi
- Page 70 and 71:
Invoking Function Inlining50except:
- Page 72 and 73:
Creating an Inline Librarylevel of
- Page 74 and 75:
Restrictions on InliningA Fortran s
- Page 76 and 77:
OpenMP OverviewFortran directives a
- Page 78 and 79:
Task OverviewN = 1000DO I = 1, NV(I
- Page 80 and 81:
C/C++ Parallelization PragmasC/C++
- Page 82 and 83:
Directive and Pragma ClausesFortran
- Page 84 and 85:
Directive and Pragma ClausesThis cl
- Page 86 and 87:
Run-time Library RoutinesRun-time L
- Page 88 and 89:
Run-time Library RoutinesRun-time L
- Page 90 and 91:
Environment VariablesRun-time Libra
- Page 93 and 94:
Chapter 6. Using MPIMessage Passing
- Page 95 and 96:
Chapter 6. Using MPIyou are using M
- Page 97 and 98:
Chapter 6. Using MPIthe root of the
- Page 99 and 100:
Chapter 6. Using MPIcorrelated with
- Page 101:
Chapter 6. Using MPI• Add the fol
- Page 104 and 105:
TerminologyAvailability84The PGI 11
- Page 106 and 107:
System Requirements86Vector operati
- Page 108 and 109:
Memory Model88• waits for complet
- Page 110 and 111:
Accelerator DirectivesAccelerator D
- Page 112 and 113:
Accelerator Directives• Initial d
- Page 114 and 115:
Accelerator DirectivesThis directiv
- Page 116 and 117:
Accelerator Directive ClausesUse th
- Page 118 and 119:
Environment Variables• Interfaces
- Page 120 and 121:
PGI Unified Binary for Accelerators
- Page 122 and 123:
Profiling Accelerator KernelsWith '
- Page 124 and 125:
Supported IntrinsicsTable 7.5. Supp
- Page 126 and 127:
References related to AcceleratorsT
- Page 128 and 129:
PGI Proprietary C and C++ Pragmas10
- Page 130 and 131:
Scope of Fortran Directives and Com
- Page 132 and 133:
Scope of C/C++ Pragmas and Command-
- Page 134 and 135:
Prefetch Directives and Pragmas114d
- Page 136 and 137:
C$PRAGMA CTable 8.2. !DEC$ Directiv
- Page 138 and 139:
Using System Library Routines118voi
- Page 140 and 141:
Creating and Using Dynamic Librarie
- Page 142 and 143:
Creating and Using Dynamic-Link Lib
- Page 144 and 145:
Creating and Using Dynamic-Link Lib
- Page 146 and 147:
Creating and Using Dynamic-Link Lib
- Page 148 and 149:
Creating and Using Dynamic-Link Lib
- Page 150 and 151:
Using LIB3FStep 3: Run the exe to e
- Page 152 and 153:
Setting Environment VariablesIn bas
- Page 154 and 155:
PGI-Related Environment VariablesEn
- Page 156 and 157:
PGI Environment VariablesLD_LIBRARY
- Page 158 and 159:
PGI Environment VariablesNCPUS138Se
- Page 160 and 161:
PGI Environment VariablesThe value
- Page 162 and 163:
Using Environment Modules on LinuxT
- Page 164 and 165:
144
- Page 166 and 167: Deploying Applications on Linux146T
- Page 168 and 169: Code Generation and Processor Archi
- Page 170 and 171: 150
- Page 172 and 173: Inter-language Calling Consideratio
- Page 174 and 175: Compatible Data TypesNoteFortran Ty
- Page 176 and 177: Array Indices! Fortran function ret
- Page 178 and 179: ExamplesCompile and execute the pro
- Page 180 and 181: Examples160int a,b,c;a=8; b=2;print
- Page 182 and 183: Win32 Calling Conventionscout
- Page 184 and 185: Win32 Calling Conventions164call wo
- Page 186 and 187: 166
- Page 188 and 189: Large Static Data in LinuxC/C++ Dat
- Page 190 and 191: Practical Limitations of Large Arra
- Page 192 and 193: Medium Memory Model and Large Array
- Page 194 and 195: Large Array and Small Memory Model
- Page 196 and 197: Extended Inline AssemblyExtended In
- Page 198 and 199: Extended Inline Assemblyexample2:..
- Page 200 and 201: Extended Inline Assembly180movq %rs
- Page 202 and 203: Extended Inline AssemblyConstraintw
- Page 204 and 205: Extended Inline AssemblyConstraintu
- Page 206 and 207: Extended Inline AssemblyConstraintM
- Page 208 and 209: Extended Inline AssemblyModifierDes
- Page 210 and 211: Intrinsicsvoid example21(){void * s
- Page 212 and 213: suboptions, 18syntax, 2, 17Commands
- Page 214 and 215: InstallLinux portability package, 1
- Page 218: optimization, 39-tp option, 39UNIXc