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.
Example: High-Memory Simulation Manifest
Section titled “Example: High-Memory Simulation Manifest”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/v1kind: Jobmetadata: name: highmem-genome-assembly namespace: my-projectspec: 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-pvcOpenMP & Thread Pinning
Section titled “OpenMP & Thread Pinning”When running multi-threaded scientific binaries, ensure OpenMP threads match your requested CPU limits:
export OMP_NUM_THREADS=${OMP_NUM_THREADS:-$(nproc)}export MKL_NUM_THREADS=$OMP_NUM_THREADS