3.2.6 Notes on compiling with MPI-2 features

23

3.3

Running Scali MPI Connect programs

23

3.3.1 Naming conventions

23

3.3.2 mpimon - monitor program

24

3.3.3 mpirun - wrapper script

27

3.4

Suspending and resuming jobs

28

3.5

Running with dynamic interconnect failover capabilities

28

3.6

Running with tcp error detection - TFDR

28

3.7

Debugging and profiling

29

3.7.1 Debugging with a sequential debugger

29

3.7.2 Built-in-tools for debugging

30

3.7.3 Assistance for external profiling

30

3.7.4 Debugging with Etnus Totalview

30

3.8

Controlling communication resources

31

3.8.1 Communication resources on DAT-devices

31

3.9

Good programming practice with SMC

32

3.9.1 Matching MPI_Recv() with MPI_Probe()

32

3.9.2 Using MPI_Isend(), MPI_Irecv()

32

3.9.3 Using MPI_Bsend()

32

3.9.4 Avoid starving MPI-processes - fairness

32

3.9.5 Unsafe MPI programs

33

3.9.6 Name space pollution

33

3.10 Error and warning messages

33

3.10.1 User interface errors and warnings

33

3.10.2 Fatal errors

33

3.11 Mpimon options

34

3.11.1 Giving numeric values to mpimon

35

Chapter 4 Profiling with Scali MPI Connect

37

4.1

Example

37

4.2

Tracing

38

4.2.1 Using Scali MPI Connect built-in trace

38

4.2.2 Features

40

4.3

Timing

41

4.3.1 Using Scali MPI Connect built-in timing

41

4.4

Using the scanalyze

43

4.4.1 Analysing all2all

43

4.5

Using SMC's built-inCPU-usage functionality

45

Chapter 5 Tuning SMC to your application

47

5.1

Tuning communication resources

47

5.1.1 Automatic buffer management

47

5.2

How to optimize MPI performance

48

5.2.1 Performance analysis

48

5.2.2 Using processor-power to poll

48

5.2.3 Reorder network traffic to avoid conflicts

48

5.3

Benchmarking

48

Scali MPI Connect Release 4.4 Users Guide

2

Page 14
Image 14
Escali 4.4 manual Profiling with Scali MPI Connect