This repo contains workshop material like Jupyter notebooks and input files used for the SXS workshop at ICERM. It should be cloned on Oscar, the cluster at Brown which we will be using. To access Oscar, see the instructions below.
The documentation for Oscar can be found here. These docs are quite good, so if there's anything missing from this README about how to do something on Oscar, you can refer here. Or you can also ask any organizer/TA for help.
You should already have an account on the cluster. At the beginning of the workshop you should have received an email from Brown/ICERM with details about a Brown account. This should have your username and password. These will be the username and password you use for everything below.
Brown requires 2FA for all its accounts. To setup 2FA, go to your brown account, log in with your credentials, and follow the instructions there.
There are two networks you can use. The guest wifi requires no authentication. To use the Brown network, you'll have to log in with your Brown username and password. Access to the Brown network will be required if you want to use ssh keys to access Oscar, or if you want to use VSCode to access Oscar.
To access oscar, simply do
You'll be prompted for you password, and then for 2FA.
Using ssh keys is not required for the workshop. Though it can make accessing Oscar easier so you don't have to type your password in every time.
⚠️ You can only use ssh keys to access thesshcampus.ccv.brown.edu
domain. And you can only access thesshcampus.ccv.brown.edu
domain from the Brown network. Ssh keys will not work for thessh.ccv.brown.edu
domain or on the guest wifi.
If you don't already have an ssh key, the GitHub docs are very easy to follow.
We need to copy our key to Oscar
ssh-copy-id -i ~/.ssh/id_ed25519 [email protected]
You should be prompted for a password and 2FA. After this, you should be able to access Oscar without entering a password
You cannot log in to Oscar with VSCode through either of the above domains
(sshcampus.ccv.brown.edu
or ssh.ccv.brown.edu
). You also cannot use VSCode
to access Oscar on the guest wifi. You have to be on the Brown network.
You will need to add the following to your ~/.ssh/config
file
Host oscar-vscode
HostName vscode1
User USERNAME
ProxyJump oscar-jump
Host oscar-jump
HostName poodcit4.services.brown.edu
User USERNAME
replacing the username with your own. Then with the
remote ssh
extension
, find the oscar-vscode
host, and connect with that. If you set up
ssh keys, then you won't be prompted for a password. If you didn't
set them up, you'll have to enter your password and 2FA.
Once you have access to Oscar, clone this repo
git clone https://github.com/sxs-collaboration/sxscon-2024-tutorials.git $HOME/sxscon-2024-tutorials
Oscar offers a convenient command for getting an interactive compute node
For Jupyter and paraview, use
interact -f cascade -n 2 -t 01:00:00
For building SpECTRE use
interact -f cascade -n 8 -m 16G -t 01:00:00
The -n
means number of cores, -t
time limit. You can optionally also
specify the amount of memory with -m 10G
. This will give you 10GB of
memory.
For building SpECTRE, you probably want to use 8 cores and 16G of memory. For the Jupyter and ParaView servers, you can get away with 2 cores and the default amount of memory.
-
Download SpECTRE:
git clone https://github.com/sxs-collaboration/spectre.git $HOME/spectre
-
Configure your environment on Oscar:
echo 'export SPECTRE_HOME=$HOME/spectre' >> ~/.bashrc echo 'export SPECTRE_BUILD=$HOME/spectre/build' >> ~/.bashrc echo 'export PATH=$SPECTRE_BUILD/bin:$PATH' >> ~/.bashrc echo 'source $SPECTRE_HOME/support/Environments/oscar.sh' >> ~/.bashrc source ~/.bashrc
(You'll want to do the next steps on a compute node).
-
Load the SpECTRE modules:
spectre_load_modules
To make sure things loaded correctly run
module list
. You should see modules likespectre-deps/oscar-2024-07
andspec-exporter/spec-2024-07
loaded. -
Configure the SpECTRE build directory:
mkdir -p $SPECTRE_BUILD cd $SPECTRE_BUILD spectre_run_cmake
-
Now you can compile the code (on a compute node, 8 cores, 16G memory). Compile the command-line interface (
cli
), the binary black hole executables (bbh
), and several additional executables that we'll use in the tutorials:cd $SPECTRE_BUILD make -j8 cli make -j8 bbh make -j8 EvolveBurgers EvolveNewtonianEuler1D EvolveScalarWave1D
Things should compile quite quickly because we've set up a cache on Oscar. You can check the cache hit rate with
ccache -s
.
Just run:
spectre_load_modules
Then you can compile and run the code, open Jupyter notebooks, etc.
If you run into issues, please ask a TA. Unfortunately with shared file systems on clusters issues do arise. An easy thing to try when you run into issues is to wipe the build directory and recompile:
-
Delete the build directory (make sure you don't have any files in the build directory that you want to keep):
rm -rf $SPECTRE_BUILD
-
Go to step 4. above to reconfigure the build directory.
See OpenOnDeman for an alternative method.
You have to run Jupyter notebooks/lab on a compute node since they can sometimes have a lot of computation.
We offer a convenience bash script to help setup the Jupyter server. On the compute node
cd $HOME/sxscon-2024-tutorials
./jupyter_setup.sh $SPECTRE_BUILD
After this, you'll need to open a new ssh connection in a separate terminal. This script prints instructions on how to do this, and then how to open the server in a local browser. You can also open the URL in VSCode if it is connected to Oscar.
See OpenOnDeman for an alternative method. (Note you'll) have to install your own paraview 5.11.2 on the interactive node since the system installed one doesn't have GUI capabilities
Unfortunately paraview is very strict when trying to do remote rendering about the local and remote versions of the code being identical. This means you'll need to download a specific version of paraview for this workshop, even if you already have a different version installed.
You specifically need version 5.11.2 (https://www.paraview.org/download/).
If you are on linux, you can download it with
wget https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.11&type=binary&os=Linux&downloadFile=ParaView-5.11.2-MPI-Linux-Python3.9-x86_64.tar.gz
tar -xzf Paraview-5.11.2*
On macOS, choose the correct arch for your laptop (arm vs x86). The new M(1/2/3) macs need arm. Older macs use x86.
Similar to running a jupyter server, paraview needs to be run on a compute node as well.
We also offer a convenience bash script to help set this up
./paraview_setup.sh
If the port you were assigned is busy, you can rerun the script or pass a specific port to the script. The output of the script will also tell you what to run on your local machine to connect your local paraview to the server (it'll also be a new ssh connection). There are different commands to run depending whether you are on linux or macOS.
You can also access oscar using OpenOnDemand . This may be useful if you're having issues accessing the cluster. It runs on a compute node and opens a GUI locally so you don't have to deal with port forwarding. Just be sure to grab enough resources if you need to build SpECTRE.
Log in to here with your Brown credentials. Then click the 'Desktop' button. There will be a dropdown for how many resources to use. Choose whichever you like. Wait a few seconds, then click the 'Launch' button. If your internet connection is good, you can decrease the compression and increase the image quality. Then you should be dropped into a nice GUI! You can open a terminal and do everything from there without worrying about port forwarding.
Note that for both Jupyter and Paraview, you don't need to run the _setup.sh
scripts anymore. You can just run
$SPECTRE_BUILD/bin/python-spectre -m jupyterlab
or wherever you installed paraview (wget https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.11&type=binary&os=Linux&downloadFile=ParaView-5.11.2-MPI-Linux-Python3.9-x86_64.tar.gz
and untar it)
./bin/paraview