69
High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : [email protected]

High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : [email protected]

Embed Size (px)

Citation preview

Page 1: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

High-Performance Computing @ SERC

Supercomputer Education & Research Centre

Indian Institute of Science

Bangalore

Contact : [email protected]

Page 2: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

2

Introduction to Introduction to Scientific Computing Scientific Computing

Page 3: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

3

Different Faces of Computing

Document Processing Graphics & Imaging Commercial &

Database Applications Process Engineering Design Network Computing Scientific Computing

(Number Crunching)

Page 4: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

4

Scientific Computing Features

Few weeks to few months of coding for a single developer (most cases)

Developer runs the code herself Codes are typically less fault-tolerant,

less cosmetic Aims to extract maximum throughput

from the system (hardware & software)

Page 5: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

5

What does it involve ?

Deals with numbers - integer, floating-point and complex as well

Involves complicated operations on a lot of variables and arrays

Often requires large resources (cpu, memory, disk) - to handle the complexity of nature

Page 6: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

6

Process Cycle

Developing the Algorithm Developing the Code Compiling and Debugging the code

to make it error-free Optimizing & Tuning the Code for

efficiency Production Runs & Result Analysis

Page 7: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

7

Things to Know About

The Science and the Algorithm Basic Numerical Analysis. Any High-level Language (Fortran, C, C++) Packages and Libraries Programming Environment : Compilers,

Debuggers, Profilers, Development Tools.. Optimization Techniques

Page 8: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

8

Pre-requisite : UNIX

Most systems at SERC run Unix. Need an working knowledge on :

File and Directory manipulation commands (ls, cp, mv, rm, cd, grep, ..)

Common Desktop Environment (CDE)Text editor (preferably vi or emacs) to

write your codes. Advanced Unix concepts (eventually)

Page 9: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

9

Computing Computing Environment @ SERCEnvironment @ SERC

Page 10: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

10

Compute Systems @ SERC

PC’s Unix Access

Stations Servers Supercomputers Network

Page 11: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

11

Where to Start ?

Use the PCs only if you need packages that are available in Windows only

Otherwise, use an Unix Access Station. Build and test-run your codes here.

For Production Runs go to a Server.

Page 12: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

12

Unix Access Stations @ SERC

IBM RS/6000 340, PowerPC

SUN Ultra 5, Ultra 10, Ultra 60

SGI Indy, Indigo2, O2, Octane

HP C200 Compaq XP 1000 Intel Pentium II & III Apple PowerMac & iMac

Page 13: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

13

Using the Access Stations

For code development Running small jobs

(< 30 mins) in background.

Do not lock display Migrate to a Server for

production runs.

Page 14: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

14

Development Environment

Numerical Packages - MATLAB, MAPLE, MATHEMATICA

Fortran/C Development Environment : Compilers, Debuggers & Profilers or Integrated Environment (SoftBench,

VisualAge, DECFuse) Numerical Libraries.

Page 15: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

15

Numerical Packages

Interactive packages can do a variety of numerical and symbolic manipulation jobs.

Easy to use with GUI, on-line help and tutorials.

Page 16: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

16

MATLABhttp://www.mathworks.com/

Available in almost all Unix systems at SERC.

Useful for matrix manipulations, solving equations, differential eqns, 2D and 3D data visualization and ...

Page 17: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

17

MATHEMATICAhttp://www.wolfram.com/

Strong in Symbolic Manipulation

Can also do Numeric Computation and Visualization

Available at most systems on SERC

You can also install in your lab machine

Mathematica Seminar @ SERC

12 September 2001

Page 18: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

18

Numerical Libraries

Libraries @ SERC ESSL (on IBM) DXML (on Compaq) IMSL (on IBM 59x) MLIB (on HP) PESSL (on IBM SP) Free stuff such as

Scalapack, Lapack, BLAS (on IBM SP)

Canned routines for standard tasks (matrix diagonalization, FFT …)

Tuned for specific hardware to extract maximum speed

Using the libraries saves coding time and often improves performance also

Page 19: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

19

Building an Application Building an Application

Page 20: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

20

The Compiler

Compiler translates your programme to a machine-understandable code.

Fortran/C/C++ compilers are available in all Unix systems at SERC

Example :f77 my_prog.f -o my_prog

creates an executable called my_prog from my_prog.f

Page 21: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

21

Compiler Flags (options)

For specific needs : -O, -O2, -O3 for

optimization -c for creating

