SGI Altix Applications Development and Optimization
Total Page:16
File Type:pdf, Size:1020Kb
SGI Altix Applications Development and Optimization Part No.: AAPPL-0.9-L2.4-S-SD-W-DRAFT Release Date: May 15, 2003 2 RESTRICTION ON USE This document is protected by copyright and contains information proprietary to Silicon Graphics, Inc. Any copying, adaptation, distribution, public performance, or public display of this document without the express written consent of Silicon Graphics, Inc., is strictly prohibited. The receipt or possession of this document does not convey the rights to reproduce or distribute its contents, or to manufacture, use, or sell anything that it may describe, in whole or in part, without the specific written consent of Silicon Graphics, Inc. Copyright 1997-2000 Silicon Graphics, Inc. All rights reserved. U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure of the data and information contained in this document by the Government is subject to restrictions as set forth in FAR 52.227-19(c)(2) or subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or in similar or successor clauses in the FAR, or the DOD or NASA FAR Supplement. Unpublished rights reserved under the Copyright Laws of the United States. Contrac- tor/manufacturer is Silicon Graphics, Inc., 1600 Amphitheatre Pkwy., Mountain View, CA 94039-1351. The contents of this publication are subject to change without notice. PART NUMBER AAPPL-0.9-L2.4-S-SD-W-DRAFT, May 2003 RECORD OF REVISION Revision 0.9, Version 2.4, April 2003. SGI TRADEMARKS InfiniteReality, IRIX, Silicon Graphics, and the Silicon Graphics logo are registered trademarks, and Altix, Altix 3000, Origin, Origin 2000, Origin 300, Origin 3000, Power Challenge, Power ChallengeArray, NUMAflex and ProDev are trademarks of Silicon Graphics, Inc. OTHER TRADEMARKS CRAY is a registered trademark, and T90, and T3E are trademarks of Cray, Inc. Intel, Itanium, KAP/Pro and VTune are registered trademarks of Intel Corp. NT is a registered trademark of Microsoft Corp. Linux is a trademark of Linus Torvalds. R8000 is a registered trademark, and MIPSPro, R5000, R10000, and R12000 are trademarks of MIPS Technologies, Inc., used under license by Silicon Graphics, Inc. Paragon is a registered trademarks of Intel Corp. Sun and NFS are registered trademarks, and Starfire is a trademark of Sun Microsystems, Inc. UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Com- pany, Ltd. Other brand or product names are the trademarks or registered trademarks of their respective holders. i CONTRIBUTIONS This course is based on the Origin Applications Development and Optimization course developed by Merdi Rafiei, updated by Kim Snyder, further updated by Gerardo Cisneros. Altix-specific material derived from various sources, including presentations by John Baron, Tom Elken, Jean-Pierre Panziera, Arthur Raefsky and Brian Sumner. FONT CONVENTIONS The following font conventions are used throughout this manual: The default font is used for regular text, keyboard keys (for example, Enter, Shift, Ctrl-c), program names, system names, and toolchest names. Bold is used for button names (for example, Apply and OK), commands, menu names, icon names, and node names. Emphasized is used for filenames, folders, and URLs. The fixed width font is used for code, system output, and onscreen prompts. Fixed width italics is used for variables. Fixed width bold is used for user input. THIS DOCUMENT IS PROVIDED “AS-IS” AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IM- PLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABIL- ITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PER- FORMANCE OF THIS SOFTWARE. ii Contents 1 Overview 1 1.1 Module Objectives . 1 1.2 Definition of Scalability . 2 1.3 Scalability . 3 1.4 Symmetric Multiprocessors (SMPs) . 4 1.5 SMP Performance . 5 1.6 SMP Performance (continued) . 6 1.7 Arrays (Clusters) . 7 1.8 Arrays (Clusters) (continued) . 8 1.9 Arrays (Clusters) (continued) . 9 1.10 Arrays (Clusters) (continued) . 10 1.11 Massively Parallel Processors (MPPs) . 11 1.12 MPPs (continued) . 12 1.13 MPP Features . 13 1.14 Scalable Symmetric Multiprocessors (S2MPs) . 14 1.15 S2MPs (continued) . 15 1.16 S2MPs (continued) . 16 1.17 Scalable Operating Systems . 17 1.18 Scalable Operating Systems (continued) . 18 1.19 Scalable Operating Systems (continued) . 19 1.20 Scalable Application Development . 20 1.21 Scalable Application Development (continued) . 21 1.22 Scalable Application Development (continued) . 22 1.23 Scalable Application Development (continued) . 23 1.24 Scalable Application Development (continued) . 24 1.25 Scalable Application Development (continued) . 25 1.26 Scalable Application Development (continued) . 26 1.27 Scalable I/O – Points of View . 27 1.28 Scalable I/O - Parallel I/O Programming . 28 1.29 Summary . 29 1.30 Summary (continued) . 30 1.31 Summary (continued) . 31 1.32 Summary (continued) . 32 iii iv Contents 2 Altix Compiling Environment 33 2.1 Module Objectives . 33 2.2 C/C++ and Fortran Compilers . 34 2.3 Compiling a Program . 35 2.4 Common Compiler Options . 36 2.5 Floating-point Underflow . 37 2.6 Storage Classes and Virtual Addresses . 38 2.7 Storage Classes and Virtual Addresses (continued) . 39 2.8 Modules . 40 2.9 Modules (continued) . 41 2.10 Libraries . 42 2.11 Static Versus Dynamic Libraries . 43 2.12 Creating Static Libraries . 44 2.13 Examples Using ar(1) . 45 2.14 Using Static Libraries . 46 2.15 Creating Dynamic Libraries . 47 2.16 Using Dynamic Libraries . 48 2.17 C/C++ Libraries . 49 2.18 Getting Information About Object Files and Libraries . 50 2.19 Listing File Properties and File Size . 51 2.20 Estimating Memory Requirements of a Program . 52 2.21 Getting Information About ELF Files . 54 2.22 Listing Global Symbol Table Information . 55 2.23 Using nm(1) To Find Unresolved Symbols . 56 2.24 Disassembling Object Files . 57 2.25 Stripping Executables of Symbol Table Information . 58 2.26 Name Mangling and c++filt . 59 3 SGI Altix Architecture 63 3.1 Module Objective . 63 3.2 SGI Altix 3000 . 64 3.3 Scalable Cache Coherent Shared Memory . 65 3.4 Shared Memory Without a Bus . 66 3.5 Cache Coherence . 68 3.6 Altix 3000 Architecture . 70 3.7 Altix 3000 Limits . 71 3.8 The C-Brick . 72 3.9 The IX-Brick . 75 3.10 The Power Bay . 79 3.11 SGI Altix 3300: Systems Up to 12 Processors . 80 3.12 The R-Brick . 81 3.13 Systems Up to 16 Processors . ..