This is a project which is currently making use of HPC facilities at Newcastle University. It is active.
For further information about this project, please contact:
This project will use high-performance computing to run large-scale numerical optimization and benchmarking experiments for energy-system control problems. The work will compare different optimization strategies across multiple system sizes and prediction horizons, using reproducible benchmark cases and consistent computational settings. The main outputs will be solver logs, runtime statistics, memory-use records, summary tables, and plots for research analysis and publication preparation
The project requires Linux-based high-performance computing using Slurm batch jobs. The main workload will consist of offline numerical optimization and benchmarking jobs, submitted through the scheduler rather than run as long processes on login nodes.
The main software environment will be Python 3, using scientific Python packages such as NumPy, SciPy, Pandas and Matplotlib, together with custom research scripts for benchmark generation, optimization runs, and result processing. The work will use Gurobi Optimizer through its Python interface for mixed-integer optimization. I have already obtained an academic Gurobi licence and will use Gurobi under that licence, either through an available module or through a user-space installation if required. If available and licensed, MATLAB may also be used for secondary validation and comparison with existing numerical scripts.
The current primary workload is CPU- and memory-intensive rather than GPU-based. The main experiments require high-core-count CPU nodes. Each main benchmark job is expected to require at least 96 CPU cores. Larger solver runs may use 128-256 CPU cores on a single node, with approximately 512 GB to 1 TB RAM. The workload does not require low-latency multi-node MPI communication; the primary requirement is single-node CPU and memory capacity.
In later stages of the project, GPU resources may also be required for machine-learning components. These may include training large-scale neural networks to generate benchmark instances, learn surrogate models, predict solver behaviour, provide warm starts, or assist in the control and guidance of numerical optimization algorithms. Such work would use GPU-enabled Python frameworks such as PyTorch, TensorFlow or JAX, subject to availability on the system. These GPU jobs would also be submitted through Slurm, rather than run interactively on login nodes. Depending on model size and experiment scope, the future GPU workload may require one or more high-memory accelerator GPUs, together with sufficient CPU cores, system memory and local storage for data loading, model checkpoints and training logs.
The largest CPU optimization jobs may run for several hours, while smaller preparation, validation and post-processing jobs are expected to complete within minutes to tens of minutes. Future neural-network training jobs may also run for several hours or longer, depending on the size of the model and training dataset. No public-facing services will be run. The work does not process personal, sensitive, clinical or commercial data. Inputs are generated numerical benchmark parameters and simulation-derived datasets, and outputs are reproducible CSV logs, solver statistics, summary tables, plots, trained model checkpoints and training diagnostics.