Julian Samaroo
Julian Samaroo
Similar to MPI's collective and P2P operations, this provides a convenient interface for writing code in the style of Single Program Multiple Data (SPMD). This can be quite convenient for...
This PR implements a variety of performance tweaks and memory usage optimizations to improve the overall performance of Dagger under various conditions, particularly when dealing with many small tasks. Todo:...
This PR improves Datadeps to be capable of properly "deferring" a task for later scheduling when that task depends on the result of another task that was spawned within the...
Adds an `@stencil` macro (and an `@neighbors` helper) for specifying stencil-like operations (such as convolutions) over one or more `DArray`s, which operate in parallel via Datadeps. For example, Conway's Game...
Dagger's scheduler has previously avoided scheduling work on Worker 1, Thread 1, as the scheduler itself runs on that thread, and we don't want non-yielding tasks to block scheduling from...
I can't get the examples from the tests to work on 1.11, I get: ```julia julia> show(IOBuffer(), MIME"image/png"(), dot"") ERROR: MethodError: no method matching show(::IOBuffer, ::MIME{Symbol("image/png")}, ::GraphViz.Graph) The function `show`...
At its core, this PR implements an numerical optimizer-based scheduler for Datadeps. This scheduler uses JuMP to implement the scheduler designed by @pszufe and documented at https://github.com/pszufe/DagScheduler. The idea of...
However, `Finch.Tensor(::Finch.Tensor)` appears to almost work (but see #779), and `Array(::Finch.Tensor)` works. I think `copy` and `collect` are important (and I rely on them existing in Dagger.jl for any user-provided...
MWE: ``` julia> Af = fsprand(4, 4, 0.5) 4×4 Tensor{SparseCOOLevel{2, Tuple{Int64, Int64}, Vector{Int64}, Tuple{Vector{Int64}, Vector{Int64}}, ElementLevel{0.0, Float64, Int64, Vector{Float64}}}}: 0.0 0.745285 0.0 0.611603 0.0 0.731544 0.0 0.0 0.861438 0.0 0.238327...