(cid:8)(cid:3) (cid:8)(cid:7) (cid:8)(cid:5) (cid:8)(cid:6) (cid:8)(cid:4) (cid:8)(cid:8) (cid:8)(cid:9) (cid:8)(cid:10) (cid:3)(cid:8) (cid:2)(cid:1)(cid:10) (cid:2)(cid:2)(cid:6) (cid:6)(cid:2) (cid:2)(cid:2)(cid:5) (cid:6)(cid:6) (cid:2)(cid:2)(cid:8) (cid:6)(cid:10) (cid:9)(cid:1) (cid:9)(cid:2) (cid:9)(cid:3) (cid:9)(cid:7) (cid:9)(cid:5) (cid:9)(cid:6) (cid:9)(cid:4) (cid:9)(cid:8) (cid:2)(cid:1)(cid:9) (cid:2)(cid:3)(cid:1) (cid:6)(cid:1) (cid:8)(cid:10) (cid:7)(cid:3) (cid:2)(cid:2)(cid:4) (cid:7)(cid:4) (cid:2)(cid:2)(cid:9) (cid:9)(cid:9) (cid:9)(cid:10) (cid:10)(cid:1) (cid:10)(cid:2) (cid:10)(cid:3) (cid:10)(cid:7) (cid:10)(cid:5) (cid:10)(cid:6) (cid:2)(cid:3)(cid:7) (cid:2)(cid:2)(cid:3) (cid:8)(cid:4) (cid:2)(cid:2)(cid:7) (cid:6)(cid:9) (cid:9)(cid:9) (cid:6)(cid:4) (cid:10)(cid:1) (cid:10)(cid:4) (cid:10)(cid:8) (cid:10)(cid:9) (cid:10)(cid:10) (cid:2)(cid:1)(cid:1) (cid:2)(cid:1)(cid:2) (cid:2)(cid:1)(cid:3) (cid:2)(cid:1)(cid:7) (cid:3)(cid:6) (cid:2)(cid:2)(cid:2) (cid:5)(cid:3) (cid:4)(cid:7) (cid:9)(cid:7) (cid:7)(cid:8) (cid:9)(cid:10) (cid:7)(cid:10) (cid:2)(cid:1)(cid:5) (cid:2)(cid:1)(cid:6) (cid:2)(cid:1)(cid:4) (cid:2)(cid:1)(cid:8) (cid:2)(cid:1)(cid:9) (cid:2)(cid:1)(cid:10) (cid:2)(cid:2)(cid:1) (cid:2)(cid:2)(cid:2) (cid:2)(cid:2)(cid:1) (cid:9)(cid:2) (cid:4)(cid:3) (cid:8)(cid:9) (cid:4)(cid:1) (cid:8)(cid:6) (cid:2)(cid:2)(cid:10) (cid:8)(cid:2) (cid:2)(cid:2)(cid:3) (cid:2)(cid:2)(cid:7) (cid:2)(cid:2)(cid:5) (cid:2)(cid:2)(cid:6) (cid:2)(cid:2)(cid:4) (cid:2)(cid:2)(cid:8) (cid:2)(cid:2)(cid:9) (cid:2)(cid:2)(cid:10) (cid:8)(cid:8) (cid:9)(cid:1) (cid:4)(cid:5) (cid:9)(cid:6) (cid:4)(cid:6) (cid:8)(cid:5) (cid:9)(cid:4) (cid:4)(cid:8) (cid:2)(cid:3)(cid:1) (cid:2)(cid:3)(cid:2) (cid:2)(cid:3)(cid:3) (cid:2)(cid:3)(cid:7) (cid:2)(cid:3)(cid:5) (cid:2)(cid:3)(cid:6) (cid:2)(cid:3)(cid:4) (cid:2)(cid:3)(cid:8) (cid:4)(cid:9) (cid:4)(cid:10) (cid:9)(cid:3) (cid:4)(cid:2) (cid:8)(cid:1) (cid:9)(cid:5) (cid:9)(cid:8) (cid:10)(cid:3) Mapping parallel applications on the machine topology: Lessons learned (cid:7)(cid:1) (cid:6)(cid:7) (cid:9)(cid:5) (cid:9)(cid:3) (cid:9)(cid:1) (cid:9)(cid:8) Abhinav Bhatele and Laxmikant V. Kale (cid:6)(cid:9) (cid:9)(cid:7) (cid:1) (cid:1) (cid:1) (cid:1) (cid:9)(cid:2) (cid:1) (cid:9)(cid:9) (cid:9)(cid:10) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:6)(cid:10) (cid:7)(cid:4) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:1) (cid:9)(cid:6) (cid:9)(cid:4) (cid:6)(cid:5) (cid:1) (cid:1) (cid:6)(cid:8) (cid:7)(cid:2) (cid:7)(cid:3) (cid:1) Parallel Programming Laboratory (cid:1) (cid:7)(cid:5) (cid:10)(cid:2) (cid:1) (cid:2) (cid:2) (cid:10)(cid:10) (cid:7)(cid:7) (cid:7)(cid:9) (cid:1) (cid:1) (cid:2) (cid:2) (cid:7)(cid:8) (cid:10)(cid:1) (cid:10)(cid:7) University of Illinois at Urbana-Champaig(cid:1)n (cid:2) (cid:2) (cid:2) (cid:2) (cid:2) (cid:2) (cid:2) (cid:7)(cid:10) (cid:10)(cid:3) (cid:10)(cid:9) (cid:7)(cid:6) (cid:1) (cid:1) (cid:2) (cid:2) (cid:2) (cid:2) (cid:8)(cid:1) (cid:1) (cid:10)(cid:8) (cid:10)(cid:6) (cid:1) (cid:2) (cid:3) (cid:10)(cid:4) (cid:4)(cid:4) (cid:2) (cid:3) (cid:10)(cid:5) (cid:8)(cid:2) (cid:6)(cid:2) (cid:4)(cid:9) (cid:1) (cid:1) (cid:1) (cid:2) (cid:3) (cid:3) (cid:3) (cid:8)(cid:6) (cid:8)(cid:4) (cid:4)(cid:6) (cid:2) (cid:8)(cid:7) (cid:8)(cid:3) (cid:4)(cid:5) (cid:6)(cid:1) (cid:6)(cid:4) (cid:4)(cid:8) (cid:5) (cid:2)(cid:1) (cid:6) (cid:4) (cid:3) (cid:1)(cid:1) (cid:1) (cid:1) (cid:2) (cid:2) (cid:3) (cid:3) (cid:4)(cid:2) (cid:4)(cid:2) (cid:3) (cid:8)(cid:9) (cid:3)(cid:10) (cid:8) (cid:2) (cid:2) (cid:8)(cid:8) (cid:3)(cid:5) (cid:6)(cid:6) (cid:4)(cid:10) (cid:9) (cid:2) (cid:1) (cid:1) (cid:1) (cid:1) (cid:2) (cid:1)(cid:2)(cid:3) (cid:3)(cid:8) (cid:6)(cid:3) (cid:7) (cid:10) (cid:4)(cid:1) (cid:4)(cid:7) (cid:2)(cid:5) (cid:1) (cid:4)(cid:2) (cid:4)(cid:3) (cid:3)(cid:2) (cid:3)(cid:9) (cid:2)(cid:9) (cid:2)(cid:4) (cid:1) (cid:2) (cid:4)(cid:2) (cid:3) (cid:3)(cid:4) (cid:3)(cid:7) (cid:3)(cid:1) (cid:1) (cid:2) (cid:3) (cid:4)(cid:2) (cid:3)(cid:3) (cid:3)(cid:6) (cid:2)(cid:6) (cid:2)(cid:3) (cid:2)(cid:8) a r (cid:1) (cid:1) (cid:2) (cid:3) (cid:3) u l g e r r i n a o f e r u t c u r t s a l ti a p s e h t r e n f i o t y r a r b li z v i h p a r g e h t g n si U 7 : 0 . 1 e r u g F i Motivation • Running a parallel application on a linear array of processors: TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 2 Motivation • Running a parallel application on a linear array of processors: TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 2 Motivation • Running a parallel application on a linear array of processors: TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 2 Motivation • Running a parallel application on a linear array of processors: • Typical communication is between random pairs of processors simultaneously TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 2 Interconnect Topologies BLUE GENE ARCHITECTURE ! is designed to support efficient execution of massively parallel MPI programs ! Compute nodes organized as a 3D-torus • Three dimensional meshes ! MAIN FEATURE: • every node is connected to its 3D Torus: Blue Gene/L, Blue Gene/P, Cray XT4/5 six neighbour nodes through bidirectional links • Trees ! To maintain application performance, correct mapping of MPI tasks onto • Fat-trees (Infiniband) and CLtoOruSs nnetewtowrk ois rak crsit ic(aFl efadcteorration) • Dense Graphs 16. Mai 2008 9 • Kautz Graph (SiCortex), Hypercubes • Future Topologies? • Blue Waters, Blue Gene/Q Roadrunner Technical Seminar Series, March 13th 2008, Ken Koch, LANL TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 3 Application Topologies http://wrf-model.org/plots/realtime_main.php http://www.ks.uiuc.edu/Gallery/Science/ Patch Compute Proxy (cid:9)(cid:1) (cid:5)(cid:10) (cid:5)(cid:3) (cid:6)(cid:2) (cid:5)(cid:1) (cid:5)(cid:6) (cid:2)(cid:2)(cid:2) (cid:2)(cid:2)(cid:1) (cid:2)(cid:1)(cid:9) (cid:2)(cid:1)(cid:8) (cid:2)(cid:1)(cid:3)(cid:2)(cid:1)(cid:10)(cid:2)(cid:1)(cid:2)(cid:6)(cid:6) (cid:2)(cid:1)(cid:6)(cid:1)(cid:5)(cid:2)(cid:1)(cid:7) (cid:6)(cid:8)(cid:6)(cid:9)(cid:2)(cid:1)(cid:4) (cid:2)(cid:4)(cid:3) (cid:2)(cid:4)(cid:10) (cid:2)(cid:4)(cid:4)(cid:2)(cid:4)(cid:8) (cid:2)(cid:4)(cid:9)(cid:2)(cid:4)(cid:2) (cid:2)(cid:4)(cid:7)(cid:2)(cid:4)(cid:1) (cid:2)(cid:2)(cid:5)(cid:2)(cid:2)(cid:6)(cid:2)(cid:2)(cid:10) (cid:2)(cid:2)(cid:3)(cid:2)(cid:2)(cid:9)(cid:2)(cid:2)(cid:8) (cid:2)(cid:2)(cid:4)(cid:2)(cid:2)(cid:7) (cid:9)(cid:7)(cid:9)(cid:4) (cid:9)(cid:6)(cid:9)(cid:5)(cid:9)(cid:10) (cid:9)(cid:8)(cid:9)(cid:9)(cid:9)(cid:3) (cid:8)(cid:6) (cid:8)(cid:5)(cid:8)(cid:8) (cid:8)(cid:10)(cid:8)(cid:9)(cid:9)(cid:2) (cid:8)(cid:3)(cid:5)(cid:2) (cid:5)(cid:4) (cid:5)(cid:7) (cid:5)(cid:9) (cid:5)(cid:8) (cid:6)(cid:7) (cid:6)(cid:1)(cid:6)(cid:4) (cid:6)(cid:10)(cid:5)(cid:5)(cid:6)(cid:3) (cid:4)(cid:1) (cid:4)(cid:2) (cid:4)(cid:4)(cid:2)(cid:8) (cid:4)(cid:7)(cid:2)(cid:9) (cid:2)(cid:6)(cid:2)(cid:5)(cid:4)(cid:10)(cid:4)(cid:8)(cid:4)(cid:3) (cid:4)(cid:9)(cid:4)(cid:6) (cid:7)(cid:1)(cid:4)(cid:5)(cid:1)(cid:7)(cid:2) (cid:10)(cid:3) (cid:2) (cid:8) (cid:4)(cid:7) (cid:9)(cid:2)(cid:3)(cid:6)(cid:5) (cid:2)(cid:10)(cid:2)(cid:2) (cid:2)(cid:7) (cid:2)(cid:4) (cid:2)(cid:1)(cid:10)(cid:10)(cid:2)(cid:1) (cid:3)(cid:6)(cid:3)(cid:5)(cid:10)(cid:10) (cid:10)(cid:4) (cid:10)(cid:3)(cid:10)(cid:7) (cid:8)(cid:1)(cid:8)(cid:4) (cid:8)(cid:7)(cid:8)(cid:2) (cid:10)(cid:8) (cid:10)(cid:5)(cid:10)(cid:6) (cid:10)(cid:9) (cid:3)(cid:4)(cid:3)(cid:7) (cid:3)(cid:8) (cid:3)(cid:2)(cid:3)(cid:9) (cid:3)(cid:1)(cid:3)(cid:10) (cid:3)(cid:3) (cid:7)(cid:3)(cid:7)(cid:4) (cid:7)(cid:7) (cid:7)(cid:10)(cid:7)(cid:9) (cid:7)(cid:5) (cid:7)(cid:6)(cid:7)(cid:8) (cid:2)(cid:1)(cid:6) (cid:2)(cid:1)(cid:5) http://math.lanl.gov/Research/Projects/meshing.shtml TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 4 Application Topologies http://wrf-model.org/plots/realtime_main.php http://www.ks.uiuc.edu/Gallery/Science/ Patch Compute Proxy (cid:9)(cid:1) (cid:5)(cid:10) (cid:5)(cid:3) (cid:6)(cid:2) (cid:5)(cid:1) (cid:5)(cid:6) (cid:2)(cid:2)(cid:2) (cid:2)(cid:2)(cid:1) (cid:2)(cid:1)(cid:9) (cid:2)(cid:1)(cid:8) (cid:2)(cid:1)(cid:3)(cid:2)(cid:1)(cid:10)(cid:2)(cid:1)(cid:2)(cid:6)(cid:6) (cid:2)(cid:1)(cid:6)(cid:1)(cid:5)(cid:2)(cid:1)(cid:7) (cid:6)(cid:8)(cid:6)(cid:9)(cid:2)(cid:1)(cid:4)W(cid:2)(cid:4)(cid:3) (cid:2)(cid:4)(cid:10) (cid:2)(cid:4)(cid:4)(cid:2)(cid:4)(cid:8)e(cid:2)(cid:4)(cid:9)(cid:2)(cid:4)(cid:2) (cid:2)(cid:4)(cid:7)w(cid:2)(cid:4)(cid:1) (cid:2)(cid:2)(cid:5)(cid:2)(cid:2)(cid:6)a(cid:2)(cid:2)(cid:10) (cid:2)(cid:2)(cid:3)n(cid:2)(cid:2)(cid:9)(cid:2)(cid:2)(cid:8) (cid:2)(cid:2)(cid:4)(cid:2)(cid:2)(cid:7)t(cid:9)(cid:7)(cid:9)(cid:4) (cid:9)(cid:6)t(cid:9)(cid:5)(cid:9)(cid:10)o(cid:9)(cid:8)(cid:9)(cid:9) (cid:9)(cid:3)m(cid:8)(cid:6) (cid:8)(cid:5)(cid:8)(cid:8)a(cid:8)(cid:10)(cid:8)(cid:9)p(cid:9)(cid:2) (cid:8)(cid:3) (cid:5)(cid:2) c(cid:5)(cid:4) o(cid:5)(cid:7) (cid:5)(cid:9)m(cid:5)(cid:8) (cid:6)(cid:7)m(cid:6)(cid:1)(cid:6)(cid:4) u(cid:6)(cid:10)(cid:5)(cid:5)n(cid:6)(cid:3) (cid:4)(cid:1)i(cid:4)(cid:2)c(cid:4)(cid:4)(cid:2)(cid:8)a(cid:4)(cid:7)(cid:2)(cid:9)t(cid:2)(cid:6)i(cid:2)(cid:5)n(cid:4)(cid:10)(cid:4)(cid:8)(cid:4)(cid:3)g(cid:4)(cid:9)(cid:4)(cid:6) (cid:7)(cid:1)(cid:4)(cid:5)(cid:1)(cid:7)(cid:2) (cid:10)(cid:3) (cid:2) (cid:8) (cid:4)(cid:7) (cid:9)(cid:2)(cid:3)(cid:6)(cid:5) (cid:2)(cid:10)(cid:2)(cid:2) (cid:2)(cid:7) (cid:2)(cid:4) (cid:2)(cid:1)(cid:10)(cid:10)(cid:2)(cid:1) (cid:3)(cid:6)(cid:3)(cid:5)(cid:10)(cid:10) (cid:10)(cid:4) (cid:10)(cid:3)(cid:10)(cid:7) (cid:8)(cid:1)(cid:8)(cid:4) (cid:8)(cid:7)(cid:8)(cid:2) (cid:10)(cid:8) (cid:10)(cid:5)(cid:10)(cid:6) (cid:10)(cid:9) (cid:3)(cid:4)(cid:3)(cid:7) (cid:3)(cid:8) (cid:3)(cid:2)(cid:3)(cid:9) (cid:3)(cid:1)(cid:3)(cid:10) (cid:3)(cid:3) (cid:7)(cid:3)(cid:7)(cid:4) (cid:7)(cid:7) (cid:7)(cid:10)(cid:7)(cid:9) (cid:7)(cid:5) (cid:7)(cid:6)(cid:7)(cid:8) (cid:2)(cid:1)(cid:6) (cid:2)(cid:1)(cid:5) objects closer to one another http://math.lanl.gov/Research/Projects/meshing.shtml TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 4 The Mapping Problem • Applications have a communication topology and processors have an interconnect topology • Definition: Given a set of communicating parallel “entities”, map them on to physical processors to optimize communication • Goals: • Minimize communication traffic and hence contention • Balance computational load (when n > p) TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 5 No Contention Runs No Contention Message Latencies (Torus - 8 x 8 x 16) 4096 30 Message Latency 2048 % difference 25 1024 512 20 256 ) e s c Blue Gene/P u n ( 128 e y r c 15 e n f 64 f e Di t a % L 32 10 16 8 5 4 2 0 4 16 64 256 1K 4K 16K 64K 256K 1M Message Size (Bytes) TeraGrid ’10 © Abhinav Bhatele August 3rd, 2010 6
Description: