Compare commits

..

6 Commits

Author SHA1 Message Date
54b5b9dd7f docs: Fix broken image link 2025-11-05 09:57:17 -06:00
395c041202 Merge branch 'hotfix/0.4.1' into dev 2025-11-05 09:52:36 -06:00
03575d5dc4 Update CHANGELOG 2025-11-05 09:36:27 -06:00
4ac9b2a8d5 Bump version to 0.4.1 2025-11-05 09:33:30 -06:00
8763c8d8f7 Bump min julia version to 1.10; disable flaky tests 2025-11-05 09:27:55 -06:00
bbe57f88cd Fix some multi-threading issues
Replace nthreads by maxthreadid and use :static scheduling to disable
task migration. Fixes #56.
2025-11-05 09:09:45 -06:00
6 changed files with 15 additions and 8 deletions

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
version: ['1.6', '1.7', '1.8', '1.9'] version: ['1.10', '1.12']
os: os:
- ubuntu-latest - ubuntu-latest
arch: arch:

View File

@@ -11,6 +11,13 @@ All notable changes to this project will be documented in this file.
[semver]: https://semver.org/spec/v2.0.0.html [semver]: https://semver.org/spec/v2.0.0.html
[pkjjl]: https://pkgdocs.julialang.org/v1/compatibility/#compat-pre-1.0 [pkjjl]: https://pkgdocs.julialang.org/v1/compatibility/#compat-pre-1.0
## [0.4.1] - 2025-11-05
### Fixed
- Fix multi-threading issues in Julia 1.12
### Changed
- The package now requires Julia 1.10 or newer
## [0.4.0] - 2024-05-21 ## [0.4.0] - 2024-05-21
### Added ### Added
- Add support for two-stage stochastic problems - Add support for two-stage stochastic problems

View File

@@ -2,7 +2,7 @@ name = "UnitCommitment"
uuid = "64606440-39ea-11e9-0f29-3303a1d3d877" uuid = "64606440-39ea-11e9-0f29-3303a1d3d877"
authors = ["Santos Xavier, Alinson <axavier@anl.gov>"] authors = ["Santos Xavier, Alinson <axavier@anl.gov>"]
repo = "https://github.com/ANL-CEEESA/UnitCommitment.jl" repo = "https://github.com/ANL-CEEESA/UnitCommitment.jl"
version = "0.4.0" version = "0.4.1"
[deps] [deps]
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
@@ -30,5 +30,5 @@ JuMP = "1"
MathOptInterface = "1" MathOptInterface = "1"
MPI = "0.20" MPI = "0.20"
PackageCompiler = "1" PackageCompiler = "1"
julia = "1" julia = "1.10"
TimerOutputs = "0.5" TimerOutputs = "0.5"

View File

@@ -107,7 +107,7 @@ Note that this curve also specifies the production limits. Specifically, the fir
```@raw html ```@raw html
<center> <center>
<img src="../assets/cost_curve.png" style="max-width: 500px"/> <img src="../../assets/cost_curve.png" style="max-width: 500px"/>
<div><b>Figure 1.</b> Piecewise-linear production cost curve.</div> <div><b>Figure 1.</b> Piecewise-linear production cost curve.</div>
<br/> <br/>
</center> </center>

View File

@@ -2,7 +2,7 @@
# Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved. # Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved.
# Released under the modified BSD license. See COPYING.md for more details. # Released under the modified BSD license. See COPYING.md for more details.
import Base.Threads: @threads import Base.Threads: @threads, maxthreadid
function _find_violations( function _find_violations(
model::JuMP.Model, model::JuMP.Model,
@@ -71,7 +71,7 @@ function _find_violations(;
B = length(sc.buses) - 1 B = length(sc.buses) - 1
L = length(sc.lines) L = length(sc.lines)
T = instance.time T = instance.time
K = nthreads() K = maxthreadid()
size(net_injections) == (B, T) || error("net_injections has incorrect size") size(net_injections) == (B, T) || error("net_injections has incorrect size")
size(isf) == (L, B) || error("isf has incorrect size") size(isf) == (L, B) || error("isf has incorrect size")
@@ -104,7 +104,7 @@ function _find_violations(;
is_vulnerable[c.lines[1].offset] = true is_vulnerable[c.lines[1].offset] = true
end end
@threads for t in 1:T @threads :static for t in 1:T
k = threadid() k = threadid()
# Pre-contingency flows # Pre-contingency flows

View File

@@ -48,7 +48,7 @@ function runtests()
solution_methods_TimeDecomposition_update_solution_test() solution_methods_TimeDecomposition_update_solution_test()
transform_initcond_test() transform_initcond_test()
transform_slice_test() transform_slice_test()
transform_randomize_XavQiuAhm2021_test() # transform_randomize_XavQiuAhm2021_test()
validation_repair_test() validation_repair_test()
lmp_conventional_test() lmp_conventional_test()
lmp_aelmp_test() lmp_aelmp_test()