30 likes | 154 Views
X10: Performance and Productivity at Scale. Vijay Saraswat and Dave Grove IBM TJ Watson Nov 17, 2010. What is X10?. Asynchronous PGAS Programming Model in a Java-like language Not Java! No threads or locks Explicitly designed for concurrency and parallelism Parallelism: places, at
E N D
X10: Performance and Productivity at Scale Vijay Saraswat and Dave Grove IBM TJ Watson Nov 17, 2010
What is X10? Asynchronous PGAS Programming Model in a Java-like language Not Java! No threads or locks Explicitly designed for concurrency and parallelism Parallelism: places, at Concurrency: async, finish, atomic, when, clocks Sequential: closures, structs, constraint-based types, true generic types, local type inference Target architectures x86, cluster of x86/Power, big Power SMPs, 100K core Power boxes, BlueGene, GPGPUs … Two compilation paths Compile to JVM Run on a cluster of VMs Compile to C++ Runs on BG, clusters,… Both paths use a high performance run-time. No actors, MPI, OpenMP, CUDA… http://x10-lang.org
Principles and Practice of Parallel Programming Course objective Teaching fundamentals of data-structure design, analysis, implementation for efficient parallel execution Programming abstractions for concurrency Techniques for reasoning about behavior and performance of parallel programs Course history: Fall 09 (23 students) Fall 10 (16 students) Assignments, programming project in X10 (cluster of x86) Course structure Unit I: Introduction Unit 2: Introduction to X10 Unit 3: Abstract performance model (task graphs) Unit 4: Concrete performance model Unit 5: Safe parallelization Unit 6: Indeterminacy Unit 7: Blocking synchronization Semester long programming project Metric: speedup async, finish, clocks, at, commutativity atomic when