Bradford L. Chamberlain

Cray Inc.
901 Fifth Ave, Suite 1000
Seattle, WA 98164
(206) 701-2077
bradc@cray.com
www.cs.washington.edu/homes/brad

   
Research Interests
    Parallel computation, particularly with respect to programming languages, compilers, algorithms, applications, and scalability.
   
Education
September 2001
May 1995
June 1992
   
Research and Development Experience
 
    Principal Engineer, Cray Inc.
    Software Engineer, Cray Inc.
      I am the technical lead for Cray's Chapel project, which has the goal of creating a new 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 a dozen developers at Cray (as well as numerous external developers and institutions), resulting in a language that is increasingly considered to be one of the most promising for increasing the productivity and accessibility of parallel programming.
March 2006 – present
October 2002 – March 2006
    Affiliate Professor, University of Washington, Computer Science & Engineering (UW CSE)
    Affiliate Assistant Professor, University of Washington, Computer Science & Engineering (UW CSE)
      As an affiliate faculty member of UW CSE, I serve as a liaison between the department and industry, ensuring that Cray and UW are mutually aware of relevant activities with each other, and being available to provide an external perspective for the department. In this role, I serve on students' generals and thesis committees, teach the occasional class for the department, attend seminars and the department's annual industrial affiliates meeting when possible, and generally help enable communication between the department and 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 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 the 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
    Journal Articles
    Refereed Conference and Workshop Publications

      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 1st International Workshop on Software Engineering for High Performance Computing System Applications (HIPS 2004), pages 52–60, May 2004.

      An Application Kernel Matrix for Studying the Productivity of Parallel Programming. Bradford L. Chamberlain, John Feo, John Lewis, and David Mizell. In Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing System Applications (HIPS 2004), pages 37–41, 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), pages 42–51, April 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.

    Technical Reports

      LULESH Programming Model and Performance Ports Overview. Ian Karlin, Abhinav Bhatele, Brad Chamberlain, Jonathan Cohen, et al. LLNL-TR-608824, December 2012.

      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.

      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.

      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.

    Miscellaneous Technical Papers, Posters, and Articles

      Language Specification: Chapel Language Specification. Chapel Team, Cray Inc., (various versions, 2003-present).

      Blog Article: Chapel Springs into a Summer of Code. Cray Blog, April 2016.

      Blog Series: Six Ways to Say "Hello" in Chapel, parts 1, 2, and 3). Cray Blog, September-October 2016.

      Blog Article: Chapel Users `CHIUW' Their Way Through Portland, Cray Blog, June 2015.

      Blog Article: Chapel at SC14: Making Big Easy. Cray Blog, November 2014.

      Blog Series: Why Chapel? (parts 1, 2, and 3). Cray Blog, June-October 2014.

      Blog Article: Chapel Parallel Iterators: Giving Programmers Productivity with Control. Cray Blog, September 2013.

      Blog Article: Chapel: Productive Parallel Programming. Cray Blog (most-read Cray blog article as of November 2014), May 2013.

      Paper: 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 (CUG) 2013, May 2013.

      Blog Series: Myths About Scalable Parallel Programming Languages. IEEE Technical Committee on Scalable Computing Blog

      Project Report: Composite Parallelism: Creating Interoperability Between PGAS Languages, HPCS Languages, and Message Passing Libraries, Thomas Epperly, Adrian Prantl, Bradford Chamberlain. LLNL Project Report, September 2011.

      Paper: 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.

      Paper: 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.

      Paper: Five Powerful Chapel Idioms. Steven J. Deitz, Sung-Eun Choi, David Iten. Cray Users Group (CUG), May 2010.

      Technical Report: HPC Challenge Benchmarks in Chapel, Bradford L. Chamberlain, Sung-Eun Choi, Steven J. Deitz, David Iten. HPC Challenge BOF, SC09, November 2009.

      Paper: HPCC STREAM and RA in Chapel: Performance and Potential. Steven J. Deitz, Bradford L. Chamberlain, Samuel Figueroa, David Iten. Cray Users Group (CUG), May 2009.

      Interview: Closing the Parallelism Gap with the Chapel Language. HPCwire, November 2008.

      Report: Chapel: Productive Parallel Programming at Scale. Bradford L. Chamberlain. Google Seattle Conference on Scalability, June 14, 2008.

      Position Paper: Multiresolution Languages for Portable yet Efficient Parallel Programming. Bradford L. Chamberlain. written in response to DARPA RFI 08-03, October, 2007.

      Paper: 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 (CUG), May 2007.

      Paper: 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 (CUG), May 2006.

      Poster: P-Independent Parallel Programming in ZPL. Steven Deitz, Bradford Chamberlain, and Lawrence Snyder. SC05, November 2005.

      Poster: Iterators in Chapel. Mackale Joyner, Brad Chamberlain, and Steve Deitz. Los Alamos Computer Science Institute (LACSI), October 2005.

      Article: Tired of MPI? The ZPL Language. Bradford L. Chamberlain, Sung-Eun Choi, Steven Deitz, and Lawrence Snyder. ClusterWorld, February 2005.

      White Paper: The Role of Language Support in Improving Time to Solution. Lawrence Snyder and Bradford Chamberlain. High-End Computing Revitalization Task Force (HECRTF), May 2003.

      White Paper: Revitalization of Programming for High-End Computing. David Callahan and Bradford Chamberlain. High-End Computing Revitalization Task Force (HECRTF), May 2003.

      Articles for the Arctic Region Supercomputer Center's HPC/Cray T3E Users' Group Newsletter:

      • "I/O Algorithms on Cray T3E," Issue 214, February 2001.
      • "Comparison of Languages for Multi-Grid Methods," Issues 188189, February 2000.
      • "MPI Message Tags on Yukon," Issue 161, January 1999.
      • "ZPL: New Parallel Language Available," Issue 122, July 1997.

      Poster: "A Region-based Approach for Sparse Parallel Computing" At 9th International Workshop on Languages and Compilers for Parallel Computing, University of California San Diego, August 1996.

   
Selected Invited Talks (most of which are archived at chapel.cray.com)
 
April 2017
    HPC Programmers Deserve Nice Things Too, ISC 2016 Panel: Parallel Programming
June 2016
    Lessons Learned in Array Programming, ARRAY 2016 keynote
June 2016
    Five Things You Should Do to Create a Future-Proof Exascale Language, PGAS 2015 invited talk
September 2015
    Reflections on Programming Environments and Productivity, ASCR Exascale Computing Systems Productivity Workshop, Gaithersburg, MD
June 2014
    Three Language Concepts for Taming Data Locality, PADAL Workshop 2014, Lugano, Switzerland
April 2014
    Chapel, Life, the Universe, (SICM)**2 Parallel Computing Workshop, Manhattan, NY
March 2014
    Chapel: The Design and Implementation of a Multiresolution Language, Keynotes on HPC Languages, Lyon, France
June 2013
    Chapel: Parallel Programmability from Desktops to Supercomputers, University of Bergen, Bergen, Norway
April 2013
    State of the Chapel Union: HPCS Reflections and Musings about the Future, PGAS 2012, Santa Barbara, CA
October 2012
    Chapel Support for Heterogeneous Architectures via Hierarchical Locales, PGAS-X 2012, Santa Barbara, CA
October 2012
    Exascale: Your Opportunity to Create a Decent HPC Language, Parallel Programming Models For Exascale workshop, Portland, OR
August 2012
    Chapel: Multiresolution Parallel Programming, AMD Fusion Developer Summit, Bellevue, WA
June 2012
February 2012
    Chapel: Parallel Programmability for HPC (and your desktop too!), University of Washington, Seattle, WA
January 2012
November 2011
June 2011
May 2011
    Data-Oriented Programming Models: Yielding Some Control in a Community of Control Freaks, Salishan Conference on High-Speed Computing, Salishan, OR
April 2011
October 2010
May 2010
February 2010
February 2010
November 2009
    A variety of Chapel technical overview talks at ATPESC (2016, 2015, 2014, 2013), PNWPLSE (2016), 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.
October 2000
March 2000
   
Tutorials
    A Computation-Driven Introduction to Parallel Programming in Chapel, refereed tutorial, SC14 (New Orleans, LA); 3 hours.
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; 4 hours lecture + 2 hours hands-on.
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; 4 hours lecture + 2 hours hands-on; ~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; 4-1/2 hours lecture + 1-1/2 hours hands-on; ~60 attendees.
November 2008
   
Service  
    Organizing Committee Member, PAW (2017, 2016)
    Program Chair, CHIUW (2017, 2016, 2015, 2014)
    Track Chair, SC12, Programming Systems technical papers (inaugural edition of this track)
    Journal Referee/External Reviewer
    • Journal of Parallel Computing (ParCo) (2016, 2015, 2013)
    • ACM Computing Surveys (CSUR) (2015, 2014)
    • ICS (2014, 200?)
    • ACM Transactions on Parallel Computing (TOPC) (2014)
    • Journal of Parallel and Distributed Computing (JPDC) (2013, 2008)
    • Concurrency and Computation: Practice and Experience (CPE) (2013)
    • USENIX ATC (2012)
    • IJHPCA (2011)
    • PPoPP (2011)
    • OOPSLA (2009)
    • HPCC (2009)
    • SC (2007)
    • IPDPS (2007)
    • TOPLAS (2007, 2006, 2004)
    • IPPS/SPDP (1998)
    • PaCT
    • IEEE TVCG
    Thesis Committee Member
    • Weifeng Liu (PhD, University of Copenhagen, 2016)
    • Joshua Milthorpe (PhD, Australian National University, 2015)
    • John Koenig (MS, U Minnesota, 2013)
    • Albert Sidelnik (PhD, UIUC, 2009-2013)
    • Raphael 'kena' Poss (PhD, University of Amsterdam, 2012)
    • Robert Bocchino (PhD, UIUC, 2007-2010)
    • Benjamin Ylvisaker (PhD, UW, 2007-2010)
    • Karthik Murthy (MS, UT Austin, 2009)
March 2004 – March 2016
    Co-advisor, Steven Deitz (UW, 2000-2003), Maria Gullickson (UW, 2000-2001)
1996–1997
1996–1997
July 1993 – November 1996
1995–1996
1994–1995
   
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 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 XE/XK/XC 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: Experienced C/C++ programmer. Experience with Co-Array Fortran (CAF), Unified Parallel C (UPC), High Performance Fortran (HPF), and Titanium. Experience with Java, Fortran 90, Perl, System C, ML, High Performance Fortran, Co-Array Fortran, Single Assignment C, Pascal, Lisp, Scheme, Smalltalk, and Prolog.
    Platforms: Extensive experience with desktop UNIX, Mac OS X, and Windows-based machines, as well as numerous parallel systems: Cray XC/XE/XK/XT, CS, CX1, XMT/MTA, X1, T3D/T3E, IBM Power6/Power5, SP, SGI Origin, Sun Enterprise, high-performance Linux clusters, Intel Paragon, KSR-2, BBN GP1000, and iPSC/2.
    Libraries: Experienced user of the MPI, PVM, GASNet, SHMEM, and NX parallel libraries.
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.