Research Computing Workshops @ Simon Fraser University

Event Information

Share this event

Date and Time



Simon Fraser University

Applied Science Building

Burnaby, British Columbia V5A 1S6


View Map

Event description


This free workshop series, hosted by Simon Fraser University (SFU) and WestGrid, will provide hands-on introductions to essential tools and skills used in computational research.

Researchers in all disciplines are invited to participate. No prior experience is required for any of the topics being covered.

You can attend single sessions or the entire series. There is no cost to attend but you must register online in advance.

These workshops are open to anyone -- researchers from other institutions and organizations outside of SFU are welcome to register.


All sessions will be held at SFU's Big Data Hub, in the Applied Sciences Building, in the Presentation Studio (ASB 10900). Each day will have a unique schedule. Please note that attendees will be responsible for their own lunch.

DAY 1 - Monday MARCH 02

  • 9am-12pm Bash Introduction

This session will be a hands-on introduction to the Linux command line and the interaction with a remote Linux server. We will review basic Linux commands, file management (edit, copy, remove and remote-transfer files), navigating the directories and the file system, remote access, Unix pipes, and bash scripting.

  • (12pm-1pm Lunch Break)

  • 1pm-4pm Advanced Bash and Introductory HPC

We will continue with bash scripting where we left off in the morning. We will do scripting, searching for things on the filesystem and inside files, functions. Then we'll jump to an introduction to High-Performance Computing (HPC) for those without any HPC experience. We will take a look at HPC cluster hardware and a quick description of the resources available on Compute Canada's national systems (Cedar, Graham, Béluga, Niagara). We will then study the basic tools and techniques for working on a cluster starting with the software environment and modules, the installed programming languages and compilers.

DAY 2 - Tuesday MARCH 03

  • 9am-12pm HPC Workflows

We will continue where we left off on Monday afternoon, with a quick introduction to various parallel programming frameworks, working with make and Makefiles, and installing software in your own directories. Next, we will discuss the Slurm job scheduler: why use it, fairshare and priority, submitting serial jobs and job arrays, submitting OpenMP / MPI / hybrid / GPU jobs, working inside interactive jobs, and tracking your job's memory usage. We will also take a quick look at working with Python and R on the clusters, as well as best practices in cluster workflows.

  • (12-1pm Lunch Break)

  • 1pm-4pm Julia Programming

"Why would I want to learn a new language? I already know R/python."

R and python are interpreted languages: the code is executed directly, without prior-compilation. This is extremely convenient: it is what allows you to run code in an interactive shell. The price to pay is low performance: R and python are simply not good at handling large amounts of data. To overcome this limitation, users often turn to C or C++ for the most computation-intensive parts of their analyses. These are compiled—and extremely efficient—languages. But the need to use multiple languages and the non-interactive nature of the compiled ones makes this approach tedious.

Julia uses just-in-time (JIT) compilation: the code is compiled at run time. This combines the interactive advantage of interpreted languages with the efficiency of compiled ones. Basically, it feels like running R or python, while it is almost as fast as C. This makes Julia particularly well suited for big data analyses, machine learning, or heavy modelling.

In addition, multiple dispatch (generic functions with multiple methods depending on the types of all the arguments) is at the very core of Julia. This is extremly convenient, cutting on conditionals and repetitions, and allowing for easy extensibility without having to rewrite code.

Finally, Julia shines by its extremely clean and concise syntax. This last feature makes it easy to learn and really enjoyable to use.

In this workshop, which does not require any prior experience in Julia (experience in another language—e.g. R or python—would be best), we will go over the basics of Julia's syntax and package system; then we will push the performance aspect further by looking at how Julia can make use of the cluster for large scale parallel computing.

Mid-week break:
No in-person workshops on Wednesday March 04, but you can tune into our live webinar "High-performance research computing with Julia".

DAY 3 - Thursday MARCH 05

  • 8:00am-11:00am Parallel Programming in Chapel (Part 1)

This course is a general introduction to the main concepts of parallel programming, using Chapel programming language to illustrate the basic concepts and ideas. Chapel is a relatively new language for both shared- and distributed-memory programming, with easy-to-use, high-level abstractions for both task and data parallelism that make it ideal for learning parallel programming for a novice HPC user. Chapel is incredibly intuitive, striving to merge the ease-of-use of Python and the performance of traditional compiled languages such as C and Fortran. Parallel constructs that typically take tens of lines of MPI code can be expressed in only a few lines of Chapel code. Chapel is open source and can run on any Unix-like operating system, with hardware support from laptops to large HPC systems.

  • (11:00am-11:30am Short Break)

  • 11:30am-2:30pm Parallel Programming in Chapel (Part 2)

We will continue where we left off in the morning.

DAY 4 - Friday MARCH 06

  • 8:00am-12:30pm: 3D Scientific Visualization

We will start with a brief introduction to scientific visualization and will spend the first hour doing simple 1D/2D/3D plotting using open-source Python library. The rest of the day we will study 3D scientific visualization with ParaView, an open-source, general-purpose, multi-platform data analysis and visualization tool designed to run on a variety of hardware from an individual laptop to large supercomputers. With ParaView users can interactively visualize 2D and 3D data sets defined on structured, adaptive and unstructured meshes or particles, animate these datasets in time, and manipulate them with a variety of filters. ParaView supports both interactive (GUI) and scripted (including offscreen) visualization, and is an easy and fun tool to learn.


If you have any questions about the course content or the workshops in general, please email Alex Razoumov -

Share with friends

Date and Time


Simon Fraser University

Applied Science Building

Burnaby, British Columbia V5A 1S6


View Map

Save This Event

Event Saved