30 likes | 166 Vues
This presentation by Vijay Saraswat and Dave Grove discusses the X10 programming language, an innovative asynchronous PGAS model designed for efficient concurrency and parallelism. Unlike traditional Java, X10 eliminates the need for threads and locks, enabling seamless performance across various architectures, including x86 and Power systems. The course also explores programming abstractions for concurrency, safe parallelization, and techniques for analyzing parallel program performance. Students engage in hands-on projects, reinforcing concepts through practical application of X10, culminating in a semester-long project.
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