object files -g for debugging -l for including a

library

Page 22: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

22

A perfectly compiled code may exit while running saying core dumped

Such run-time errors may be caused by various reasons, such as : Divide by zero Accessing an array element beyond its

declared dimensionNumber overflow or underflow

Run-time Errors

Page 23: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

23

Debuggers

Debuggers will be the savior if you get run-time error on a complex code

Compile with -g flag. Run the executable through debugger:

dbx exe_filename This will bring you to (dbx) prompt Check system-specific manuals

Page 24: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

24

Alternative to Debuggers

For small codes, include some print statements in your code and run.

This may zero in the source of error. For Fortran fanatics :

Check spelling of your variable names. Put implicit none at the top line of

your code, and explicitly declare all variables to avoid spelling mistakes.

Page 25: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

25

Timing your Code

Use the timex command to know how much CPU time your code takes.

% timex a.out

real 10.06

user 3.01

sys 0.03

The time command in the cshell

gives a more detailed output.

Page 26: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

26

Profilers

The profilers will give you detailed time statistics of your code.

Compile with -p and run. Post-Mortem profile with:

prof > prof.dat Complete profiler information is stored

in prof.dat

Page 27: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

27

Alternative to Profilers

Instead of profilers, you can also manually time code segments.

E.g. in IBM systems :

integer t1,t2,time_in_sec

t1 = mclock()

call subprog(x,y,z)

t2 = mclock()

time_in_sec = (t2-t1)/100

Page 28: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

28

An Extra Tool : gprof

If you have a large and complicated code with many subprograms you might require to know the call structures and profiles : gprof is tool which helps you do that.

Compile with –pg option and run the code as usual.

Ex. % cc –pg test.c % a.out

% gprof a.out > test.gprof

Page 29: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

29

How big is the code?

The size of the code is an very important parameter. A code which fits into the memory runs faster as it avoids paging.

Too large a code also might result in insufficient memory errors.

size command gives the executable program size.

% size a.out

Page 30: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

30

What to do in case of size problem?

Check for user limits using ulimit command. If not sufficient increase them to maximums.

Try running the code on a system with larger memory.

If everything fails you might have to reduce problem size.

Page 31: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

31

Thriving for Speed

Need to improve the performance of you code if you are going to run it again and again.

This can be achieved in two ways :Through compiler flags for optimizationBy modifying your code appropriately

Modify code to save resources (CPU time, memory, disk space …)

Page 32: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

32

Optimization through Compiler

Use -O[n] compiler flag for optimization; n signifies optimization level (different in each architecture)

Use architecture-specific tuning flags E.g. for IBM 59x Servers -qarch=pwr2 -qtune=pwr High levels of optimization may sometime change the

order of expression evaluation, and cause wrong results

Check the Compiler man pages for details on the optimization flags

Page 33: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

33

Optimization by Code Tuning

A few General Rules : Break up complex expressions into simpler

sub-expressions Pull out constant operations from a loop Access array elements in proper order Maintain Locality of Reference Cut down redundant arrays

Page 34: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

34

Accessing Array Elements

Fortran stores arrays in column-wise, C stores in row-wise format.

Your access pattern should conform to this.

Access consecutive elements of an array within a close proximity in your code.

Page 35: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

35

Access : Fortran Example

Wrong Access :

DO I = 1, N

DO J = 1,N

A(I,J)=2*A(I,J)

ENDDO

ENDDO

Right Access :

DO J = 1, N

DO I = 1,N

A(I,J)=2*A(I,J)

ENDDO

ENDDO

For a 4000 x 4000 array, the Right access pattern improves the speed by a factor of 40 !!!

Page 36: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

36

More Help on Optimization

Optimization and Tuning Guide -- IBM Manual

Man pages of compilers

High Performance Computing, by Kevin Dowd (O’Reilly & Assoc.)

Page 37: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

37

Running an Application Running an Application

Page 38: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

38

How to use Servers ?

About 20 IBM Servers in SERC. Servers run multiple background jobs Difficult to figure out which server is

least loaded at a given point of time. Do not submit jobs on severs manually. Use the LoadLeveler utility to submit

jobs on servers.

Page 39: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

39

The LoadLeveler Utility

IBM LoadLeveler is a software layer that schedules user jobs on a distributed environment

Avialble on IBM RS/6000 Servers and on IBM RS/6000 SP

Predefined job classes (queues) are available depending on requested resource (cpu time, memory ..)

