120 likes | 303 Views
Parallel Processing. 0-361-1-3621. Sem. A 2014. ZPL. Z-level programming language. Amit Garay Asaf Cohen. Introduction Performance Implementation Conclusions. Introduction. Born in 1995 at the University of Washington An Array-Programming language
E N D
Parallel Processing 0-361-1-3621 Sem. A2014 ZPL Z-level programming language Amit Garay Asaf Cohen
Introduction Performance Implementation Conclusions Introduction • Born in 1995 at the University of Washington • An Array-Programming language • Simple and Easy to use
IntroductionPerformanceImplementation Conclusions Performance • Evaluated with a set of programs designed • for parallel supercomputers • FT benchmark: • solve a 3D partial differential equation • CG benchmark: • find the largest eigenvalue of a symmetric • positive definite sparse matrix
IntroductionPerformanceImplementation Conclusions Performance ZPL vs. F+MPI Lines of code
Introduction Performance ImplementationConclusions Implementation • ZPL was designed for high level programming. • ZPL implementation requires approximately one third of lines to write equivalent code in Fortran and MPI. • Open source – no hidden code.
Introduction Performance ImplementationConclusions Implementation • Some basic coding:
Introduction Performance ImplementationConclusions Implementation /**** * Jacobi Iterations * ****/ program jacobi; ---------- Declarations ---------- configvar n : integer = 5; -- problem size epsilon : float = 0.0001; -- epsilon value end condition region R = [1..n, 1..n ]; -- problem region BigR = [0..n+1, 0..n+1]; -- with borders direction north = [-1, 0]; -- cardinal directions east = [ 0, 1]; south = [ 1, 0]; west = [ 0, -1]; ---------- Entry Procedure ---------- procedure jacobi(); var A, Temp : [BigR] float; delta : float; [R] begin ---------- Initialization ---------- A := 0.0; [north of R] A := 0.0; [east of R] A := 0.0; [west of R] A := 0.0; [south of R] A := 1.0; ---------- Main Computation ---------- repeat Temp := (A@north + A@east + A@south + A@west) / 4.0; delta := max<< abs(A-Temp); A := Temp; until delta < epsilon; ---------- Print Results ---------- writeln(A); end; • Example code: • Jacobi iterations
Introduction Performance Implementation Conclusions Conclusions • ZPL is a user-friendly parallel coding language. • ZPL implementation uses Less coding lines than C or Fortran and MPI. • ZPL is faster than Fortran and MPI. • A respectful knowledge base on-line. • The year is 2004.
Introduction Performance Implementation Conclusions References • University of Washington – Computer science Dep.http://www.cs.washington.edu/research/zpl/home/index.html • S. Deitz,B.L Chamberlain,S.E Choi,L. Snyder, “The Design and Implementation of aParallel • Array Operator for the Arbitrary Remapping of Data”PPoPP '03 Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming Pages 155 - 166 • University of Illinois – Computer science Dep.http://www.cs.illinois.edu/~snir/PPP/models/zpl.pdf
Thank you for listening, Any Questions ?