1 ProActive performance evaluation with NAS benchmarks and optimization of OO SPMD Brian AmedroVladimir Bodnartchouk
2 Outline TimIt : A profiling tool for ProActive OO SPMD model in ProActive Performance evaluation with NAS benchmarks Optimizing group communications
3 TimIt : A profiling tool for ProActive A ProActive feature to time and analyze applications
4 OO SPMD model A parallel programming model Flexibility and high level of abstraction Strongly used in NAS benchmarks implementations One To AllScatteringReduce operation
5 NAS Parallel Benchmarks Designed by NASA to evaluate benefits of high performance systems Strongly based on CFD 5 benchmarks (kernels) to test different aspects of a system Easy to implement thanks to OOSPMD pattern Tests performed on Sun 1.5 with RMI for ProActive and PGI 6.0 compiler for MPI
6 CG Kernel (Conjugate Gradient) Floating point operations Eigen value computation High number of unstructured communications calls 570 MB sent 1 min % comms
7 MG Kernel (Multi Grid) Floating point operations Solving Poisson problem Structured communications 600 calls 45 MB sent 1 min % comms
8 IS Kernel (Integer Sort) Keys ranking operations Bucket sort Large arrays in memory 65 calls 22 MB sent 4 min % comms
9 EP Kernel (Embarrassingly Parallel) Random numbers generation Almost no communications 6 calls 246 bytes sent 7 min 32 2 % comms
10 FT Kernel (Fourier Transformation) Floating point operations Big messages : 8 MB per call 22 calls 180 MB sent 1 min % comms
11 Optimizing group communications Implement efficient group communication Minimize the TCP traffic Decrease the network congestion Use clustering techniques to choose the better algorithm to use
12 Ring all-to-all algorithm Best for large size communications Takes n-1 steps step1 2 3
13 Recursive doubling all-to-all algorithm Best for small size communications Takes log(n) steps step1 2
14 Conclusion TimIt : easy and helpful profiling tool NAS benchmarks easy to implements with ProActive and OO SPMD pattern Good performances expected with future Sun Java 6 and usage of Ibis RMI
15 Questions ?
16 MPI / ProActive MPIProActive Mpirundeployment MPI_Initactivities creation MPI_Finalize MPI_Comm_SizegetMyGroupSize MPI_Comm_rankgetMyRank MPI_*Sendmethod call (setter and getter) MPI_*Recv MPI_Barrierbarrier MPI_Bcastmethod call MPI_Scattermethod call with a scatter group as parameter MPI_Gatherresult of a group communication MPI_Reduceprogrammer's method Back