Wiki
Clone wikiupcxx / events / SC23
SC23 Tutorial: Introduction to High-Performance Parallel Distributed Computing using Chapel, UPC++ and Coarray Fortran
The Pagoda project was pleased to present a half-day tutorial at the SC23 conference in November.
This tutorial introduces HPC distributed computing using three alternative parallel programming models: Chapel, UPC++, and Coarray Fortran.
The goal is to demonstrate basic concepts of distributed programming, highlight the benefits of each model and provide experience in running examples with each.
When: Sun Nov 12 2023 | 8:30am - 12pm MST
Where: At SC23 in Denver, CO, Room 407
- Now available for on-demand screening through Jan 2024! (tutorial registration required)
- Please also see our expanded version of this tutorial, presented in July 2023
Speakers
- Dr. Michelle Mills Strout
- Senior Engineering Manager at Hewlett Packard Enterprise
- Affiliate Faculty of Computer Science at University of Arizona
- Dr. Damian Rouson
- Computer Languages and Systems Software Group Lead at Lawrence Berkeley National Laboratory
- President of Archaeologic Inc. and Sourcery Institute
Abstract:
A majority of HPC system users utilize scripting languages such as Python to prototype their computations, coordinate their large executions, and analyze the data resulting from their computations. Python is great for these many uses, but it frequently falls short when significantly scaling up the amount of data and computation, as required to fully leverage HPC system resources. In this tutorial, we show how example computations such as heat diffusion, k-mer counting, file processing, and distributed maps can be written to efficiently leverage distributed computing resources in the Chapel, UPC++, and Fortran parallel programming models. The tutorial is targeted for users with little-to-no parallel programming experience, but everyone is welcome. A partial differential equation example will be demonstrated in all three programming models. That example and others will be provided to attendees in a virtual environment. Attendees will be shown how to compile and run these programming examples, and the virtual environment will remain available to attendees throughout the conference, along with Slack-based interactive tech support. Come join us to learn about some productive and performant parallel programming models!
Agenda and Slides
Time (MST) | Session slides |
---|---|
8:30 - 8:40 | Tutorial Introduction and Overview |
8:40 - 9:40 | Getting Started Using Chapel for Parallel Programming |
9:40 - 10:00 | Coarray Fortran Tutorial: Parallel Programming in Fortran 2018 (Part 1) |
10:00 - 10:30 | Coffee Break |
10:30 - 11:05 | Coarray Fortran Tutorial: Parallel Programming in Fortran 2018 (Part 2) |
11:05 - noon | UPC++: An Asynchronous RMA/RPC Library for Distributed C++ Applications |
Tutorial Resources
- START HERE Download tutorial code examples, using ONE of the following options:
- sc23.tar.gz (gzip-compressed tar archive)
curl -LO https://go.lbl.gov/sc23.tar.gz && tar xzf sc23.tar.gz
- sc23.zip (Zip archive)
- Clone using command-line git:
git clone https://bitbucket.org/berkeleylab/sc23.git
- Browsable online repository
- sc23.tar.gz (gzip-compressed tar archive)
- NEXT STEP Ensure you have a working install of Docker or another Docker-compatible client
- FINAL STEP Docker containers for each programming model:
- See usage instructions below for each model!
- Slack workspace for discussion and support
- Feel free to join and ask questions all week!
- Post-event survey
Chapel Resources
- Chapel Docker container usage instructions:
cd chapel/ # cd into chapel dir after unpacking the tutorial materials (see above) docker pull docker.io/chapel/chapel-gasnet # might take awhile! docker run --rm -it -v "$PWD":/myapp -w /myapp docker.io/chapel/chapel-gasnet /bin/bash make run-hello # inside container
- Chapel home page with documentation, downloads, presentations, papers, etc.
UPC++ Resources
- UPC++ Docker container usage instructions:
cd upcxx/ # cd into upcxxdir after unpacking the tutorial materials (see above) docker pull docker.io/upcxx/linux-amd64 # might take awhile! docker run --rm -it -v "$PWD":/myapp -w /myapp -u root docker.io/upcxx/linux-amd64 /bin/bash make run-hello-world # inside container
- UPC++ training page for several training-related resources including links to documentation and to videos of prior tutorials.
- UPC++ home page for UPC++ downloads, publications, etc.
Fortran Resources
- Fortran Docker container usage instructions:
cd fortran/ # cd into fortran dir after unpacking the tutorial materials (see above) docker pull docker.io/phhargrove/caf # might take awhile! docker run --rm -it -v "$PWD":/myapp -w /myapp docker.io/phhargrove/caf /bin/bash make run-hello # inside container
- Parallel Programming with Co-arrays by Robert Numrich.
- Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation) by Metcalf, Reid and Cohen.
- fortran-lang.org
- Fortran Discourse
Updated