janniklinde opened a new pull request, #2409:
URL: https://github.com/apache/systemds/pull/2409

   This PR introduces pipelining support for operators that produce at most one 
`MatrixBlock` per incoming block. As current out-of-core primitives are highly 
concurrent, which may lead to fan-outs (and consequential OOMs) for 
fast-producing source streams, this implementation aims to process downstream 
operations in the same thread. To reliably clean up referenced objects from 
caller methods (stack), we defer the downstream task using a thread-local 
context (if available). Because the deferred call is still executed in the same 
task of the caller, sequences of pipelining operators are completed before new 
tasks are taken from the task queue.
   Additionally, this PR adds new primitives required for general matrix 
multiplies and adds new operators relying on these new primitives.
   We also added (optional) messaging capabilities operators and streams, which 
may be required to communicate stream capabilities in future (e.g., targeted 
requests of tiles, cached, ...). While it is still uncertain to what degree 
these messages can be used, they are required for future experiments.
   As streams sometimes need size information, they may now hold the 
corresponding `CacheableData` object. Here I don't know if these references can 
create issues regarding memory management.
   Finally, this PR contains various bugfixes, safety checks, improved error 
handling and additional cache features.
   Sorry (again) for the large PR.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to