Hi Felix,
Some of the ongoing work in extras/grid.jl may also be relevant to you. This
got started because my lab does large-scale imaging, 2500^2 x 200 x 3000 data.
(I'm impressed that you're already doing petabytes!) We treat images a bit
like solving PDEs, and are interested in developing restriction/prolongation
operators, interpolation of various orders, differencing schemes, etc.
For solving PDEs across thousands of processors, presumably you want to have
"localized chunks" on each machine. Julia's current DArray allows you to
distribute arrays along one dimension, but I'd guess you'll want localization
along all spatial/temporal directions simultaneously. I'm working towards
tiled, or "bricked," array representations. Right now my main efforts are
devoted to single-machine (but GPU-backed) computations, in which the disk
serves to cache the individual tiles which are accessed through memory-
mapping. I suspect that this may not suffice for your needs---you may really
need a generalized DArray---and so I'm very pleased you've joined the list; it
seems reasonable to develop this in a way that works for as wide an audience
as possible.
I should point out that the work in extras/grid.jl is currently stalled, due
mostly to non-Julia duties and the fact that I'm in the middle of a detour to
improve the performance of high-dimensional array operations in Julia. Big
parts of grid.jl may need rewriting, and the ability to transparently memory-
map operations means that we may not need all the types I "advertise" in the
comments in that file. Finally, the version in Julia's master is probably not
the latest;
https://github.com/timholy/julia/blob/imagelib/extras/grid.jl is a
better place to look. I may have a few other changes I need to push, but this
should be relatively current.
Best,
--Tim
> >> SPOT<
http://www.cs.ubc.ca/labs/scl/spot/>-a linear operator toolbox, its
> >> parallel extension pSPOT<
https://github.com/slimgroup/pSPOT>, and a
> >> seismic data container<
https://github.com/slimgroup/SeisDataContainer>.
> >> These tools allows us to develop a concrete implementation of
> >> physics-based optimization with concrete parallel implementations for a
> >> forward <
https://www.slim.eos.ubc.ca/node/6675> modeling and
> >> inversion<
https://www.slim.eos.ubc.ca/fwi>framework, including
> >> gradients, Jacobians, and their adjoints. The operator overloading of
> >> SPOT gives us a key advantage and my question is whether there are plans
> >> to support matrix-free matrix-vector operations in Julia.
> >>
> >> More specifically, I am interested in what the thoughts are amongst the
> >> Julia development community regarding the Rice Vector
> >> Library<
http://www.trip.caam.rice.edu/software/rvl/rvl/doc/html/index.ht
> >> ml>as outlined in the paper "Software framework for abstract expression
> >> of coordinate-free linear algebra and optimization
> >> algorithms<
http://portal.acm.org/citation.cfm?doid=1499096.1499097>" by