Skip to content

CPU-Only & High-Memory Workloads

Not all scientific computations require GPUs. For high-memory genome assembly, chemistry simulations, or heavy data wrangling, Berkelium features high-core-count and large-memory worker nodes:

  • Large-Memory Compute Nodes: Up to 224 CPU cores and 1–2 TB DDR5 ECC RAM per node.
  • Standard High-Memory Nodes: 64+ CPU cores with 500+ GiB RAM and multi-terabyte local NVMe scratch per node.
  • General CPU Nodes: 64 CPU cores for general services, preprocessing, and data ingest.

Check the live Cluster Status page for current node inventory and real-time resource availability.


Specify CPU & Memory to Avoid Default LimitRange Throttling

If you omit resources.requests and resources.limits, the namespace default LimitRange will automatically assign fallback values (1 CPU limit, 100m CPU request, and 1Gi Memory). For CPU-intensive scientific simulations, this will severely throttle multi-threaded execution and cause immediate Out-Of-Memory (OOMKilled) termination if RAM exceeds 1Gi. Always define explicit resources!

apiVersion: batch/v1
kind: Job
metadata:
name: highmem-genome-assembly
namespace: my-project
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: assembler
image: biocontainers/spades:v3.15.5_cv1
command: ["spades.py", "-1", "/data/reads_R1.fq", "-2", "/data/reads_R2.fq", "-o", "/data/assembly", "-t", "32", "-m", "250"]
volumeMounts:
- name: dataset
mountPath: /data
resources:
requests:
cpu: "16"
memory: "128Gi"
limits:
cpu: "32"
memory: "256Gi"
volumes:
- name: dataset
persistentVolumeClaim:
claimName: lab-shared-data-pvc

When running multi-threaded scientific binaries, ensure OpenMP threads match your requested CPU limits:

Terminal window
export OMP_NUM_THREADS=${OMP_NUM_THREADS:-$(nproc)}
export MKL_NUM_THREADS=$OMP_NUM_THREADS