The State of the Chapel Union

The State of the Chapel Union

The State of the Chapel Union Bradford L. Chamberlain, Sung-Eun Choi, Martha Dumler Thomas Hildebrandt, David Iten, Vassily Litvinov, Greg Titus Cray Inc. Seattle, WA 98164 chapel [email protected] Abstract—Chapel is an emerging parallel programming Cray’s entry in the DARPA HPCS program concluded language that originated under the DARPA High Productivity successfully in the fall of 2012, culminating with the launch Computing Systems (HPCS) program. Although the HPCS pro- of the Cray XC30TM system. Even though the HPCS pro- gram is now complete, the Chapel language and project remain very much alive and well. Under the HCPS program, Chapel gram has completed, the Chapel project remains active and generated sufficient interest among HPC user communities to growing. This paper’s goal is to present a snapshot of Chapel warrant continuing its evolution and development over the next as it stands today at the juncture between HPCS and the several years. In this paper, we reflect on the progress that was next phase of Chapel’s development: to review the Chapel made with Chapel under the auspices of the HPCS program, project, describe its status, summarize its successes and noting key decisions made during the project’s history. We also summarize the current state of Chapel for programmers who lessons learned, and sketch out the next few years of the are interested in using it today. And finally, we describe current language’s life cycle. Generally speaking, this paper reports and ongoing work to evolve it from prototype to production- on Chapel as of version 1.7.01, released on April 18th, 2013. grade; and also to make it better suited for execution on next- The rest of this paper is organized as follows: Section II generation systems. provides a brief history of the Chapel project under HPCS Keywords-Chapel; parallel languages; project status for background. A short introduction to the language’s features is given in Section III, for those unfamiliar with I. INTRODUCTION Chapel. It is followed by a summary of Chapel’s status in Section IV. In Section V, we report on Chapel’s greatest Chapel is a parallel programming language that has been successes and lessons learned under the HPCS program. In developed by Cray Inc. under the DARPA High Productivity Section VI, we describe the next steps in Chapel’s design Computing Systems (HPCS) program over the past decade. and implementation before wrapping up in Section VII. Our primary goal for Chapel under HPCS was to improve programmer productivity on high-end parallel systems. At II. CHAPEL’S ORIGINS the same time, we have worked to make Chapel a portable This section provides a historical overview of the Chapel programming model that is attractive for commodity clus- project. For a more detailed history of Chapel, please refer ters, desktop computing, and parallel programmers outside to [1]. of the traditional High Performance Computing (HPC) com- munity. A. A Brief History of Chapel While the success of any new language can never be In 2002, at the outset of the HPCS program, the Cray guaranteed, Chapel has succeeded in making a very positive team (codenamed Cascade) began considering ways to im- impression on the parallel programming community. Most prove user productivity across the entire system stack: from programmers who have invested the time to learn about processor and memory architecture, to network technology Chapel are very interested in using it once its implementation and topology, to operating system and runtime responsi- becomes more robust and optimized. Perhaps more than any bilities, to programming environment features. As part of previous parallel language, there is a strong desire among this investigation, the team wrestled with whether or not to a broad base of users to see Chapel succeed and evolve develop a new programming language, considering the status from its current prototype status to become product-grade. quo to be far from ideal from a productivity perspective. Chapel has been downloaded over 6,000 times since its first Initially, there was concern that a language developed by public release in November of 2008, and it is also available a lone hardware vendor could not possibly be successful as a standard module on most Cray systems. It has been and was therefore not worth the effort; however, we soon experimented with by typical HPC users in government realized that many of the most successful languages had been and industry, nationally and internationally, as well as by developed in precisely this way and had simply transitioned research and educational groups within Computer Science departments. 1Available for download at https://sourceforge.net/projects/chapel/. to a consortium-based model as they grew in maturity. the broader Chapel community. At SC11, the first Chapel Having overcome that initial hesitancy, the Chapel project “swag” was developed—a USB stick bearing the Chapel was initiated during the first half of 2003. From the outset, logo. SC11 also saw the first in a series of “Chapel Lightning it was determined to be a portable, open-source effort that Talks” sessions, highlighting work being done on Chapel by would also support the ability to leverage Cray architectural a half dozen groups outside of Cray. features. In October 2012, Chapel completed its final deliverables From 2003 through 2006, Chapel existed in a reasonably for the DARPA HPCS program: a scalable execution of the molten state. The team at that time was simultaneously SSCA#2 benchmark on the prototype Cray XC30 system working to define the language and kick off the imple- and a final productivity report. In the ensuing time, the mentation effort. Much of this period was characterized team has continued working on improvements to Chapel by wrestling with different language concepts and design while simultaneously planning for the next phase in Chapel’s philosophies, striving to find a set of features that would development (described in Section VI). work well together. In early summer 2006, a turning point B. Chapel By the Numbers was reached when the current type inference semantics and compiler architecture were formulated. From that point The following list provides some numbers characterizing on, progress became much more monotonic and stable. In aspects of Chapel’s history at the time of this writing: December 2006, the first Chapel release (version 0.4) was 21,334: Commits against the Chapel public repository made available on a by-request basis and included support 6116: Downloads of Chapel releases from SourceForge for multitasking in a single-locale (shared memory) setting. 1024: Messages sent to the chapel-users mailing list In July 2007, the first multi-locale (distributed memory) 192: Unique, non-Cray subscribers to Chapel mailing Chapel programs began running, and by March 2008, this lists hosted at SourceForge support was stable enough to be included in the fourth 154: Chapel talks given by the Cray team and final request-only release of Chapel (version 0.7). From 80 at conferences and workshops there, the implementation began focusing on Chapel’s data 32 at milestone reviews parallel features, both in single- and multi-locale settings. 18 at universities That fall, Chapel was mature enough to run versions of 16 at government labs the HPCC Stream and Random Access (RA) benchmarks 8 in industry settings written with a user-defined Block distribution that scaled to 24: Notable collaborations external to the Cray team hundreds of compute nodes. This milestone earned Chapel 10 with national labs a place in the three-way tie with Matlab and UPC/X10 10 with academic groups for “most elegant” language in the 2008 HPC Challenge 4 with international teams competition. That fall also saw our first public release of 17: Number of Chapel tutorials given Chapel (version 0.8) and our first tutorial at SC08. The following several years saw Chapel increase in 6 at SCxy maturity and prominence. In April 2009, Chapel’s source 5 in Europe code repository moved from being hosted in an invite- 3 at government labs only manner at the University of Washington to an open 3 at CUG repository at SourceForge, where it continues to be hosted 14: Major releases of Chapel today. A few months later, the Chapel website was launched 10 public releases at http://chapel.cray.com. At that year’s HPC Challenge 4 by request only competition, Chapel emerged from the pack and was named 0: Language modifications due to changes in the the “most productive” language—a title that it has retained Cascade architecture during the HPCS program each year it has participated since then (2011 and 2012). This last item is notable because Chapel was designed to be a From 2009 onward, the number of collaborations and very general, portable parallel programming language; so the user interactions undertaken around Chapel increased signif- fact that it did not need to change as the Cascade architecture icantly, resulting in the first signs of a broader open-source evolved can be considered an indicator of success in that Chapel community outside of Cray [2], [3], [4], [5], [6]. regard. Chapel also came of age this year in that it began to be considered an expected participant within the HPC space III. CHAPEL OVERVIEW rather than yet another contender doomed to failure. At For readers who are unfamiliar with Chapel, this section SC10, the Chapel community met for the first in a series provides a brief summary of the language features. Those of annual CHUG (Chapel Users Group) happy hours. In who are familiar with Chapel can safely skip to the following August 2011, the Chapel logo was unveiled, based on the section. This overview is necessarily high-level and not in- winning entry in a contest held amongst Cray employees and tended to be a replacement for a thorough introduction to the language.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us