From bc76b4efbbea930d96d8b55aedca85ccdb2bf65a Mon Sep 17 00:00:00 2001 From: Stephan Hilb <stephan@ecshi.net> Date: Thu, 26 Nov 2020 14:51:58 +0100 Subject: [PATCH] disable coloring for parallel version --- src/dualtvdd.jl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/dualtvdd.jl b/src/dualtvdd.jl index bea9bf3..c501566 100644 --- a/src/dualtvdd.jl +++ b/src/dualtvdd.jl @@ -68,10 +68,11 @@ function init(alg::DualTVDDAlgorithm{<:DualTVL1ROFOpProblem}) # global dual variable p = zeros(p1type(eltype(g)), ax) # local dual variable - subp = [zeros(p1type(eltype(g)), sax) for sax in subax] + subp = [zeros(p1type(eltype(g)), length.(sax)) for sax in subax] # create subproblem contexts - cids = chessboard_coloring(size(subax)) + cids = alg.parallel ? [eachindex(subax)] : + chessboard_coloring(size(subax)) cons = Array{Connector, d}(undef, size(subax)) for (color, sidxs) in enumerate(cids) for (i, sidx) in enumerate(sidxs) @@ -117,7 +118,7 @@ function subworker(alg, subalg) subg = take!(con) subalg.problem.g .= subg # run algorithm - for _ in 1:1000 + for _ in 1:ninner step!(subst) end # write result @@ -139,7 +140,8 @@ function step!(ctx::DualTVDDState) p_don = zeros(eltype(ctx.p), size(ctx.p)) # subdomain loop (in coloring order) - cids = chessboard_coloring(size(ctx.subax)) + cids = alg.parallel ? [eachindex(ctx.subax)] : + chessboard_coloring(size(ctx.subax)) for (color, ids) in enumerate(cids) for i in ids sax = ctx.subax[i] -- GitLab