Page 40: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

40

Using LoadLeveler

Include /home/loadl/bin in your search path (for IBM systems)

Create a file (say, myjob) with the following lines :#@ executable = a.out#@ error = err.log#@ output = out.log#@ class = q120s#@ queue

Submit as : llsubmit myjob

Page 41: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

41

More LoadLeveler Commands

llq lists job status llcancel cancels a job llclass lists available queues llstatus shows status of all

machines xloadl A graphical interface (GUI)

to do all the above

Page 42: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

42

Load Sharing Facility (LSF)

LSF is another batch processing tool (similar to LoadLeveler)

Available on Ultra 60 and XP 1000 Workstation, Power Challenge, Dec –alpha Jwala and ES40 servers

Common LSF commands : bsub : submits a job bkill : cancels a job bjobs : lists job status bqueues : lists

available queues bhosts : lists available

hosts xbsub : GUI to do all

the above

Page 43: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

43

Supercomputing @ SERC Supercomputing @ SERC

Page 44: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

44

Supercomputers (Parallel Machines)

For a large problem, the capability of a single CPU becomes insufficient

Such problems could be handled by harnessing the power of many CPU’s

Supercomputer has many CPU’s across which an application is distributed

Different parts of the code run on different CPU’s simultaneously

Page 45: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

45

Classes of Supercomputers

Shared Memory (SMP)

Many CPU’s share a single bank of memory

Systems @ SERC IBM SP(3) High Node Compaq ES40 SGI Power Challenge Dec Turbolaser 8400

Distributed Memory (DMP)

Each CPU has it’s own memory, and accesses other cpu’s memory over network

Systems @ SERC IBM SP(2) C-DAC PARAM 10000

Page 46: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

46

Shared Memory Paradigm

Single memory, single address space

Easy to program Auto-parallelizers render

serial code to parallel Program performance

does not scale beyond 8-16 CPU’s (most cases)

Still suitable for medium-sized problems

CPU 1 CPU 2 CPU 3 CPU 4

BUS

MEMORY

Page 47: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

47

IBM RS/6000 SP(3) High Node

16-CPU node Power3-II 375 MHz

CPU 32 GB Main Memory AIX Parallelizing

Compilers Configured to

accept batch jobs only.

Page 48: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

48

IBM RS/6000 SP(3) Thin Node

4-CPU node Power3-II 375 MHz

CPU 8 GB Main Memory AIX Parallelizing

Compilers For test runs &

development for codes to be run on the high node.

Page 49: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

49

IBM RS/6000 SP(3) : Shared Memory Parallel Libraries

SP(3) has both serial and parallel versions of scientific and linear algebra libraries ESSL and PESSL available.

To use the any particular library correct path has to be specified while linking.

For example if shared memory parallelized version of ESSL is to be used add

-L/usr/lpp/essl.rte.smp43 –lessl while linking (or compiling)

Page 50: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

50

IBM RS/6000 SP(3) : Distributed Memory Parallelization

SP(3) can also be used in distributed memory mode with each processor having 2GB memory of its own.

For the program to be run in the distributed memory mode user must add specific calls to message passing library like MPI.

Details of MPI subroutines and how to use them is available with documentation for SP.

User has to use –lmpi option while linking the program which has mpi subroutine calls.

User s can take help of POE when running the distributed memory parallel code.

Page 51: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

51

IBM RS/6000 SP(3) : Serial Code Optimizations

It is power3 architecture computer so the optimization option to be used are

-qarch=pwr3 and –qtune=pwr3 All other optimizations are like IBM-590

servers. Options like –bmaxdata and –bamxstack

might have to be specified for large sized codes.

Page 52: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

52

Compaq Alpha Server ES40

4-CPU Shared Memory System

Alpha 667 MHz CPU 8 GB Main Memory DEC Compilers KAP Fortran/C Auto-

parallelizer MPI Support

Page 53: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

53

Compaq Alpha Server ES40

Kuck and Associates pre-compiler (KAP) is available this pre-compiler helps user in analysing the code for optimizations and also in distributed memory parallelization.

Usage is kapf <progname.f>. Manual information on the kapf and kapc is

available.

Page 54: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

54

Compaq Alpha Server ES40

For shared memory parallelization using OpenMP standard directives can be used by using option –omp while compiling.

Out of six alpha servers only one is configured for login – rest five are configured to accept LSF batch jobs.

For interactive usage and code development for the alpha-servers one node alphas4 is to be used.

