Bradford L. Chamberlain

Hewlett Packard Enterprise
901 Fifth Ave, Suite 1100
Seattle, WA 98164
(206) 701-2077
blc@hpe.com
https://homes.cs.washington.edu/~bradc/

   
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
   
    Book Chapters
    Manuals and Documentation

      Chapel Release Notes (various versions). Chapel Team (Brad Chamberlain, chief editor), HPE/Cray Inc. 2014–present.

    Journal Articles
    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
    Research Posters

      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
    Featured Talks
      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
      Five Key Parallel Design Decisions (for Multicore, Petascale, and Beyond), invited talk at Barcelona Multicore Workshop, Barcelona, Spain.
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
    Research Papers Chair
    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.