From 340b3375f208a291a8f26bdfaf60f4fefa66f4df Mon Sep 17 00:00:00 2001 From: matthewjreynolds Date: Tue, 6 Jan 2026 17:11:15 -0700 Subject: [PATCH] Revise README to reduced benchmark size Updated README to remove most of the tests and cut down on Sienna background information --- Sienna-Ops/README.md | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/Sienna-Ops/README.md b/Sienna-Ops/README.md index 17ed134..c96e522 100644 --- a/Sienna-Ops/README.md +++ b/Sienna-Ops/README.md @@ -4,26 +4,20 @@ ## Purpose and Description - The Sienna framework is an open-source ecosystem for simulation and optimization of modern energy systems. It is designed to model, solve, and analyze scheduling problems and dynamic simulations of quasi-static infrastructure systems. -- Sienna consists of three main modules: - - **Sienna\Data**: Supports efficient intake and use of energy systems input data, including multiple file formats, time series representations, and unit system conversions. - - **Sienna\Ops**: Enables simulation of system scheduling, including unit commitment, economic dispatch, automatic generation control, and nonlinear optimal power flow. - - **Sienna\Dyn**: Simulates power system dynamic responses to perturbations, including phasor simulations, electromagnetic transients, and small-signal stability. +- Sienna consists of three main modules: **Sienna\Data**, **Sienna\Dyn**, and **Sienna\Ops**. This benchmark will focus on exercising **Sienna\Ops**, which enables simulation of system scheduling, including unit commitment, economic dispatch, automatic generation control, and nonlinear optimal power flow. - The framework applies advanced computer science, visualization, applied mathematics, and computational science to create a flexible modeling environment for energy systems. Users running this benchmark will be interacting primarily with `PowerSystems.jl` and `PowerSimulations.jl` packages from the Sienna framework. `PowerSystem.jl` is the package that is used for creating and storing the power system that is being modeled. It stores the system as a JSON file and uses an H5 file to store timeseries data. -`PowerSimulations.jl` uses the `sys.json` created and loaded into the memory by PowerSystems.jl to create a simulation model and solve it using an MILP or NLP solver such as HiGHS, IPOPT, or Xpress Optimizer. +`PowerSimulations.jl` uses the `sys.json` created and loaded into the memory by PowerSystems.jl to create a simulation model and solve it using an MILP or NLP solver such as HiGHS or IPOPT, respectively. ## Licensing Requirements Sienna is open-source software. Licensing details for its components can be found on the [Sienna GitHub repository](https://github.com/NREL-Sienna). -One of the benchmarks, `medium/run_CATS.jl` relies on Xpress Optimizer which is a commercial solver that will require a license to solve. The benchmarker may chose to substitute Xpress with any other MILP optimizer of their choice, e.g., Gurobi. We should note that the optimization problem may not converge with the open source HiGHS solver. - ## Other Requirements -- Sienna requires Julia as the primary programming language and depends on several Julia packages, including `PowerSimulations.jl` and `PowerSystems.jl`. -- For large-scale simulations, an appropriate optimization solver (e.g., JuMP-compatible solvers) is required. +Sienna requires Julia as the primary programming language and depends on several Julia packages, including `PowerSimulations.jl` and `PowerSystems.jl`. ## How to build and Run @@ -61,12 +55,8 @@ README.md, run 5. Run the benchmarks as follows ```shell - julia --threads=auto --project=. small/run_RTS_UC.jl julia --threads=auto --project=. small/run_RTS_UC-ED.jl - julia --project=. small/run_parallel_simulation.jl - julia --threads=auto --project=. small/run_ACTIVSg200_ED.jl julia --threads=auto --project=. medium/run_CATS.jl - julia --threads=auto --project=. medium/run_EST_UC.jl ``` ### Option 3: @@ -84,14 +74,12 @@ README.md, run - The benchmarks include: - Unit Commitment and Economic Dispatch simulations using `PowerSimulations.jl`. -- The input data for these simulations is compatible with `PowerSystems.jl < v5.0`. The systems will have to be recreated for `PowerSystems v5.0` +- The input data for these simulations is compatible with `PowerSystems v5.0`. ## Run Rules -At the very least, - - The Benchmarks are single node only and must be run sequentially so as to not fight for resources. -- GPU-compatible Optimizers that are compatible with Julia JuMP may be exercised on GPU nodes. +- GPU-compatible Optimizers that are compatible with Julia JuMP may be exercised on GPU nodes if desired. However, this is not a requirement. ## Benchmark test results to report and files to return