Page 55: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

55

SGI Power Challenge (everest)

6-CPU Shared Memory System.

1 GB of Memory MIPS R8000 CPU > 1 GFlops peak

speed MIPS Compilers and

Auto-parallelizers

Page 56: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

56

DEC TurboLaser 8400 (jwala)

4-CPU Shared Memory System

1 GB of total Memory

DEC Alpha 333 MHz CPU

> 4 GFlops peak speed.

DEC Compilers

KAP Fortran/C Auto-Parallelizers

This is predecessor of ES40 alpha-servers.

Page 57: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

57

Distributed Memory Paradigm

New programming technique : need to use message-passing calls (MPI) in Fortran/C code to access remote memory

Scalable : No bottleneck on memory, performance improves by adding more and more CPU’s

Only choice for really large-scale problems

CPU 1 CPU 2 CPU 3 CPU 4

MEM MEM MEM MEM

NETWORK SWITCH / HUB

Page 58: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

58

IBM RS/6000 SP (2)

32-CPU Distributed Memory System

Power2 77/135 MHz CPU 10GB total Memory > 8 GFlops peak speed High Performance Switch

Tuned MPI Library for improved communication

Page 59: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

59

IBM RS/6000 SP (2)

No automatic parallelizers.User has to add explicit message passing subprogram calls.

Optimized MPI and PVM both are available. Of 30(now available) 2 machines are configured for

logins, 8 machines are (including 2 login ones) are configured to take interactive jobs and can be used for code development and test runs. Rest all are configured to take only loadleveler jobs.

Another way to use multiple processors is to use Parallel Engineering and Scientific subroutine library (PESSL).

Page 60: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

60

C-DAC PARAM 10000

4-node dual-CPU cluster (total 8 CPUs)

SUN Ultra 400 MHz CPU PARAMNet and Fast

Ethernet Connectivity Supports MPI Also provides optimized MPI

(CMPI) and lightweight messaging protocol (KSHIPRA)

Page 61: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

61

C-DAC PARAM 10000

User explicit parallelization across nodes using MPI however since each node is a shared memory dual processor, for single node auto parallelizing and shared memory parallelization through Open MP is possible.

The help regarding how to use the MPI and CMPI on PARAM10000 is given when a user is validated.

It has several application software packages for chemistry, fluid dynamics etc. ported and available.

It has sun workshop program development environment. Several CDAC developed packages add to functionality

these packages are parallel usage visualizer, parallel debugger, bottle-neck analyzer etc.

Page 62: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

62

Troubleshooting Troubleshooting

Page 63: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

63

Problems : Search Path

Q. How do I add a directory in my search path ?

A. For C-shell users :

set path = ($path /directory)

For Bourne- and K-shell users :

export PATH=$PATH:/directory

Page 64: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

64

Problems : Disk Space

Q. I need more disk space than what was allotted. What to do ?

A. Try the following : See if you can cut down some I/O

statements and save space.Use the /tmp or /temp directory.If all these fails, apply for disk quota

increase (form available in Room 104)

Page 65: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

65

Usage of /tmp Space

/temp is available in all systems. Also each system has its own /tmp

Always create a directory of your own and work within this directory

/temp and /tmp are purged regularly. Anything more than 7 days old can get deleted without notice.

Use /temp for data files only.

Page 66: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

66

Problems : Memory

Q. My problem requires large memory. Find out how much memory (bytes) are

needed by : size exe_filename Try to reduce memory by cutting some

unnecessary arrays. Do not over-dimension arrays.

Use the servers with larger memory. Migrate to a parallel system.

Page 67: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

67

Sources of Help

Man pages on the systems. On-line Hypertext (through help icon in

CDE) in the machines. Hardcopy manuals in SERC library. Through SERC web pages. Many other tutorials and e-books

generally available on Net.

Page 68: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

68

Information on the Web

WWW is the best way to keep you updated on the latest.

Check out SERC web site : http://www.serc.iisc.ernet.in/(click on Computing Facilities )

Many of the lecture notes in this series will also be made available under User Information in SERC web pages.

Page 69: High-Performance Computing @ SERC Supercomputer Education & Research Centre Indian Institute of Science Bangalore Contact : helpdesk@serc.iisc.ernet.in

23/08/2001 SERC Orientation Programme : HPC

69

SERC Wishes you a Happy SERC Wishes you a Happy Computing Experience Computing Experience

over the years to Come!!over the years to Come!!