The Portland Group
Total Page:16
File Type:pdf, Size:1020Kb
® PGI Compiler Reference Manual Parallel Fortran, C and C++ for Scientists and Engineers Release 2011 The Portland Group While every precaution has been taken in the preparation of this document, The Portland Group® (PGI®), a wholly-owned subsidiary of STMicroelectronics, Inc., makes no warranty for the use of its products and assumes no responsibility for any errors that may appear, or for damages resulting from the use of the information contained herein. The Portland Group retains the right to make changes to this information at any time, without notice. The software described in this document is distributed under license from STMicroelectronics and/or The Portland Group and may be used or copied only in accordance with the terms of the end-user license agreement ("EULA"). PGI Workstation, PGI Server, PGI Accelerator, PGF95, PGF90, PGFORTRAN, and PGI Unified Binary are trademarks; and PGI, PGHPF, PGF77, PGCC, PGC++, PGI Visual Fortran, PVF, PGI CDK, Cluster Development Kit, PGPROF, PGDBG, and The Portland Group are registered trademarks of The Portland Group Incorporated. Other brands and names are property of their respective owners. No part of this document may be reproduced or transmitted in any form or by any means, for any purpose other than the purchaser's or the end user's personal use without the express written permission of STMicroelectronics and/or The Portland Group. PGI® Compiler Reference Manual Copyright © 2010-2011 STMicroelectronics, Inc. All rights reserved. Printed in the United States of America First printing: Release 2011, 11.0, December, 2010 Second Printing: Release 2011, 11.1, January 2011 Third Printing: Release 2011, 11.3, March 2011 Fourth Printing: Release 2011, 11.4, April 2011 Fifth Printing: Release 2011, 11.5, May 2011 Technical support: [email protected] Sales: [email protected] Web: www.pgroup.com ID: 111162228 Contents Preface ...................................................................................................................................... xv Audience Description ............................................................................................................. xv Compatibility and Conformance to Standards ............................................................................. xv Organization ......................................................................................................................... xvi Hardware and Software Constraints ........................................................................................ xvii Conventions ......................................................................................................................... xvii Related Publications .............................................................................................................. xix 1. Fortran, C, and C++ Data Types .................................................................................... 1 Fortran Data Types .................................................................................................................. 1 Fortran Scalars ............................................................................................................... 1 FORTRAN 77 Aggregate Data Type Extensions ...................................................................... 3 Fortran 90 Aggregate Data Types (Derived Types) ................................................................ 4 C and C++ Data Types ........................................................................................................... 4 C and C++ Scalars ......................................................................................................... 4 C and C++ Aggregate Data Types ...................................................................................... 6 Class and Object Data Layout ............................................................................................ 6 Aggregate Alignment ........................................................................................................ 7 Bit-field Alignment .......................................................................................................... 8 Other Type Keywords in C and C++ .................................................................................. 8 2. Command-Line Options Reference ................................................................................. 9 PGI Compiler Option Summary ................................................................................................. 9 Build-Related PGI Options ................................................................................................ 9 PGI Debug-Related Compiler Options ............................................................................... 12 PGI Optimization-Related Compiler Options ...................................................................... 13 PGI Linking and Runtime-Related Compiler Options ........................................................... 13 C and C++ Compiler Options ................................................................................................. 14 Generic PGI Compiler Options ................................................................................................ 17 C and C++ -specific Compiler Options ..................................................................................... 58 –M Options by Category ......................................................................................................... 69 Code Generation Controls ............................................................................................... 70 C/C++ Language Controls .............................................................................................. 74 iii Environment Controls .................................................................................................... 76 Fortran Language Controls ............................................................................................. 77 Inlining Controls ........................................................................................................... 81 Optimization Controls .................................................................................................... 82 Miscellaneous Controls .................................................................................................. 92 3. OpenMP Reference Information ................................................................................. 101 Tasks ................................................................................................................................. 101 Task Characteristics and Activities .................................................................................. 101 Task Scheduling Points ................................................................................................. 101 Task Construct ............................................................................................................ 102 Parallelization Directives and Pragmas ................................................................................... 104 ATOMIC and atomic ........................................................................................................... 104 BARRIER and barrier ......................................................................................................... 105 CRITICAL ... END CRITICAL and critical ................................................................................. 105 C$DOACROSS .................................................................................................................... 107 DO...END DO and for ......................................................................................................... 108 FLUSH and flush ................................................................................................................ 110 MASTER ... END MASTER and master .................................................................................... 110 ORDERED and ordered ....................................................................................................... 111 PARALLEL ... END PARALLEL and parallel ............................................................................... 112 PARALLEL DO .................................................................................................................... 113 PARALLEL SECTIONS and parallel sections .............................................................................. 114 PARALLEL WORKSHARE ... END PARALLEL WORKSHARE ........................................................... 115 SECTIONS … END SECTIONS and sections ............................................................................ 116 SINGLE ... END SINGLE and single ........................................................................................ 117 TASK and task ................................................................................................................... 117 TASKWAIT and taskwait ........................................................................................................ 119 THREADPRIVATE and threadprivate ........................................................................................ 120 WORKSHARE ... END WORKSHARE ......................................................................................... 121 Directive and Pragma Clauses ............................................................................................... 121 COLLAPSE