This is a sample code accompanying SHARCNET General Interest Seminars entitled: Remote Development on HPC Clusters with VSCode. You can find recorded versions of the talks on the SHARCNET YouTube channel:
- Visual Studio Code (VSCode) on the system that you work on it along with the following extensions:
- C/C++ Extension Pack
- Python
- Jupyter
- Pylance (optional dependency)
- Visual Studio IntelliCode (optional)
- Nsight Visual Studio Code Edition
- Makefile Tools (optional)
- GitHub Pull Requests and Issues (optional)
- GitLens (optional)
And the followings on the platform(s) that you want to do either local or remote development:
For remote development on the
Digital Research Alliance of Canada (the Alliance)
clusters, the following module
command will do the trick but often you have to add it at the end of your ~/.bashrc
file:
module load cmake cuda scipy-stack/2022a ipykernel
- C++ compiler supporting the
C++14
standard (e.g.gcc
9.3) - Python 3
- Git for Linux
- CMake 3.18 or higher for Linux
- An MPI implementation (e.g.
OpenMPI
orMPICH
) - CUDA toolkit for Linux
- Visual Studio Community Edition with
C++
andPython
support - Git for Windows
- CMake 3.18 or higher for Windows
- Windows Terminal or Windows Terminal Preview
- MS-MPI (both
msmpisetup.exe
andmsmpisdk.msi
) - CUDA toolkit for Windows
On Windows systems, if you want to do both local development on Windows and remote development on WSL2, you have to first install the NVIDIA drivers for WSL with CUDA and DirectML support on Windows and then follow these instructions in order to install CUDA toolkit
on WSL2.
- C++ compiler supporting the
C++14
standard (e.g.clang
3.4) - Python 3
- Git for macOS
- CMake 3.18 or higher for macOS
- An MPI implementation (e.g.
OpenMPI
orMPICH
) - CUDA toolkit for macOS
Just run VSCode on the system that you work on it and then select Clone Git Repository...
from Get Started
page or type git: clone
in the command palette (Ctrl+Shift+p or F1). Then paste https://github.com/sharcnet/vscode-hpc.git
and hit Enter
.