180 likes | 290 Views
Parallel/Concurrent Programming on the SGI Altix. Conley Read January 25, 2007 UC Riverside, Department of Computer Science. Overview. The SGI Altix Itanium 2 Features Tools Schedutils MPI Programming Star-P References Try It. About the SGIs. sgi-2.cs.ucr.edu 32 processor
E N D
Parallel/Concurrent Programming on the SGI Altix Conley Read January 25, 2007 UC Riverside, Department of Computer Science
Overview • The SGI Altix • Itanium 2 Features • Tools • Schedutils • MPI Programming • Star-P • References • Try It
About the SGIs • sgi-2.cs.ucr.edu • 32 processor • Intel Itanium • 1.5 GHz • 128 GB (70 GB) RAM • sgi-dev.cs.ucr.edu • 4 processor (2 sockets X 2 cores) • Intel Xeon • 3 GHz • 8 GB RAM • 2 Virtex 4 LX200 FPGAs • 200,000 Logic Cells • 80 MB SRAM
SGI Altix 3000 • Runs one copy of Fedora or OpenSUSE Linux • Ported to SGI Hardware (Lessons from IRIX) • Linux natively supports management of 32 processors • 1 copy of Linux vs. 1 copy of Linux per node • Node sizes 32,64,128…? • Programming for the 32 processor SGI is similar to programming for a 4 way SMP
Global Shared Memory • Single Memory space • All system resources • Processors • I/O • SGI Altix 3000 uses NUMAflex (interconnect) to connect Itaniums with NUMAlink (ASIC) • Creates SMP-like system • Regardless of the node location of thread execution • Interprocess communication time is reduced
The Itanium 2 • First Supercomputer using Itanium (1) • IBM Titan NOW Cluster at NCSA • Unique Features • 16 Byte Atomic Operations • IA-64 • Fixed Length Instructions • Relies on Compile-time Optimizations • Branch Speculative Execution • Speculatively fetches data not in Cache • Virtualization (Intel Vanderpool Technology or VT) • Explicitly Parallel Instruction Computing (EPIC)
Tools • GNU C Compiler – Installed • Intel C Compiler (icc) – Waiting for License • Intel Debugger (idb) • GNU gdb – Debugger – Installed • Some problems with code generated by icc • Etnus TotalView – Better Debugger • Intel Vtune – Available for purchase • sTrace – System Call Tracer • SGI Star-P – Currently being installed
ICC • Intel C Compiler (icc) • OpenMP – Simpler conversion from serial to parallel execution • Auto-parallelization – Safe-loop parallelization • Fortran 95 • Optimizations for IA-64 Architecture • Itanium 2 uses IA-64
Schedutils • Change Process Scheduling Attributes • chrt [options] [pid | command] • -p : Edit existing PID • --rr : Round Robin • --fifo : SCHED_FIFO • --other : SCHED_OTHER
Schedutils • Change Process CPU Affinity • taskset [options] [mask] [pid | command] • -p : Edit existing PID • Mask • 0x00000001 : Processor #0 …0001 • 0x00000002 : Processor #2 …0010 • 0x00000003 : Processor #0 and #1 …0011 • … • 0xFFFFFFFFF : All Processors 11…11
Parallel Programming Building Blocks • SGI Altix supports common MPI libraries • Pthreads – not exactly threads • SGI Message Passing Interface • Intel MPI Library • Voltaire MPI – Installed • Scali MPI
MPI Programming • Create a new thread • fork() vs. pthreads_create() • Hardware vs. POSIX • Bind a thread to a processor • pthread_processor_bind_np() • If you do not bind the pthread or modify the forked thread, the new thread will inherit the scheduling properties of the creating thread.
Star-P • The power of Supercomputers • MATLAB to SGI Altix over Network • Offloads computation tasks • Runtime call intercept • Perform day long computations in minutes • Without the Hassle • No reprogramming in C MPI
How to Login • SGI Altix at UCR • sgi-2.cs.ucr.edu • Use secure SSH protocol to connect • CS Username • CS Password • SGI RASC Altix at UCR • sgi-dev.cs.ucr.edu • Use secure SSH protocol to connect • CS Username • CS Password
Try it • ssh sgi-2.cs.ucr.edu • cat /proc/cpuinfo • cat /proc/meminfo • free • vmstat • uname -a
References • http://www.intel.com/products/processor/itanium2/ • http://en.wikipedia.org/wiki/Itanium2 • http://www.sgi.com/developers/technology/gsm.html • http://rlove.org/schedutils/ • http://www.llnl.gov/computing/tutorials/pthreads/