CSE 590o: Chapel. Brad Chamberlain Steve Deitz Chapel Team. University of Washington September 26, 2007

Similar documents
Chapel: Status and Future Directions

Chapel: Global HPCC Benchmarks and Status Update. Brad Chamberlain Chapel Team. CUG 2007 May 7, 2007

Steve Deitz Chapel project, Cray Inc.

Chapel: An Emerging Parallel Programming Language. Brad Chamberlain, Chapel Team, Cray Inc. Emerging Technologies, SC13 November 20 th, 2013

Chapel: an HPC language in a mainstream multicore world

CS 470 Spring Parallel Languages. Mike Lam, Professor

Chapel: Features. Brad Chamberlain Cray Inc. CSEP 524 May 20, 2010

The Mother of All Chapel Talks

The State of the Chapel Union. Martha Dumler CUG 2013 May 9, 2013

Sung-Eun Choi and Steve Deitz Cray Inc.

Parallel Languages: Past, Present and Future

The Cascade High Productivity Programming Language

Compute Node Linux: Overview, Progress to Date & Roadmap

Productive Programming in Chapel: A Computation-Driven Introduction Chapel Team, Cray Inc. SC16, Salt Lake City, UT November 13, 2016

Scalable Software Transactional Memory for Chapel High-Productivity Language

CS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today

Eclipse-PTP: An Integrated Environment for the Development of Parallel Applications

Trends and Challenges in Multicore Programming

Chapel Introduction and

ECE573 Introduction to Compilers & Translators

Chapel Background. Brad Chamberlain. PRACE Winter School 12 February Chapel: a new parallel language being developed by Cray Inc.

Chapel: An Emerging Parallel Programming Language. Thomas Van Doren, Chapel Team, Cray Inc. Northwest C++ Users Group April 16 th, 2014

Virtual Execution Environments: Opportunities and Challenges

Lecture 1. Introduction Course Overview

From the latency to the throughput age. Prof. Jesús Labarta Director Computer Science Dept (BSC) UPC

CSE 341: Programming Languages

What is a programming language?

GLAF: A Visual Programming and Auto- Tuning Framework for Parallel Computing

Programming Models for Supercomputing in the Era of Multicore

Lecture 32: Partitioned Global Address Space (PGAS) programming models

Milind Kulkarni Research Statement

Case 1:98-cv CKK Document Filed 06/15/2006 Page 1 of 7 IN THE UNITED STATES DISTRICT COURT FOR THE DISTRICT OF COLUMBIA

Object-Oriented Programming for Managers

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

Object-Oriented Programming Fall Robert Grimm, New York University

Parallel Programming with Coarray Fortran

A Characterization of Shared Data Access Patterns in UPC Programs

The Eclipse Parallel Tools Platform

Tales from the Workshops

Design & Implementation Overview

Seminar in Programming Languages

Overview: Emerging Parallel Programming Models

The State of the Chapel Union

HIRP OPEN 2018 Compiler & Programming Language. An Efficient Framework for Optimizing Tensors

Compilers and Compiler-based Tools for HPC

CSE 701: LARGE-SCALE GRAPH MINING. A. Erdem Sariyuce

A Study of High Performance Computing and the Cray SV1 Supercomputer. Michael Sullivan TJHSST Class of 2004

CS 415 Midterm Exam Spring 2002

Introduction to Computer Science I

TCIPG Reading Group Fall 2012

HPCC STREAM and RA in Chapel: Performance and Potential

Compute Node Linux (CNL) The Evolution of a Compute OS

Chapel: Productive Parallel Programming from the Pacific Northwest

Them Threads, Them Threads, Them Useless Threads

The Cray Rainier System: Integrated Scalar/Vector Computing

1 GF 1988: Cray Y-MP; 8 Processors. Static finite element analysis. 1 TF 1998: Cray T3E; 1,024 Processors. Modeling of metallic magnet atoms

The Quick CASP USER S GUIDE. What is the Quick CASP? Sample Quality Improvement Plan. >>> page 3. >>> page 7

Improving the Eclipse Parallel Tools Platform to Create an Effective Workbench for High Performance Computing

Oracle Developer Studio 12.6

IN THE UNITED STATES DISTRICT COURT FOR THE DISTRICT OF COLUMBIA

Scalable Shared Memory Programing

Information Technology (CCHIT): Report on Activities and Progress

Idioms for Interaction: Functional Types, Process Types and Distributed Systems

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Towards a Reconfigurable HPC Component Model

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

Pondering the Problem of Programmers Productivity

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

CS 113: Introduction to

1DL321: Kompilatorteknik I (Compiler Design 1)

