STMicroelectronics PGI
Manuals and User Guides for STMicroelectronics PGI. We found 1 manuals for free downloads User Guide
Below you will find brief information for PGI. Parallel Fortran, C and C++ compilers are designed for scientists and engineers. The guide provides details on optimizing and parallelizing code, using directives and pragmas, and more.
Key Features
Parallel Fortran, C, and C++ support
Optimization and parallelization tools
Directive and pragma usage
Interprocedural analysis (IPA)
Profile-feedback optimization (PFO)
Pages: 496 STMicroelectronics PGI User Guide
Brand: STMicroelectronics Category: Software Size: 1 MB
Languages: English
Table of contents
- 30 Command-line Syntax
- 31 Command-line Options
- 31 Fortran Directives and C/C++ Pragmas
- 32 Input Files
- 34 Output Files
- 36 Running SMP Parallel Programs
- 36 Running Data Parallel HPF Programs
- 37 Using the PGI Compilers on Linux
- 37 Linux Header Files
- 38 Running Parallel Programs on Linux
- 38 Using the PGI Compilers on Windows
- 38 BASH Shell Environment
- 39 Windows Command Prompt
- 39 Using the PGI Compilers on SUA and SFU
- 39 Subsystem for Unix Applications (SUA and SFU)
- 39 SUA/SFU Header Files
- 40 Running Parallel Programs on SUA and SFU
- 40 Using Shared object files in SFU and SUA
- 40 Using the PGI Compilers on Mac OS X
- 40 Mac OS X Header Files
- 40 Mac OS Debugging Requirements
- 41 Linking on Mac OS X
- 41 Running Parallel Programs on Mac OS X
- 41 Using siterc Files
- 41 Using User rc Files
- 45 Command-line Options Syntax
- 46 Command-line Suboptions
- 46 Command-line Conflicting Options
- 48 Using –fast and –fastsse Options
- 48 Other Performance-related Options
- 52 Local Optimization
- 52 Global Optimization
- 52 Loop Optimization: Unrolling, Vectorization, and Parallelization
- 52 Interprocedural Analysis (IPA) and Optimization
- 52 Function Inlining
- 53 Profile-Feedback Optimization (PFO)
- 56 Scalar SSE Code Generation
- 58 Vectorization Sub-options
- 59 Assoc Option
- 59 Cachesize Option
- 59 SSE Option
- 60 Prefetch Option
- 60 Vectorization Example Using SSE/SSE2 Instructions
- 63 Auto-parallelization Sub-options
- 63 Altcode Option
- 63 Dist Option
- 63 Cncall Option
- 64 Loops That Fail to Parallelize
- 64 Innermost Loops
- 64 Timing Loops
- 65 Scalars
- 65 Scalar Last Values
- 67 Building a Program Without IPA – Single Step
- 68 Building a Program Without IPA - Several Steps
- 68 Building a Program Without IPA Using Make
- 69 Building a Program with IPA
- 69 Building a Program with IPA - Single Step
- 70 Building a Program with IPA - Several Steps
- 70 Building a Program with IPA Using Make
- 70 Questions about IPA
- 74 libpgbind
- 75 libnuma
- 78 Using an Inline Library
- 80 Working with Inline Libraries
- 80 Dependencies
- 80 Updating Inline Libraries - Makefiles
- 83 OpenMP Shared-Memory Parallel Programming Model
- 84 Terminology
- 85 OpenMP Example
- 102 Compiling and Linking MPI Applications
- 102 Debugging MPI Applications
- 103 Profiling MPI Applications
- 105 Compiling using OpenMPI
- 106 Generate MPI Profile Data
- 106 MSMPI Environment
- 106 Compiling using MSMPI
- 106 Generate MPI Profile Data
- 107 Compiling using OpenMPI
- 107 Generate MPI Profile Data
- 109 Components
- 110 Availability
- 110 User-directed Accelerator Programming
- 110 Features Not Covered or Implemented
- 112 Required Files
- 113 Command Line Flag
- 113 Host Functions
- 114 Levels of Parallelism
- 114 Separate Host and Accelerator Memory Considerations
- 115 Accelerator Memory
- 115 Cache Management
- 116 Enable Accelerator Directives
- 116 Format
- 116 C Directives
- 117 Free-Form Fortran Directives
- 118 Fixed-Form Fortran Directives
- 118 Accelerator Directive Summary
- 123 Runtime Library Definitions
- 124 Runtime Library Routines
- 127 Multiple Processor Targets
- 128 PGPROF pgcollect
- 128 NVIDIA CUDA Profile
- 129 TAU - Tuning and Analysis Utility
- 129 Supported Fortran Intrinsics Summary Table
- 130 Supported C Intrinsics Summary Table
- 140 Prefetch Directive Syntax
- 140 Prefetch Directive Format Requirements
- 140 Sample Usage of Prefetch Directive
- 141 Prefetch Pragma Syntax
- 141 Sample Usage of Prefetch Pragma
- 141 Format Requirements
- 141 Summary Table
- 146 Shared Object Error Message
- 146 Shared Object-Related Compiler Switches
- 148 ar command
- 149 ranlib command
- 159 Setting Environment Variables on Linux
- 160 Setting Environment Variables on Windows
- 160 Setting Environment Variables on Mac OSX
- 163 FLEXLM_BATCH
- 163 FORTRANOPT
- 163 GMON_OUT_PREFIX
- 163 LD_LIBRARY_PATH
- 164 LM_LICENSE_FILE
- 164 MANPATH
- 164 MPSTKZ
- 164 MP_BIND
- 165 MP_BLIST
- 165 MP_SPIN
- 165 MP_WARN
- 165 NCPUS
- 166 NCPUS_MAX
- 166 NO_STOP_MESSAGE
- 166 PATH
- 166 PGI
- 167 PGI_CONTINUE
- 167 PGI_OBJSUFFIX
- 167 PGI_STACK_USAGE
- 167 PGI_TERM
- 169 PGI_TERM_DEBUG
- 169 PWD
- 169 STATIC_RANDOM_SEED
- 170 TMP
- 170 TMPDIR
- 173 Runtime Library Considerations
- 174 64-bit Linux Considerations
- 174 Linux Redistributable Files
- 174 Restrictions on Linux Portability
- 174 Installing the Linux Portability Package
- 175 Licensing for Redistributable Files
- 175 PGI Redistributables
- 175 Microsoft Redistributables
- 176 Generating Generic x86 Code
- 176 Generating Code for a Specific Processor
- 177 PGI Unified Binary Command-line Switches
- 177 PGI Unified Binary Directives and Pragmas
- 182 Fortran Named Common Blocks
- 183 Passing by Value (%VAL)
- 183 Character Return Values
- 184 Complex Return Values
- 185 Example - Fortran Calling C
- 186 Example - C Calling Fortran
- 187 Example - C++ Calling C
- 187 Example - C Calling C++
- 188 Example - Fortran Calling C++
- 189 Example - C++ Calling Fortran
- 190 Win32 Fortran Calling Conventions
- 191 Symbol Name Construction and Calling Example
- 192 Using the Default Calling Convention
- 192 Using the STDCALL Calling Convention
- 193 Using the C Calling Convention
- 193 Using the UNIX Calling Convention
- 193 Using the CREF Calling Convention
- 196 C/C++ Data Types
- 196 Fortran Data Types
- 205 Output Operands
- 207 Input Operands
- 208 Clobber List
- 209 Additional Constraints
- 209 Simple Constraints
- 211 Machine Constraints
- 213 Multiple Alternative Constraints
- 213 Constraint Modifiers
- 215 Operand Aliases
- 215 Assembly String Modifiers
- 217 Extended Asm Macros
- 221 Fortran Scalars
- 223 FORTRAN 77 Aggregate Data Type Extensions
- 224 Fortran 90 Aggregate Data Types (Derived Types)
- 224 C and C++ Scalars
- 226 C and C++ Aggregate Data Types
- 226 Class and Object Data Layout
- 227 Aggregate Alignment
- 228 Bit-field Alignment
- 228 Other Type Keywords in C and C++
- 229 Build-Related PGI Options
- 232 PGI Debug-Related Compiler Options
- 233 PGI Optimization-Related Compiler Options
- 233 PGI Linking and Runtime-Related Compiler Options
- 289 Code Generation Controls
- 293 C/C++ Language Controls
- 295 Environment Controls
- 296 Fortran Language Controls
- 298 Inlining Controls
- 300 Optimization Controls
- 310 Miscellaneous Controls
- 319 Task Characteristics and Activities
- 319 Task Scheduling Points
- 320 Task Construct
- 339 COLLAPSE (n)
- 340 COPYIN (list)
- 340 COPYPRIVATE(list)
- 340 DEFAULT
- 341 FIRSTPRIVATE(list)
- 341 IF()
- 341 LASTPRIVATE(list)
- 341 NOWAIT
- 341 NUM_THREADS
- 341 ORDERED
- 342 PRIVATE
- 342 REDUCTION
- 343 SCHEDULE
- 344 SHARED
- 344 UNTIED
- 344 OMP_DYNAMIC
- 344 OMP_NESTED
- 344 OMP_MAX_ACTIVE_LEVELS
- 344 OMP_NUM_THREADS
- 345 OMP_SCHEDULE
- 345 OMP_STACKSIZE
- 345 OMP_THREAD_LIMIT
- 346 OMP_WAIT_POLICY
- 348 Accelerator Compute Region Directive
- 349 Accelerator Data Region Directive
- 350 Accelerator Loop Mapping Directive
- 351 Combined Directive
- 351 Accelerator Declarative Data Directive
- 352 Accelerator Update Directive
- 353 if clause
- 354 Data Clauses
- 355 copy (list)
- 355 copyin (list)
- 355 copyout (list)
- 356 local (list)
- 356 mirror (list)
- 356 update device|host (list)
- 357 update device (list)
- 357 update host (list)
- 357 Loop Scheduling Clauses
- 358 cache (list)
- 358 host [(width)]
- 358 independent
- 359 kernel
- 359 parallel [(width)]
- 359 private (list)
- 360 seq [(width)]
- 360 shortloop
- 360 unroll [(width)]
- 360 vector [(width)]
- 361 Declarative Data Directive Clauses
- 361 reflected (list)
- 361 Update Directive Clauses
- 361 device (list)
- 362 host (list)
- 362 acc_get_device
- 362 acc_get_num_devices
- 363 acc_init
- 364 acc_set_device
- 364 acc_set_device_num
- 365 acc_shutdown
- 365 acc_on_device
- 366 ACC_DEVICE
- 366 ACC_DEVICE_NUM
- 367 ACC_NOTIFY
- 370 Type Name Mangling
- 371 Nested Class Name Mangling
- 371 Local Class Name Mangling
- 371 Template Class Name Mangling
- 374 altcode (noaltcode)
- 375 assoc (noassoc)
- 375 bounds (nobounds)
- 375 cncall (nocncall)
- 375 concur (noconcur)
- 375 depchk (nodepchk)
- 375 eqvchk (noeqvchk)
- 376 fcon (nofcon)
- 376 invarif (noinvarif)
- 376 ivdep
- 376 lstval (nolstval)
- 376 prefetch
- 376 opt
- 377 safe (nosafe)
- 377 safe_lastval
- 378 safeptr (nosafeptr)
- 379 single (nosingle)
- 379 tp
- 379 unroll (nounroll)
- 380 vector (novector)
- 380 vintr (novintr)
- 380 ALIAS Directive
- 381 ATTRIBUTES Directive
- 382 DECORATE Directive
- 382 DISTRIBUTE Directive
- 382 IGNORE_TKR Directive
- 385 Function Calling Sequence
- 385 Register Usage Conventions
- 388 Function Return Values
- 389 Argument Passing
- 392 Function Calling Sequence
- 394 Function Return Values
- 395 Argument Passing
- 397 Linux86-64 Fortran Supplement
- 398 Fortran Fundamental Types
- 398 Naming Conventions
- 399 Argument Passing and Return Conventions
- 399 Inter-language Calling
- 400 Arrays
- 401 Common Blocks
- 402 Function Calling Sequence
- 404 Function Return Values
- 405 Argument Passing
- 407 Win64/SUA64 Fortran Supplement
- 407 Fortran Fundamental Types
- 408 Fortran Naming Conventions
- 408 Fortran Argument Passing and Return Conventions
- 409 Inter-language Calling
- 418 DFLIB
- 419 DFPORT
- 425 advapi32
- 427 comdlg32
- 427 dfwbase
- 428 dfwinty
- 428 gdi32
- 431 kernel32
- 439 shell32
- 440 user32
- 444 winver
- 444 wsock32
- 447 Required Header File
- 448 Intrinsic Data Types
- 448 Intrinsic Example
- 456 Message Format
- 456 Message List
- 481 Message Format
- 481 Message List
Frequently Answers and Questions
How do I invoke the command-level PGI compilers?
Use the appropriate command-line syntax and options as described in the manual.
What are Fortran directives and C/C++ pragmas used for?
They are used to guide the compiler for optimization and parallelization.
Where can I find information about parallel programming using the PGI compilers?
Refer to the sections on SMP parallel programs and data parallel HPF programs.
advertisement