Julian Samaroo

Results 172 issues of 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...

needs tests
needs docs
spmd

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:...

scheduler
performance
eager api
memory usage

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...

performance
datadeps

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...

datadeps
stencils

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...

scheduler
performance
speculative

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...

needs tests
needs docs
datadeps

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...