OpenACC 2.6 Proposed Features

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

PTP - PLDT Parallel Language Development Tools Overview, Status & Plans

LLVM-based Communication Optimizations for PGAS Programs

Brad Chamberlain Cray Inc. March 2011

Advanced Parallel Programming. Is there life beyond MPI?

Best Practices for Final Year Projects

CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg

2/18/2009. Introducing Interactive Systems Design and Evaluation: Usability and Users First. Outlines. What is an interactive system

Towards a Common Java LDAP API

Level 2 Diploma in Team Leading (combined qualification)

Developing Scientific Applications with the IBM Parallel Environment Developer Edition

Parallel Programming Libraries and implementations

Objective. We will study software systems that permit applications programs to exploit the power of modern high-performance computers.

Q & A, Project Status, and Wrap-up COMPUTE STORE ANALYZE

OpenSolaris and the Direction of Future Operating Systems

Cross-platform software development in practice. Object-Oriented approach.

Introduction to Scientific Computing Languages

Debugging CUDA Applications with Allinea DDT. Ian Lumb Sr. Systems Engineer, Allinea Software Inc.

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016

Ontario Smart Grid Forum: Support Presentation. Tuesday, March 8 th 2011

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

Python for Earth Scientists

Database Design and Management - BADM 352 Fall 2009 Syllabus and Schedule

Note: There is more in this slide deck than we will be able to cover, so consider it a reference and overview

Improving the Productivity of Scalable Application Development with TotalView May 18th, 2010

UNIT I Programming Language Syntax and semantics. Kainjan Sanghavi

SSS: An Implementation of Key-value Store based MapReduce Framework. Hirotaka Ogawa (AIST, Japan) Hidemoto Nakada Ryousei Takano Tomohiro Kudoh

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Transcription:

CSE 590o: Chapel Brad Chamberlain Steve Deitz Chapel Team University of Washington September 26, 2007

Outline Context for Chapel This Seminar Chapel Compiler CSE 590o: Chapel (2)

Chapel Chapel: a new parallel language being developed by Cray Inc. Themes: general parallelism data-, task-, nested parallelism using global-view abstractions general parallel architectures locality control data distribution task placement (typically data-driven) reduce gap between mainstream and parallel languages object-oriented programming (OOP) type inference and generic programming CSE 590o: Chapel (3)

Chapel s Setting: HPCS HPCS: High Productivity Computing Systems (DARPA et al.) Goal: Raise HEC user productivity by 10 for the year 2010 Productivity = Performance + Programmability + Portability + Robustness Phase II: Cray, IBM, Sun (July 2003 June 2006) Evaluated the entire system architecture s impact on productivity processors, memory, network, I/O, OS, runtime, compilers, tools, and new languages: Cray: Chapel IBM: X10 Sun: Fortress Phase III: Cray, IBM (July 2006 2010) Implement the systems and technologies resulting from phase II (Sun also continues work on Fortress, without HPCS funding) CSE 590o: Chapel (4)

Chapel and Productivity Chapel s Productivity Goals: vastly improve programmability over current languages/models writing parallel codes reading, modifying, porting, tuning, maintaining them support performance at least as good as MPI competitive with MPI on generic clusters better than MPI on more capable architectures improve portability compared to current languages/models as ubiquitous as MPI, but with fewer architectural assumptions more portable than OpenMP, UPC, CAF, improve code robustness via improved semantics and concepts eliminate common error cases altogether better abstractions to help avoid other errors CSE 590o: Chapel (5)

Chapel Design Philosophies A research project but intentionally broader than an academic project would tend to be due to the belief that generality requires a broad feature set to create a space for broad community participation/collaboration Nurture within Cray, then turn over to community currently releasing to small set of friendly users hope to do public release in late 2008 Borrow when it makes sense, innovate elsewhere interplay between borrowed concepts is where many challenges lie Language design as art / beauty in eye of beholder many of our decisions have been subjective some of them, even we don t like CSE 590o: Chapel (6)

