Systems

Configuring Your Own Computer

For parts of this class, you will get to use your own laptop.

If you use MacOS, will need to have the XCode Command Line Tools installed. You do not need to install XCode. The XCode Command Line Tools can be installed independently.

If you use Windows, you will need Windows Subsystem for Linux v2. PowerShell and the Windows Command Line will not work.

You will also need Python 3.12+ or higher. The current MacOS ships with Python 3.9, so you will need to install Python yourself. No matter what operating system you use, we strongly recommend using uv to install and manage Python. It is the modern standard Python package manager.

Running Notebooks

We recommend starting notebooks with juv, which allows Jupyter notebooks to use uv-managed environments. Install juv after you install uv:

uv tool install juv

You can then start a notebook with:

uvx juv run notebook_name.ipynb

You may encounter cells “vanishing” when you use Jupyter. This seems to be a bug in recent versions. To fix the bug, select Setting editor from the Settings menu and set the “Windowing mode” to “defer”, as illustrated in this screenshot.

Create an ACCESS account

For this class, we will use GPUs hosted at the National Center for Supercomputing Applications, sponsored by the National Science Foundation’s Advanced Cyberinfrastructure Coordination Ecosystem: Services & Support (ACCESS) program.

You should immediately register for an ACCESS account. You must register with your Northeastern account. To do so, select register with an *Register with an existing identity on that page. On the next page, under Select an Identity Provider, select Northeastern University from the list.

When you complete registration, you will be assigned an ACCESS username. Add your username to this spreadsheet (TODO: create sheet.). After you get an ACCESS account, we can request an NCSA Delta account on your behalf. That process takes 3-4 days to complete.

Using NCSA Delta

Complete Create an ACCESS account before you continue.

We are using the NCSA Delta cluster, and there is a lengthy usage guide.

Terminal Login

The “right way” to run a long task, such as fine-tuning is to use the sbatch command, which is described here. I also recommend getting familiar with the terminal and tools such as vim and tmux.

However, the easiest way to get started is with JupyterLab, which is described below.

Using JupyterLab

Delta has a JupyterLab interface. It will be make it a lot easier to debug problems that you will inevitably encounter the first time you try to fine-tune models.

When you create a Jupyter notebook, make sure you select:

  • bchk-delta-gpu as the name of the account
  • A partition with GPUs. I recommend gpuA40x4
  • A Duration of job that seems reasonable. E.g., 1-2 hours.
  • Sufficient CPU (e.g., 8) and RAM (48GB). The more CPU/RAM you select, the longer you may need to wait for the job to start.
  • The number of GPUs should be 1, unless you are actually experimenting with multi-GPU training.
  • The working directory should be /scratch/bchk/<USERNAME>.

One-Time Setup

Your disk space in your home directory is limited, but you have more space on /scratch/bchk/<USERNAME>. You can setup models and an environment yourself.

But, I recommend using the environment we have set up for you and the models that we have already installed.

Start a Jupyter session and from the terminal run the following:

source /scratch/bchk/aguha/venv/bin/activate
python -m ipykernel install --user --name=shared-bchk-venv

The first line activates a Python virtual environment that has everything needed to fine-tune recent models. The second line adds the virtual environment to your Jupyter session.

The next time you create a new notebook in JupyterLab (i.e., the blue + icon on the top-left), you will see an option called shared-bchk-venv. The very first time, it may take up to 5 minutes to appear, but it will appear immediatly thereafter.