mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-06 00:08:52 -06:00
Fix some multi-threading issues
Replace nthreads by maxthreadid and use :static scheduling to disable task migration. Fixes #56.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user