Meeting notes (2020-10-06)
Logistics (5 minutes)
- Project 1 is on CMS!
- This week
- Buddy check-in / mid-term evaluation
- Small MPI demos
- Getting set up on Graphite
Hello, Graphite (20 minutes)
You should all now have accounts on the CS Graphite cluster. The cluster includes both CPU and GPU nodes. If you already had Graphite access, you are keeping your own space; if not, a home directory has been created for you.
We will be using the cs5220
partition (the totient
nodes) for CPU
programming, and have a cs5220-gpu
partition set up with a node with
four NVidia 1080Ti GPUs. CUDA 10.1 is the default in /usr/local/cuda
.
We will start on the CPU nodes; we will be doing something with the
GPUs later in the semester.
To access the cluster, you must be on the campus network (physically
or via the CU VPN). You will access
the cluster by logging into graphite-login.coecis.cornell.edu
via
SSH using your Cornell NetID and password. The login node can be used
for compilation and light editing, but it is not intended to run big
computational jobs. To run computational jobs, you should submit them
to the SLURM workload
manager by creating a
submission script and queueing it with the sbatch
command. In the
meeting, we walked through two submission scripts: one for a “hello
world” example in
demos/graphite-hello
,
and one for an MPI ping-pong test example in
demos/ping
.
I recommend that you make sure you can log into Graphite and run the
“hello world” program(s). Note that in order to compile
the C version of the “hello world” program, you will need to first
load the OpenMPI module (module load openmpi-4.0.0
).
“Pair” programming a wave simulation (50 minutes)
After the introduction to Graphite, we sketched the numerical method
introduced last week
for solving the 1D wave equation.
We then walked through a serial C driver code
for running the time stepper (getopt
-based argument parsing added
after the meeting). We will pick up with MPI-based parallelization
next time.