3.2.6 Notes on compiling with | 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 | 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 | 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 | 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 | 38 | |
4.2.2 Features | 40 | |
4.3 | Timing | 41 |
4.3.1 Using Scali MPI Connect | 41 | |
4.4 | Using the scanalyze | 43 |
4.4.1 Analysing all2all | 43 | |
4.5 | Using SMC's | 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 | 48 | |
5.2.3 Reorder network traffic to avoid conflicts | 48 | |
5.3 | Benchmarking | 48 |
Scali MPI Connect Release 4.4 Users Guide | 2 |