Chapel Influences ZPL, HPF: data parallelism, index sets, distributed arrays, aggregate operations (see also APL, NESL, Fortran90) Cray MTA C/Fortran: task parallelism, lightweight synch. CLU: iterators/generators (see also Ruby, Python, C#?) ML, Scala, Matlab, Perl, Python: latent types Java, C#: OOP, type safety C++: generic programming/templates C, Modula, Ada: syntax CSE 590o: Chapel (7)

Chapel Work Chapel Team s Focus: specify Chapel syntax and semantics implement prototype Chapel compiler code studies of benchmarks, applications, and libraries in Chapel community outreach to inform and learn from users, colleagues support users evaluating our preliminary releases refine language based on these activities implement code studies specify Chapel outreach support release CSE 590o: Chapel (8)

This Seminar Goals: Introduce the UW community to Chapel Solicit feedback about Chapel from programming language / compiler / parallel programming groups potential users Identify opportunities for collaboration Structure: week 1: context week 2: whole-language overview weeks 3-9: deep dives into feature sets definition, rationale open questions, opportunities for feedback week 10: grab-bag/open-ended CSE 590o: Chapel (9)

Seminar Outline Date Topic Reading Facilitator Sep 26 Chapel context, Seminar goals -- Chamberlain Oct 3 Chapel overview IJHPCA paper Chamberlain Oct 10 Language fundamentals Ch 6-13, 17 Chamberlain Oct 17 OOP & generics Ch 14-16, 21 Deitz Oct 24 Ranges, domains, arrays Ch 18-19, 24 Chamberlain Oct 31 TBD (may be cancelled) Nov 7 Iterators Ch 20 Deitz Nov 14 Task parallelism, synchronization Ch 22 Deitz Nov 21 NO MEETING (Thanksgiving) -- -- Nov 28 Distributions, locality Ch 23 Chamberlain Dec 5 Open issues / grab-bag -- Chamberlain CSE 590o: Chapel (10)

Ground Rules For us: be open, honest about project status avoid sales pitches what is solved where we believe we have a solution where we have a promising path ahead of us where large open questions remain take criticism constructively For you: tell us your thoughts, reactions, insights, and criticism realize that some things would be difficult to change at this point if session times out, please follow up over email CSE 590o: Chapel (11)

Who we are Our current team (sorted by time on project): Brad Chamberlain (bradc@cray.com) Steve Deitz (deitz@cray.com) Mary Beth Hribar David Iten Samuel Figueroa Current academic collaborations: Vikram Adve & Robert Bocchino (UIUC): software transactional memory for distributed memory computers Franz Franchetti (CMU): SPIRAL back-end targeting Chapel to leverage its portability <Your Name Here?> (UW): CSE 590o: Chapel (12)

Who are you? Name Department / Advisor General Research Interests Specific Interests in Chapel / this seminar CSE 590o: Chapel (13)

How do I earn credit for this course? Participation in discussions a must we should have some sense of who you are by end of quarter Remainder open to negotiation; choose one of: program some parallel algorithm of interest in Chapel submit code plus short report track bugs, workarounds, feature requests facilitate next week s session co-facilitate a language topic session present survey of a week s concept in other languages help lead discussion on a Chapel topic submit written comments/suggestions on the language specification propose your own idea Taking for two credits? Do 2 of these, or 1 in more depth Mail brief proposal of how you would like to earn credit for the seminar to bradc@cray.com by next week s session CSE 590o: Chapel (14)

Compiling Chapel Chapel Source Code Chapel Compiler Chapel Executable Chapel Standard Modules CSE 590o: Chapel (15)

Chapel Compiler Architecture Chapel Compiler Chapel Source Code Chapel-to-C Compiler Generated C Code Standard C Compiler & Linker Chapel Executable Chapel Standard Modules Internal Modules (written in Chapel) Runtime Support Libraries (in C) 1-sided Messaging, Threading Libraries CSE 590o: Chapel (16)

Chapel-to-C Architecture Chapel-to-C Compiler Chapel Source Code parser IR resolve symbols normalize resolve fns, types lower constructs optimize code generation Generated C Code CSE 590o: Chapel (17)

Prototype Compiler Status Features: enough there to experiment with Base language features: in decent shape Task parallel features: implemented naively using pthreads for one locale (multicore processor, SMP node, etc.) Data parallel features: implemented, but do not currently generate parallelism Multi-locale (dist. memory) features: essentially unimplemented Performance: has not been a primary concern to date execution speed: tuned for some 1D idioms, not much for others memory: avoids large temporary variables, but leaks smaller stuff Getting Access: need to fill out the user agreement will make an installation available on CSE machines will make a downloadable copy available to others Help us Improve: if you use the prototype compiler, track bugs: chapel_bugs@cray.com questions, feature requests: chapel_info@cray.com CSE 590o: Chapel (18)

TODOs for next week Yours: read IJHPCA paper (link to paper on course web) mail proposal for earning credit to bradc@cray.com Ours: set up mailing list update course web with schedule, readings install Chapel prototype compiler CSE 590o: Chapel (19)

For More Information http://www.cs.washington.edu/education/courses/590o/07au http://chapel.cs.washington.edu chapel_info@cray.com bradc@cray.com deitz@cray.com CSE 590o: Chapel (20)

Questions?