Skip to content

Commit 2961fd7

Browse files
committed
Key chunk cache also on processor
1 parent 35d6a13 commit 2961fd7

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/sch/Sch.jl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ function Base.show(io::IO, se::SchedulingException)
436436
print(io, "SchedulingException ($(se.reason))")
437437
end
438438

439-
const CHUNK_CACHE = Dict{Chunk,Any}()
439+
const CHUNK_CACHE = Dict{Chunk,Dict{Processor,Any}}()
440440

441441
function schedule!(ctx, state, procs=procs_to_use(ctx))
442442
lock(state.lock) do
@@ -786,10 +786,16 @@ function do_task(to_proc, extra_util, thunk_id, f, data, send_result, persist, c
786786
@dbg timespan_start(ctx, :move, (thunk_id, id), (f, id))
787787
x = if x isa Chunk
788788
if haskey(CHUNK_CACHE, x)
789-
CHUNK_CACHE[x]
789+
get!(CHUNK_CACHE[x], to_proc) do
790+
# TODO: Choose "closest" processor of same type first
791+
some_proc = first(keys(CHUNK_CACHE[x]))
792+
some_x = CHUNK_CACHE[x][some_proc]
793+
move(some_proc, to_proc, some_x)
794+
end
790795
else
791796
_x = move(to_proc, x)
792-
CHUNK_CACHE[x] = _x
797+
CHUNK_CACHE[x] = Dict{Processor,Any}()
798+
CHUNK_CACHE[x][to_proc] = _x
793799
_x
794800
end
795801
else

0 commit comments

Comments
 (0)