This is a staging copy of the PARASOL documentation, published for review before it goes live. Pages here may be unfinished, unreviewed or wrong, and they can change or disappear without notice.
This documentation is in draft and under active review. Figures for the Fall 2026 GPU reservation system are not yet published, and some pages describe behavior that has not been verified against a primary source. Confirm any figure with parasol@ucsd.edu before relying on it.
Use this page when you cannot sign in to
datahub.ucsd.edu, your course does not appear, or a
session will not start. Most of these failures have a self-service remedy.
Datahub sign-in is standard UCSD single sign-on. An account that cannot get past
the campus sign-in page has a campus credential problem, not a Datahub problem,
and the ITS Service Desk handles it.
Rosters are loaded into workspaces one business day before the start of the
term, and a TSS change, such as an add, a drop, or a section change, is
reflected in Datahub and PARASOL (formerly DSMLP) by 10am the day following the change. A course
that is not listed before those times has not been loaded yet. Report a course
that is still missing after that time to
parasol@ucsd.edu.
Students Enrolled in a Course
describes roster provisioning.
The instructor or TA is the first contact for a course matter. Course staff can
see the roster and can tell a student who is not yet enrolled from one who is
enrolled but not provisioned. Auditors, observers, and Extended Studies students
are not on the TSS roster that the automatic setup uses, and the instructor adds
them through Canvas. See
Students Enrolled in a Course.
No roster grants access for an independent study, a capstone, or a personal
project. Access for this work is obtained by request. See
Projects & Independent Study.
The account is signed in and an environment has been selected, but the
environment does not start. How long the failure takes to appear narrows down
the cause:
When the failure appears
Possible causes
Within moments of the start
A full disk quota, or a broken package in .local/lib
After a long wait
A busy cluster, or a slow download of the environment's image
A stale profile can also stop a session from starting. The manual resetter
clears it.
Packages under .local/lib/python3.x/site-packages load ahead of the packages
the image provides, and one incompatible package can stop a notebook from
starting. Move them aside from a terminal:
Move the packages aside from a terminal
ssh USERNAME@dsmlp-login.ucsd.edu
workspace --list # the workspaces available to the account
workspace -c COURSE_ID # enter the course workspace
mv .local/lib .local/lib.old # move the offending packages aside
Install packages into a virtual environment rather than into .local.
Customizing an Environment
describes installing packages.
On a busy cluster, a session can wait for CPU, memory, or a GPU until the start
fails. A GPU session started without a booking also waits for an on-demand
lease, which may not be granted in time. Start the session again later. See
When the Cluster Is Full.
A session cannot start until its environment's image is on the cluster. When
the image has to be downloaded in full, the start can fail before the download
finishes. A full download of the scipy-ml-notebook image can take about 20
minutes. Start the session again later.
The most common failure of such a link is a click before sign-in. The link needs
a signed-in session to redirect into. Without one, it fails in a way that
resembles a broken link.
A launch that reports an exceeded GPU quota indicates that a pod on the same
account already holds the requested GPU. The earlier pod is usually terminating
and clears within a minute or two. If it does not clear, delete it from the
login node:
Delete the earlier pod from the login node
ssh USERNAME@dsmlp-login.ucsd.edu
kubectl get pods
kubectl delete pod <pod-id>
Concurrent sessions are permitted, but their combined CPU, memory, and GPU must
fit within the Kubernetes limits on the namespace and, for GPUs, within the
reservation system's limits. A launch that would take the total past those
limits is refused. The remedy is to stop a session or job that is no longer in
use. No request is required.
Running Several Jobs at Once
describes running several jobs together.
A notebook that exhausts its memory or runs an infinite loop can take its pod
down. The hub then returns a 504 error until it detects the failure and resets.
To recover:
Delete the pod
Delete the pod with kubectl delete pod. This shortens the wait for the hub
to reset. See GPU Held by an Existing Pod.
A reservation app session ends after 8 hours without use, and 24 hours after
sign-in in any case. The app then returns to its login page with the notice
Your session has expired. Please sign in again. A booking that was being made
in the wizard is lost. Sign in again and start the booking again.
Log out everywhere ends the session on every device at once. Each other
device shows the same notice at its next request to the app, such as opening
another of the app's pages. The device where Log out everywhere was selected
returns to the login page with no notice.
When the app rejects a value sent from a form, the message names the field and
the problem, as field: problem. The app joins several problems with ;. For
example, a blank GPU Count in the New Reservation form on
Group Reservations gives gpu_count: Input should be a valid integer.
Correct the named field and try again.
Course access is retained for a period beyond the term the course ran in. See
One Additional Quarter.
After that period, the course no longer appears, and its absence is not a fault.
Files remain retrievable for a period afterward, and an extension can be
requested.
Retrieving Work Before Access Ends
describes copying files out.
Raise course matters with the instructor or TA first. For platform matters,
email parasol@ucsd.edu or file a ticket with the
ITS Service Desk. A report includes the following
details: