|
|
|
|
Research Interests
|
|
Parallel computation, particularly with respect to programming
languages, compilers, algorithms, applications, and scalability.
|
|
|
|
Education
|
|
|
September 2001
|
|
May 1995
|
|
June 1992
|
|
|
Professional R&D Experience
|
|
Distinguished Technologist, Hewlett Packard Enterprise
Master Engineer, Hewlett Packard Enterprise
Principal Engineer,
Cray Inc.
Software Engineer, Cray Inc.
I am a founding member, and since 2006 have been the technical
lead, of the Chapel
project at HPE/Cray Inc., the goal of which is to create a
modern parallel programming language for productive scalable
computing. In this role, I:
- lead the effort to define Chapel's syntax and semantics,
- oversee and participate in the implementation of the
open-source Chapel
compiler, libraries, and runtime,
- seek out, establish, and maintain funding for the project,
- establish and support collaborations with members of
academia, government, and industry, both domestically and
internationally,
- perform outreach to the Chapel, HPC, and general Computer
Science communities in the form of talks, research visits, and
tutorials, to inform people about what we're doing and to
learn from others,
- perform application studies to compare Chapel to other
programming models, and
- help provide technical leadership to the rest of the team.
As a result of these efforts, the Chapel project has grown from a
relatively modest effort to one that now involves nearly 20
full-time developers at HPE (as well as numerous external R&D
efforts), resulting in a language that is increasingly considered
to be one of the most promising for addressing the challenge of
productive parallel programming at scale.
|
November 2021 – present
January 2020 – November 2021
March 2006 – December 2019
October 2002 – March 2006
|
Affiliate Professor,
University of Washington,
Paul G. Allen School of Computer Science & Engineering
Affiliate Assistant Professor,
University of Washington,
Computer Science & Engineering (UW CSE)
As an affiliate faculty member of the Allen School at UW, I serve
as a liaison between the department and industry, ensuring that
HPE/Cray and UW are mutually aware of relevant activities with
respect to the other, and being available to provide an external
perspective for the department. In this role, I have served on
students' generals and thesis committees, taught the occasional
course for the department, attend seminars and the department's
annual industrial affiliates meeting when possible, volunteer for
mentoring activities with students, and generally strive to foster
communication between the department and HPE/Cray.
|
July 2015 – present
January 2002 – July 2015
|
Senior Software Developer,
QuickSilver Technology
QuickSilver Technology was a startup company that developed novel
hardware for adaptive embedded computing. At QuickSilver, I
helped lead an effort to design and implement a novel language,
SilverC, for expressing streaming concurrent computations on
reconfigurable architectures. I led the implementation of a
prototype simulator for SilverC to explore its use and develop
algorithms for it in a desktop environment. This work included
the development of documentation and presentations explaining the
language, both for internal discussion and for the end user. This
work was undertaken in C++ and Java on Linux and Windows
platforms, and a portion of it was developed using XP (Extreme
Programming) methodologies.
|
September 2001 – September 2002
|
Research Assistant,
UW CSE, ZPL project
In this role, I worked with Lawrence (Larry)
Snyder and a team of graduate students on ZPL, a novel data
parallel programming language developed at UW. From its
inception, I was a primary contributor, both to ZPL's design and
to its implementation via the ZPL compiler and runtime system. My
contributions to ZPL's design aided in its evolution from modest
support for Jacobi-style kernels to its eventual support for far
richer idioms utilizing hierarchical and sparse arrays. My
research focused on the concept of the region, a
language-based index set useful for specifying parallel
array-based computation (which went on to influence Chapel's
domains and X10's regions). I studied the benefits of regions and
their role in supporting a syntax-based performance model. I also
developed language support for regions with replicated,
privatized, hierarchical, and sparse dimensions. My work in ZPL's
runtime libraries included the development of the Ironman
communication interface which supports the specification of
high-performance communication in a manner that is portable across
distributed memory architectures supporting 2-sided or 1-sided
communication, as well as shared memory architectures. I led the
creation of periodic public releases of the compiler, making these
available on the web, and provided user support for researchers
who utilized ZPL in their own work.
|
September 1992 – 2001
|
Research Assistant,
UW CSE, GRAIL
Under the guidance of Tony
DeRose, David
Salesin, and John
Snyder, I developed and implemented a technique for
automatically accelerating the rendering of complex static scenes
using a spatial hierarchy. This approach had the benefits of
asymptotically reducing rendering time while also eliminating
visual noise caused by sampling issues when mapping too many
polygons to each pixel as the camera moves around a scene.
|
June 1994 – May 1996
|
|
|
Teaching Experience
|
|
Instructor,
CSEP
524: Parallel Computation,
UW CSE
Taught the department's professional
master's program course in parallel computation. Developed
a new syllabus for the course, prepared and presented a
three-hour lecture per week, held office hours, worked with a TA
to design and implement an assignment per week, designed and
graded a final project.
|
Winter 2013
|
|
Winter
2002 and Autumn
2007
|
Distance Learning Course Designer,
UW Educational
Outreach (UWEO)
Designed the curriculum for UWEO's first data structures course
for distance learning students. Created a dozen self-paced
lessons, each with a programming or written assignment, as well as
introductory materials and exams.
|
July 2000 – August 2001
|
Volunteer Tutor,
UW CSE
Tutored underrepresented undergraduates in UW CSE in a number
of subjects including compilers, data structures, algorithms,
theory, and software engineering.
|
January 1995 – June 2000
|
Instructor, CSE 373: Data
Structures and Algorithms,
UW CSE
For two quarters, taught the department's undergraduate data
structures course for non-majors. Prepared and presented three lectures a week, designed
written and programming assignments, managed two TAs, held office
and lab hours, designed and graded exams. Received excellent
student evaluations.
|
Spring and Autumn 1999
|
Head Teaching Assistant, CSE
143: Computer Programming II,
UW CSE
Served as the head TA for the department's second introductory
programming course for undergraduates. Managed five TAs,
organized weekly staff meetings, created and graded weekly
quizzes, taught discussion sections for TAs who were unable to do
so, and helped with the grading of exams.
|
Autumn 1996
|
Teaching Assistant, CSE
341: Programming Languages,
UW CSE
Served as the TA for the department's programming languages course
for undergraduate majors. Taught two discussion sections twice a
week each, providing further explanation and practice with
concepts taught in lectures. Graded assignments, helped create
assignments and exams. Languages covered included ML, Scheme,
Prolog, and Smalltalk.
|
Winter 1996
|
|
January 1990 – June 1992
|
|
|
Publications
|
|
|
|
|
|
Manuals and Documentation
|
|
|
|
|
Trends in Data Locality for HPC Systems.
Didem Unat, Anshu Dubey, Torsten Hoefler, John Shalf, Mark Abraham, Mauro Bianco, Bradford L Chamberlain, Romain Cledat, H Carter Edwards, Hal Finkel, Karl Fuerlinger, Frank Hannig, Emmanuel Jeannot, Amir Kamil, Jeff Keasler, Paul HJ Kelly, Vitus Leung, Hatem Ltaief, Naoya Maruyama, Chris J Newburn, Miquel Pericas.
IEEE Transactions on Parallel and Distributed Systems,
May 2017.
Parallel Programmability and the Chapel Language.
Bradford L. Chamberlain, David Callahan, and Hans P. Zima.
International Journal of High Performance Computing Applications,
21(3):291–312, August 2007.
High-level Language Support for User-defined Reductions.
Steven J. Deitz, Bradford L. Chamberlain, and Lawrence Snyder,
The Journal of Supercomputing,
23(1):23–37, May 2001.
ZPL: A Machine Independent Programming Language for Parallel
Computers.
Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis,
Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby.
IEEE Transactions on Software Engineering,
26(3):197–211, March 2000.
The Case for High-Level Parallel Programming in ZPL.
Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis,
Lawrence Snyder, W. Derrick Weathersby, and Calvin Lin.
IEEE Computational Science and Engineering,
5(3):76–86, July–September 1998.
|
Refereed Conference and Workshop Publications
|
|
Extending Chapel to Support Fabric-attached Memory,
Amitha C, Bradford L. Chamberlain, Clarete Riana Crasta, and Sharad Singhal.
CUG 2022, Monterey CA, May 4, 2022.
Locality-Based Optimizations in the Chapel Compiler,
Engin Kayraklioglu, Elliot Ronaghan, Michael Ferguson, and Bradford
L. Chamberlain.
Languages and Compilers for Parallel Computing (LCPC 2021),
virtual event, October 13–15, 2021.
Chapel Comes of Age: Productive Parallelism at Scale,
Bradford L. Chamberlain, Elliot Ronaghan, Ben Albrecht, Lydia
Duncan, Michael Ferguson, Ben Harshbarger, David Iten, David Keaton,
Vassily Litvinov, Preston Sahabu, and Greg Titus.
Cray Users Group 2018 (CUG 2018),
Stockholm Sweden, May 22, 2018.
A Study of the Bucket-Exchange Pattern in the PGAS Model Using
the ISx Integer Sort Mini-Application,
Jacob Hemstad, Ulf Hanebutte, Ben Harshbarger, and Brad Chamberlain.
PGAS Applications Workshop (PAW 16),
November 2016.
Parameterized Diamond Tiling for Stencil Computations with Chapel
Parallel Iterators,
Ian J. Bertolacci, Catherine Olschanowsky, Ben Harshbarger, Bradford
L. Chamberlain, David G. Wonnacott, and Michelle Mills Strout.
29th International Conference on Supercomputing (ICS 2015),
June 2015.
Scripting Language Performance Through Interoperability,
Simon A. F. Lund, Bradford L. Chamberlain, and Brian Vintner.
First Workshop on High Performance Scripting Languages (HPSL),
February 7, 2015.
Exploring Traditional and Emerging Parallel Programming Models
using a Proxy Application (named "best software
paper").
Ian Karlin, Abhinav Bhatele, Jeff Keasler, Bradford L. Chamberlain,
Jonathan Cohen, Zachary DeVito, Riyaz Haque, Dan Laney, Edward Luke,
Felix Wang, David Richards, Martin Schulz, Charles Still.
27th IEEE International Parallel & Distributed Processing
Symposium (IPDPS 2013),
May 2013.
Global Data Re-allocation via Communication Aggregation in
Chapel.
Alberto Sanz, Rafael Asenjo, Juan Lopez, Rafael Larrosa, Angeles
Navarro, Vassily Litvinov, Sung-Eun Choi, and Bradford
L. Chamberlain.
24th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD'2012),
New York, NY, October 2012.
Performance Portability with the Chapel Language
Albert Sidelnik, Saeed Maleki, Maria Jesus Garzaran, Bradford L. Chamberlain, David Padua,
26th IEEE International Parallel & Distributed Processing
Symposium (IPDPS 2012),
May 2012.
User-Defined Parallel Zippered Iterators in Chapel,
Bradford L. Chamberlain, Sung-Eun Choi, Steven J. Deitz, Angeles Navarro,
Fifth Conference on Partitioned Global Address Space Programming Models (PGAS 2011), October 15–18, 2011.
A First Implementation of Parallel I/O in Chapel for Block Data Distribution,
Rafael Larrosa, Rafael Asenjo, Angeles Navarro, Bradford L. Chamberlain,
International Conference on Parallel Computing (ParCo 2011), September 2011.
Translating Chapel to FREERIDE: A Case Study in Using an HPC Language for Data-Intensive Computing,
Bin Ren, Gagan Agrawal, Brad Chamberlain, Steve Deitz,
16th International Workshop on High-Level Parallel Programming
Models and Supportive Environments (HIPS 2011), May 2011.
User-Defined Distributions and Layouts in Chapel: Philosophy and Framework,
Bradford L. Chamberlain, Steven J. Deitz, David M. Iten, and Sung-Eun Choi,
2nd USENIX Workshop on Hot Topics in Parallelism (HotPar), June 2010.
Software Transactional Memory for Large-Scale Clusters.
Robert L. Bocchino Jr., Vikram S. Adve, and Bradford L. Chamberlain.
Principles and Practices of Parallel Programming (PPoPP)
2008.
Iterators in Chapel.
Mackale Joyner, Steven J. Deitz, and Bradford L. Chamberlain.
In Proceedings of the 11th International Workshop on High-Level
Parallel Programming Models and Supportive Environments (HIPS
2006), April 2006.
Global-view Abstractions for User-Defined Reductions and Scans.
Steven J. Deitz, David Callahan, Bradford L. Chamberlain, and
Lawrence Snyder.
In Proceedings of the 11th ACM SIGPLAN Symposium on Principles
and Practices of Parallel Programming (PPoPP)
pages 40–47, March 2006.
Reusable and Extensible High Level Data Distributions.
Roxana E. Diaconescu, Bradford Chamberlain, Mark L. James, Hans P. Zima.
In Proceedings of the Workshop on Patterns in High Performance
Computing (patHPC), May 2005.
Compiling High-Level Languages for Vector Architectures.
Christopher D. Rickett, Sung-Eun Choi, and Bradford L. Chamberlain.
In Proceedings of the 17th International Workshop on Languages
and Compilers for Parallel Computing (LCPC'04),
pages 224–237, September 2004.
The Cascade High Productivity Language.
David Callahan, Bradford L. Chamberlain, Hans P. Zima.
In Proceedings of the 9th International Workshop on High-Level
Parallel Programming Models and Supportive Environments (HIPS
2004),
pages 52–60, May 2004.
Abstractions for Dynamic Data Distribution.
Steven J. Deitz, Bradford L. Chamberlain, and Lawrence Snyder.
In Proceedings of the 9th International Workshop on High-Level
Parallel Programming Models and Supportive Environments (HIPS 2004),
pages 42–51, April 2004.
An Application Kernel Matrix for Studying the Productivity of
Parallel Programming Languages.
Brad Chamberlain, John Feo, John Lewis, and David Mizell.
In Proceedings of the First International Workshop on Software
Engineering for High Performance Computing System Applications,
pages 37–41, May 2004.
The High-Level Parallel Language ZPL Improves Productivity and
Performance.
Bradford L. Chamberlain, Sung-Eun Choi, Steven J. Deitz, and
Lawrence Snyder.
In Proceedings of the 1st Workshop on Productivity and
Performance in High-End Computing (PPHEC-04),
pages 66–75, February 2004.
Introducing the Application Kernel Matrix.
Bradford L. Chamberlain, John Feo, and David Mizell.
In Proceedings of the 1st Workshop on Productivity and
Performance in High-End Computing (PPHEC-04),
pages 52–55, February 2004.
The Design and Implementation of a Parallel Array Operator for the
Arbitrary Remapping of Data
Steven J. Deitz, Bradford L. Chamberlain, Sung-Eun Choi, and
Lawrence Snyder.
In Proceedings of the ACM SIGPLAN Symposium on Principles and
Practices of Parallel Programming (PPoPP 2003),
pages 155–166, June 2003.
Array Language Support for Parallel Sparse Computation.
Bradford L. Chamberlain and Lawrence Snyder.
In 15th ACM International Conference on Supercomputing
(ICS'01),
pages 133–145, June 2001.
Eliminating Redundancies in Sum-of-Product Array Computations.
Steven J. Deitz, Bradford L. Chamberlain, and Lawrence Snyder.
In 15th ACM International Conference on Supercomputing
(ICS'01),
pages 65–77, June 2001.
A Comparative Study of the NAS MG Benchmark across Parallel
Languages and Architectures.
Bradford L. Chamberlain, Steven J. Deitz, and Lawrence Snyder.
In Proceedings of the 2000 ACM/IEEE Supercomputing
Conference on High Performance Networking and Computing
(SC2000),
November 2000.
Regions: An Abstraction for Expressing Array Computation.
Bradford L. Chamberlain, E Christopher Lewis, Calvin Lin, and
Lawrence Snyder.
In Proceedings of the 1999 ACM/SIGAPL International
Conference on Array Programming Languages (APL99),
pages 41–49, August 1999.
Language Support for Pipelining Wavefront Computations.
Bradford L. Chamberlain, E Christopher Lewis, and Lawrence Snyder.
In Proceedings of the 12th International Workshop
on Languages and Compilers for Parallel Computing (LCPC'99),
pages 318–332, August 1999.
Problem Space Promotion and Its Evaluation as a Technique for
Efficient Parallel Computation.
Bradford L. Chamberlain, E Christopher Lewis, and Lawrence Snyder.
In Proceedings of the 13th ACM International
Conference on Supercomputing (ICS'99),
pages 311–318, June 1999.
ZPL's WYSIWYG Performance Model.
Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis,
Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby.
In Proceedings of High-Level Parallel Programming
Models and Supportive Environments (HIPS'98),
pages 50–61, March 1998.
Portable Performance of Data Parallel Languages.
Ton Ngo, Lawrence Snyder, and Bradford Chamberlain.
In Proceedings of the 1997 ACM/IEEE Supercomputing
Conference on High Performance Networking and Computing
(SC97),
November 1997.
A Compiler Abstraction for Machine Independent Parallel
Communication Generation.
Bradford L. Chamberlain, Sung-Eun Choi, and Lawrence Snyder.
In Proceedings of the 10th International Workshop
on Languages and Compilers for Parallel Computing (LCPC'97),
pages 261–276, August 1997.
Factor-Join: A Unique Approach to Compiling Array Languages for
Parallel Machines.
Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis,
Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby.
In Proceedings of the 9th International Workshop on
Languages and Compilers for Parallel Computing (LCPC'96),
pages 481–500, August 1996.
Fast Rendering of Complex Environments Using A Spatial
Hierarchy.
Bradford Chamberlain, Tony DeRose, Dani Lischinski, David Salesin,
and John Snyder.
In Proceedings of the 22nd Annual Graphics
Interface Conference (GI'96),
pages 132–141, May 1996.
|
Non-Refereed Papers, Articles, and Technical Reports
|
|
The State of the Chapel Union, Bradford L. Chamberlain,
Sung-Eun Choi, Martha Dumler, Thomas Hildebrandt, David Iten,
Vassily Litvinov, Greg Titus. Cray Users Group 2013 (CUG
2013), May 2013.
LULESH Programming Model and Performance Ports Overview.
Ian Karlin, Abhinav Bhatele, Brad Chamberlain, Jonathan Cohen, et al.
LLNL-TR-608824,
December 2012.
Composite Parallelism: Creating Interoperability Between PGAS
Languages, HPCS Languages, and Message Passing Libraries,
Thomas Epperly, Adrian Prantl, Bradford Chamberlain. LLNL
Project Report, September 2011.
Authoring User-Defined Domain Maps in Chapel. Bradford
L. Chamberlain, Steven J. Deitz, David Iten, Vassily
Litvinov. Cray Users Group 2011 (CUG 2011), May 2011.
The Chapel Tasking Layer Over Qthreads, Kyle B. Wheeler,
Richard C. Murphy, Dylan Stark, Bradford L. Chamberlain. Cray
Users Group 2011 (CUG 2011), May 2011.
Five Powerful Chapel Idioms. Steven J. Deitz,
Bradford L. Chamberlain, Sung-Eun Choi, David Iten, Lee Prokowich.
Cray Users Group 2010 (CUG 2010), May 2010.
A Scalable Implementation of Language-Based Software Transactional Memory for Distributed Memory Systems.
Srinivas Sridharan, Jeffrey Vetter, Bradford L. Chamberlain, Peter Kogge, Steve Deitz.
Technical Report Series No. FTGTR-2011-02, Oak Ridge, TN: Future Technologies Group, Oak Ridge National Lab,
May 2011.
Using the High Productivity Language Chapel to Target GPGPU Architectures.
Albert Sidelnik, Bradford L. Chamberlain, Maria J. Garzaran, David Padua.
UIUC Department of Computer Science Technical Report,
April 2011.
HPC Challenge Benchmarks in Chapel, Bradford
L. Chamberlain, Sung-Eun Choi, Steven J. Deitz, David Iten. White
paper for HPC Challenge BOF, SC09, November 2009.
HPCC STREAM and RA in Chapel: Performance and Potential.
Steven J. Deitz, Bradford L. Chamberlain, Samuel Figueroa, David
Iten. Cray Users Group 2009 (CUG 2009), May 2009.
Chapel: Productive Parallel Programming at Scale. Bradford
L. Chamberlain. Google Seattle Conference on Scalability,
June 14, 2008.
Multiresolution Languages for Portable yet Efficient Parallel
Programming. Bradford L. Chamberlain. White paper in
response to DARPA RFI 08-03, October 2007.
Global HPCC Benchmarks in Chapel: STREAM Triad, Random Access,
and FFT. Bradford L. Chamberlain, Steven J. Deitz, Mary Beth
Hribar, Wayne A. Wong. Cray Users Group 2007 (CUG 2007),
May 2007.
Chapel: Cascade High-Productivity Language; An Overview
of the Chapel Parallel Programming Model. Steven J. Deitz,
Bradford L. Chamberlain, and Mary Beth Hribar. Cray Users
Group 2006 (CUG 2006), May 2006.
On the Sensitivity of Parallel Programming Languages to the Number
and Arrangement of Processors.
Steven J. Deitz, Bradford L. Chamberlain, and Lawrence Snyder.
University of Washington Technical Report UW-CSE-05-11-01,
November 2005.
Tired of MPI? The ZPL Language. Bradford L. Chamberlain,
Sung-Eun Choi, Steven Deitz, and Lawrence Snyder. Article
in ClusterWorld, February 2005.
The Role of Language Support in Improving Time to Solution.
Lawrence Snyder and Bradford Chamberlain. White paper for
High-End Computing Revitalization Task Force (HECRTF), May
2003.
Revitalization of Programming for High-End Computing.
David Callahan and Bradford Chamberlain. White paper for
High-End Computing Revitalization Task Force (HECRTF), May
2003.
Parallel Language Support for Multigrid Algorithms.
Bradford L. Chamberlain, Steven Deitz, and Lawrence Snyder.
University of Washington Technical Report UW-CSE-99-11-03,
November 1999.
A Region-based Approach for Sparse Parallel Computing.
Bradford L. Chamberlain, E Christopher Lewis, and Lawrence Snyder.
University of Washington Technical Report UW-CSE-98-11-01,
November 1998.
Graph Partitioning Algorithms for Distributing Workloads of
Parallel Computations
(generals exam).
Bradford L. Chamberlain.
University of Washington Technical Report
UW-CSE-98-10-03,
October 1998.
ZPL vs. HPF: A Comparison of Performance and Programming Style.
Calvin Lin, Lawrence Snyder, Ruth Anderson, Bradford
L. Chamberlain, Sung-Eun Choi, George Forman, E Christopher Lewis,
and W. Derrick Weathersby.
University of Washington Technical Report UW-CSE-95-11-05,
November 1995.
|
|
Blogs, Interviews, and Social Media
|
|
Chapel
Technical Lead, Brad Chamberlain, Opens Up About Open
Source. HPE
Developer Blog, February 2021.
Interview
with Brad Chamberlain about a productive parallel programming
language called Chapel. This is not a Monad Tutorial
Blog, February 2018.
CHIUW
2017: Surveying the Chapel Landscape. Brad
Chamberlain, Cray
Blog, July 2017.
Chapel Springs into a Summer of Code. Brad
Chamberlain, Cray
Blog, April 2016.
Six
Ways to Say "Hello" in Chapel, parts 1, 2, and
3). Brad Chamberlain, Cray Blog,
September–October 2016.
We're
the development team for the Chapel parallel programming language,
Ask Us Anything!. Chapel Team, An AMA session on
Reddit's /r/ProgrammingLanguages,
October 2015.
Chapel
Users `CHIUW' Their Way Through Portland, Brad
Chamberlain, Cray
Blog, June 2015.
Chapel at SC14:
Making Big Easy. Brad Chamberlain, Cray Blog, November 2014.
Why Chapel? (parts
1, 2, and 3). Cray Blog, Brad Chamberlain,
June-October 2014.
Chapel Parallel
Iterators: Giving Programmers Productivity with
Control. Brad Chamberlain, Cray Blog, September 2013.
Chapel: Productive
Parallel Programming. Brad Chamberlain, Cray Blog, May 2013.
Myths About Scalable Parallel Programming
Languages. Bradford L. Chamberlain, IEEE Technical
Committee on Scalable Computing Blog, April–November 2012.
Closing
the Parallelism Gap with the Chapel Language. Interview
in HPCwire, November 2008.
Arctic Region Supercomputer Center's HPC/Cray T3E Users'
Group Newsletter articles:
- I/O Algorithms on Cray T3E, Brad
Chamberlain, Issue 214, February 2001.
- Comparison of Languages for Multi-Grid Methods,
Brad Chamberlain, Issues 188–189, February
2000.
- MPI Message Tags on Yukon, Brad
Chamberlain, Issue 161, January 1999.
- ZPL: New Parallel Language Available, Brad
Chamberlain, Issue 122, July 1997.
|
|
|
P-Independent Parallel Programming in ZPL. Steven Deitz,
Bradford Chamberlain, and Lawrence Snyder. SC05, November
2005.
Iterators in Chapel. Mackale Joyner, Brad Chamberlain, and
Steve Deitz. Los Alamos Computer Science Institute
(LACSI), October 2005.
A Region-based Approach for Sparse Parallel Computing.
Brad Chamberlain,
9th International Workshop on Languages and
Compilers for Parallel Computing, UCSD, August 1996.
|
|
|
Presentations (most of which are archived at chapel-lang.org/presentations-archived.html)
|
|
Keynotes and Plenary Talks
|
|
Multiresolution Support for Aggregated Communication in
Chapel, keynote at OpenSHMEM
2021, virtual event due to Covid-19.
|
September 2021
|
|
October 2020
|
If the HPC Community were to create a truly productive
language... [how] would we ever know?, Dagstuhl Seminar keynote:
Performance Portability in Extreme-Scale Computing: Metrics,
Challenges, Solutions, Wadern, Germany.
|
October 2017 |
|
April 2017 |
Lessons Learned in Array Programming, keynote
at ARRAY 2016, Santa Barbara, CA.
|
June 2016 |
Chapel: The Design and Implementation of a
Multiresolution Language, keynote at Keynotes on HPC
Languages, Lyon, France.
|
June 2013 |
|
February 2010 |
|
|
State of the Chapel Project annual
talks, CHIUW (June 2021,
May
2020, June 2019, May 2018, June 2017, May 2016), various
locations.
|
2016–2021
|
Chapel: A Parallel Language for Productivity at Scale,
invited talk at NIST,
Gaithersburg, MD.
|
October 2019
|
When is Enough, Enough? With so many Parallel Programming
Technologies, is it Time to Focus on Consolidating them?,
panelist at ISC 2019, Frankfurt, Germany.
|
June 2019
|
|
June 2019
|
Chapel's Multiresolution Programming Model: Mixing High-level
Parallel Abstractions with Lower-level Control, invited
talk at the Northwest C++ Users Group, Seattle, WA.
|
February 2018
|
Chapel's New Adventures in Data Locality,
talk at PADAL 2017, Chicago, IL.
|
August 2017 |
A Language Designer's Perspective on Benchmarking Suites
and Competitions, invited talk at EMBRACE 2017
workshop, IPDPS 2017, Orlando, FL.
|
June 2017 |
HPC Programmers Deserve Nice Things Too, talk
for Parallel Programming panel at ISC 2016, Frankfurt,
Germany.
|
June 2016 |
Five Things You Should Do to Create a Future-Proof
Exascale Language, invited talk at PGAS 2015, Washington,
DC.
|
September 2015 |
Reflections on Programming Environments and
Productivity, invited talk at ASCR Exascale Computing Systems
Productivity Workshop, Gaithersburg, MD.
|
June 2014 |
Three Language Concepts for Taming Data
Locality, talk at PADAL Workshop 2014, Lugano,
Switzerland.
|
April 2014 |
Chapel, Life, the Universe, invited talk
at (SICM)**2 Parallel Computing Workshop, Manhattan,
NY.
|
March 2014 |
Chapel: Parallel Programmability from Desktops to
Supercomputers, invited talk at University of Bergen,
Bergen, Norway.
|
April 2013 |
State of the Chapel Union: HPCS Reflections and
Musings about the Future, invited talk at PGAS 2012,
Santa Barbara, CA.
|
October 2012 |
Chapel Support for Heterogeneous Architectures via
Hierarchical Locales, invited talk at PGAS-X 2012, Santa
Barbara, CA.
|
October 2012 |
Exascale: Your Opportunity to Create a Decent HPC
Language, invited talk at Parallel Programming Models For Exascale
workshop, Portland, OR.
|
August 2012 |
Chapel: Multiresolution Parallel Programming,
invited talk at AMD Fusion Developer Summit, Bellevue,
WA.
|
June 2012 |
|
February 2012 |
Chapel: Parallel Programmability for HPC (and your
desktop too!), invited talk at University of Washington,
Seattle, WA.
|
January 2012 |
|
November 2011 |
Programming Models and Chapel: Landscaping for
Exascale Computing, invited talk
at INT
Exascale Workshop, Seattle, WA.
|
June 2011 |
|
May 2011 |
Data-Oriented Programming Models: Yielding Some
Control in a Community of Control Freaks, invited talk
at Salishan Conference on High-Speed Computing, Salishan, OR.
|
April 2011 |
|
October 2010 |
PGAS, Global Arrays, and MPI-3: How do they fit
together? invited talk at Global Arrays Workshop, Seattle, WA.
|
May 2010 |
|
February 2010 |
|
November 2009 |
A variety of Chapel technical overview
talks at PuPPy (2020, 2018), University of Rochester
(2019), SIAM CSE19 (2019), PNWPLSE (2018, 2016), Heterogeneous C++
Working Group (2018), SeaLang Meetup (2017), Northwest C++ Users
Group (2016, 2014), ATPESC (2016,
2015,
2014, 2013),
University of Copenhagen (2016), NII Shonan Meeting 075 (2015),
ETH Zurich (2014), SIAM PP14 (2014), SC13 Emerging Technologies
booth (2013), PNWNAS (2013), UW AMath 483/583 (2013), UIUC (2013,
2012, 2008), Seattle University (2012), LLNL (2011), Google (2011,
2007, 2006), Argonne (2010), Universitat Politecnica de Catalunya
(2009), U/Malaga (2009), Galois Inc. (2009), NSF (2009), Bridging
the Multicore Programmability Gap (SC Workshop, Austin TX, 2008),
IBM (2008), UW/MSR Summer Research Institute: The Concurrency
Challenge: Can We Make Parallel Programming Popular? (2008),
Novel Parallel Programming Languages for HPC workshop, HPCx
(2008), UT Austin (2008), AURORA Workshop (Vienna, Austria, 2007),
WWU (2007), Stanford (2006), Microsoft (2005), Sandia (2005), LLNL
(2005), ORNL (2005), LANL (2005), and many
others. |
Panelist speaking about Chapel at PGAS
(2011), DCPM (2011), HPCSW (2008), GARPA (2007), HPCWPL (2006), HPCC
BoF at SC06 (2006), PPoPP (2006), PGAS workshop (2006, 2005), HPLS
workshop (2006), and several others. |
A Region-based Implementation of the NAS MG Benchmark,
Cray Inc., Seattle, WA.
|
October 2000
|
|
March 2000
|
|
|
|
|
Chapel Customer Tutorial, invited tutorial; two
days.
|
October 2018 |
A Programmer's Introduction to Chapel, invited
tutorial, ACCU 2017 (Bristol, England); full-day.
|
April 2017 |
Productive Programming in Chapel: A
Computation-Driven Introduction, refereed tutorial, SC16 (Salt
Lake City, UT); co-taught with Ben Albrecht, Michael Ferguson, Greg
Titus, and Sung-Eun Choi; full-day.
|
November 2016 |
Chapel Customer Tutorial (UK), invited tutorial; two
days.
|
June 2016 |
A Computation-Driven Introduction to Parallel Programming
in Chapel, refereed tutorial, SC14 (New Orleans, LA); co-taught
with Greg Titus and Sung-Eun Choi; half-day.
|
November 2014 |
Productive Programming in Chapel: a Next-Generation
Language for General, Locality-Aware Parallelism, invited
tutorial, University of Bergen; 4 hours.
|
April 2013 |
Productive Programming in Chapel: a Language for General, Locality-aware Parallelism, refereed tutorial, SC12 (Salt Lake City, UT); co-taught with Sung-Eun Choi; 3 hours.
|
November 2012 |
Productive Programming in Chapel: A Next-Generation Language, invited tutorial, University of Basel; 6 hours.
|
February 2012 |
Productive Programming in Chapel: A Next-Generation Language, refereed tutorial, SC11 (Seattle, WA); co-taught with Sung-Eun Choi; full-day.
|
November 2011 |
Chapel Overview, invited tutorial, Discovery 2015 (ORNL); 2.5 hours lecture + hands-on.
|
September 2011 |
An Overview of the Chapel Parallel Programming Language, accepted tutorial, CUG 2011 (Fairbanks, AK); 2.5 hours lecture.
|
May 2011 |
Parallel Programming in Chapel: The Cascade High-Productivity Language, refereed tutorial, SC10 (New Orleans LA); co-taught with
Sung-Eun Choi; 4 hours lecture + 2 hours hands-on.
|
November 2010 |
Parallel Programming in Chapel: The Cascade High-Productivity Language, full-day invited tutorial, PRACE Autumn School (Barcelona, Spain).
|
October 2010 |
Programming Using the Partitioned Global Address Space
(PGAS) Model, refereed tutorial, SC09 (Portland, OR); co-taught
with Tarek El-Ghazawi and David Grove.
|
November 2009 |
Introduction to Chapel: a Next-Generation HPC
Language, full-day invited tutorial, PRACE Winter School
(Athens, Greece). 6 hours lecture + 2 hours hands-on. ~50
attendees from ~18 countries.
|
November 2008 |
Introduction to Chapel: The Cascade High-Productivity
Language, refereed tutorial, SC08 (Austin TX); co-taught with
Steve Deitz; full-day; ~50 attendees.
|
November 2008 |
Programming using the Partitioned Global Address Space
(PGAS) Model, refereed tutorial, SC08 (Austin TX); co-taught
with Tarek El-Ghazawi and Vijay Saraswat; full-day; ~60 attendees.
|
November 2008 |
|
|
Service
|
|
Steering Committee Member
- ISC 2022:
ISC High Performance 2022
- PAW-ATM
2021: the 4th Annual Parallel Applications Workshop,
Alternatives To MPI+X
- CHIUW 2021: the 8th Annual Chapel Implementers and Users Workshop
|
Organizing Committee Member
|
|
|
Deputy Research Papers Chair
|
Research Papers Track Chair
- ISC 2019: ISC High Performance 2019,
Programming Models & Systems Software research papers
- SC12: The International Conference for High Performance Computing, Networking, Storage and Analysis: Programming Systems technical papers (the inaugural year for this track)
|
Program Committee / External Review Committee (ERC) Member
- SC: The International Conference for High
Performance Computing, Networking, Storage, and Analysis
- 2021: Programming Systems technical papers
- 2018: Programming Systems technical papers
- 2017: Programming Systems technical papers
- 2015: Programming Systems technical papers
- 2015: Workshops committee
- 2014: Programming Systems technical papers
- 2013: Programming Systems technical papers
- 2011: System Software technical papers
- 2010: System Software technical papers
- 2008: System Software technical papers
- PAW-ATM: Parallel Applications Workshop, Alternatives To MPI+X
(2021,
2020,
2019,
2018)
- ICPP: International Conference on Parallel Processing
- 2020, Software track
- 2016, Performance, Reliability, & Dependability track
- 2009, Programming Models, Languages, and Compilers track
- PLDI: The ACM SIGPLAN Conference on Programming Language
Design and Implementation
(2020: ERC)
- ISC: ISC High Performance, Programming Models & Systems Software research papers
(2018)
- ASPLOS: The ACM International
Conference on Architectural Support for Programming Languages and
Operating Systems (2018: ERC)
- PNW PLSE: Workshop on Programming Languages and Software Engineering Research in the Pacific Northwest (2018)
- Cluster: IEEE Cluster Conference, Programming and System Software (2017)
- PAW: PGAS Applications Workshop
(2017,
2016)
- HPDC: International Symposium on
High Performance Parallel and Distributed Computing
(2016)
- ICS: International
Conference on
Supercomputing (2015, 2014: ERC)
- PGAS: Conference on the Partitioned Global Address Space
Programming Model (2015, 2013, 2012, 2011, 2010, 2009)
- HIPS: International Workshop on High-level Parallel
Programming Models and Supportive Environments
(2015,
2014)
- CCGrid: IEEE/ACM International Symposium on Cluster, Cloud, and Internet Computing
(2012,
2011)
- PPoPP : ACM SIGPLAN Principles and Practice of Parallel Programming
(2012,
2011: ERC,
2010,
2005)
- HotPAR: USENIX
Workshop on Hot Topics in Parallelism
(2012)
- FASPP: Future Architectural Support for Parallel Programming (2011)
- PMEA: Workshop on Programming Models for Emerging Architectures (2010, 2009)
- APGAS: Workshop on Asynchrony in the PGAS Programming Model (2009)
- HPCC: High Performance Computing and Communications (2007,
2006)
|
Journal Article Referee / External Paper Review
- TOPC: ACM Transactions on Parallel
Computing (2018, 2014)
- IJHPCA: International
Journal of High-Performance Computing Applications (2018, 2011)
- ParCo:
Journal of Parallel Computing (2016, 2015, 2013)
- CSUR: ACM Computing Surveys (2015,
2014)
- JPDC:
Journal of Parallel and Distributed Computing (2013, 2008)
- CPE:
Concurrency and Computation: Practice and Experience (2013)
- ATC: USENIX
Annual Technical Conference
(2012)
- OOPSLA: ACM
SIGPLAN Object-oriented Programming Systems, Languages, and
Applications (2009)
- HPCC: High Performance Computing and Communications (2009)
- SC: The International Conference
for High Performance Computing, Networking, Storage, and Analysis
(2007)
- TOPLAS: ACM Transactions on
Programming Languages and Systems (2007, 2006, 2004)
- IPDPS: International Parallel and
Distributed Processing Symposium
(2006)
- IPPS/SPDP: Merged
International Parallel Processing Symposium & Symposium on
Parallel and Distributed Processing
(1998)
- PaCT: Parallel Computing
Technologies (199?)
- TVCG:
IEEE Transactions on Visualization and Computer Graphics (199?)
- Euro-Par (199?)
|
Funding Proposal Reviewer
- NSF: National Science Foundation
- External Reviewer (2020, 2014, 2011)
- Panelist (2008)
- DOE: U.S. Department of
Energy (2006)
- UC MICRO: University of California Microelectronics
Innovation and Computer Research Opportunities (2006)
|
Thesis Committee Member
- Tom Westerhout, Ph.D., Radboud University, 2022–TBD
- Louis Jenkins, Ph.D., University of Rochester, 2022–TBD
- Justin Szaday, Ph.D., University of Illinois Urbana-Champaign, 2021–TBD
- Sara Hamouda, Ph.D., Australian National University, 2019
- Weifeng Liu, Ph.D., University of Copenhagen, 2016
- Joshua Milthorpe, Ph.D., Australian National University, 2015
- John Koenig, M.S., University of Minnesota, 2013
- Albert Sidelnik, Ph.D., University of Illinois Urbana-Champaign, 2009–2013
- Raphael 'kena' Poss, Ph.D., University of Amsterdam, 2012
- Robert Bocchino, Ph.D., University of Illinois Urbana-Champaign, 2007–2010
- Benjamin Ylvisaker, Ph.D., University of Washington, 2007–2010
- Karthik Murthy, M.S., University of Texas, Austin, 2009
|
|
Co-advisor
- Steven Deitz, Ph.D. University of Washington, 2000–2003
- Maria Gullickson, M.S., University of Washington, 2000–2001
|
|
Software
|
|
Chapel Compiler, Libraries, and Runtime
I have been a contributor to the implementation of the Chapel
parallel language since its inception. Chapel is released as
open-source software under the Apache 2.0 license and is written
to be portable across multicore desktops running Linux, Mac OS
X, and Windows (Cygwin); commodity clusters; and
high-performance systems like the petascale Cray XC/XE/XK
series supercomputers.
|
|
ZPL Compiler and Runtime
I was a primary developer of the ZPL compiler from 1997 to 2001
and was the chief architect and developer of the ZPL runtime
libraries from 1993 to 2001. ZPL has been publicly available
since the initial release of the compiler (version 1.10) in July
1997. The last release I led (version 1.16) was made available in August
2000, spanning twelve architectures and six communication
configurations.
|
|
Awards and Honors
|
USENIX Scholar
Intel Foundation Graduate Fellowship
Cray Undergraduate Fellowship
Tau Beta Pi
Eagle Scout
|
2000
1997–1998
1991–1992
1991
May 1988
|
|
|
Technical Skills
|
|
Languages:
|
C/C++, Python, Java, Fortran 90, Perl, ML, Pascal, Lisp,
Scheme, Smalltalk, Prolog.
|
|
HPC Programming Models:
|
MPI, SHMEM, Unified Parallel C (UPC), Co-Array Fortran (CAF),
GASNet, High Performance Fortran (HPF), Titanium,
Single-Assignment C.
|
|
Platforms:
|
UNIX, Mac OS X, Windows.
|
|
HPC Platforms:
|
Cray XC/XE/XK/XT, CS, CX1, XMT/MTA, X1, T3E/T3D; Linux
Clusters; IBM Power6/Power5, SP; SGI Origin; Sun Enterprise;
Intel Paragon; KSR-2; BBN GP1000; iPSC/2.
|
|
Personal
|
|
Born in California; raised in Annapolis, Maryland and Northern
Idaho. Patron of the arts.
|
References
|
|
References from academia, government, and industry available
upon request.
|
|
|
|
|