Skip to content

Datasets

Datasets allow jobs to access shared data stored on the HPC system.

Datasets are stored on the CARES NAS and mounted automatically to a given worker then into containers when requested by a job.

Dataset Storage

Datasets are stored on the shared CARES NAS under the datasets folder:

/cares-nas/datasets/<dataset_name>

Each user is responsible for:

  • Uploading their own datasets
  • Organising their dataset folders
  • Updating dataset contents
  • Removing unused datasets

The HPC administrators maintain the infrastructure but do not manage individual research datasets.

Contact the HPC administrators only if:

  • You need access to the NAS
  • You require additional storage
  • You encounter permissions issues
  • A dataset is unavailable due to a system issue
  • Private Data that can't be stored on the public NAS

Dataset Permissions

Please avoid modifying datasets belonging to other users or projects.

Do not delete or modify datasets that you do not own.

Datasets are shared resources and should be treated with care.

Private or Sensitive Data

If you have sensitive data that cannot be shared, do not upload it to the CARES NAS.

Speak with the HPC administrators about alternative storage options.

Creating a Dataset

Datasets are stored on the CARES NAS: http://130.216.238.2:5000/

The recommended approach is to mount the datasets share directly on your computer.

Once mounted, datasets can be copied using:

  • Drag and drop
  • File Explorer
  • Finder
  • cp
  • rsync

This is significantly more reliable than browser uploads for large datasets.

Linux

Create a mount point:

sudo mkdir -p /mnt/cares_datasets

Mount:

sudo mount -t cifs \
    //130.216.238.2/datasets \
    /mnt/cares_datasets \
    -o username=<username>

Verify:

ls /mnt/cares_datasets

Windows

Open:

\\130.216.238.2\datasets

in File Explorer.

Or map a network drive:

This PC
→ Map Network Drive
→ \\130.216.238.2\datasets

macOS

In Finder:

Go
→ Connect to Server

Enter:

smb://130.216.238.2/datasets

Authenticate using your HPC credentials.

Uploading a Dataset

Create a dataset directory:

datasets/
└── project_xyz

Copy files into that directory.

Example:

datasets/
└── project_xyz
    ├── train
    ├── test
    └── metadata.csv

The directory name becomes the dataset name.

Example:

{
  "required_datasets": ["project_xyz"]
}

Inside the container:

/workspace/datasets/project_xyz

Large Dataset Transfers

For large datasets, use rsync.

Example:

rsync -avh \
    ./project_xyz/ \
    /mnt/cares_datasets/project_xyz/

Advantages:

  • Resumes interrupted transfers
  • Transfers only changed files
  • Faster updates for large datasets

Using a Dataset

Datasets are requested by a job through the:

"required_datasets"

field in job.json.

Example:

{
  "job_name": "mnist_training",
  "image": "130.216.238.2:5500/mnist-training:latest",
  "max_runtime_hours": 4.0,
  "command": null,
  "required_datasets": ["mnist"],
  "required_worker_ids": []
}

Dataset Names

Datasets are referenced by the name of the folder on the CARES NAS dataset folder.

/nas/datasets/<dataset_name>

Example:

"required_datasets": [
    "mnist",
    "cifar10",
    "imagenet"
]

The scheduler automatically mounts the corresponding dataset directories into the container.

Name Mismatch

If the dataset name in job.json does not exactly match a dataset folder name on the CARES NAS, the job will fail before execution begins.

Accessing Datasets

Datasets appear inside the container at:

/workspace/datasets/<dataset_name>

Examples:

/workspace/datasets/mnist
/workspace/datasets/cifar10
/workspace/datasets/imagenet

Python example:

from pathlib import Path

dataset_root = Path("/workspace/datasets/mnist")

for file in dataset_root.iterdir():
    print(file)

File Structure

The internal structure of a dataset is preserved when mounted into the container.

For example, if the dataset on the CARES NAS has the structure:

mnist/
├── train
├── test
└── labels.csv

then inside the container it will appear as:

/workspace/datasets/mnist
├── train
├── test
└── labels.csv

Responsibility to Save Outputs

Datasets are read-only.

Your code needs to handle passing data to the output directory and ensuring important files are saved there. No output written outside this directory will be preserved after the job finishes.

Always save final outputs, checkpoints and results into:

/workspace/output
from pathlib import Path

dataset_root = Path("/workspace/datasets/mnist")
output_root = Path("/workspace/output")

output_root.mkdir(parents=True, exist_ok=True)

print(f"Reading data from: {dataset_root}")
print(f"Writing results to: {output_root}")

Read-Only Access

Datasets are mounted read-only.

Do not attempt to modify dataset contents.

Multiple Datasets

Multiple datasets can be requested.

Example:

{
  "required_datasets": [
    "mnist",
    "cifar10"
  ]
}

Inside the container:

/workspace/datasets/mnist
/workspace/datasets/cifar10

Read-Only Access

Datasets are mounted read-only.

You should treat datasets as immutable.

Do not:

  • modify files
  • rename files
  • delete files
  • create files inside dataset directories

Instead write outputs to:

/workspace/output

Dataset Availability

Only datasets that have been uploaded to the CARES NAS can be used.

If a requested dataset does not exist, the job will fail before execution begins.

Example:

"required_datasets": ["my_typo_dataset"]

If the dataset is unavailable, contact the HPC administrators.

Common Mistakes

Dataset Not Found

Check the dataset name in:

"required_datasets": ["dataset_name"]

Dataset names must exactly match the registered dataset name.

Permission Denied

Datasets are mounted read-only.

Save outputs into:

/workspace/output
Files Missing

Verify the dataset structure using:

from pathlib import Path

dataset_root = Path("/workspace/datasets/mnist")

for file in dataset_root.rglob("*"):
    print(file)

to inspect the mounted dataset contents.