commit | beb4840439ce6ca027470ce0cf3d2c903c1fa40d | [log] [tgz] |
---|---|---|
author | Matthias Boehm <mboehm7@gmail.com> | Sat Apr 25 16:49:45 2020 +0200 |
committer | Matthias Boehm <mboehm7@gmail.com> | Sat Apr 25 18:38:13 2020 +0200 |
tree | b7e4dd48f11837581533a9412c120e3049daf683 | |
parent | 013ca8224c23b1d9f63e254162a56fb78bf74c96 [diff] |
[SYSTEMDS-208] Fix buffer pool leak and cleanup robustness This patch fixes a buffer pool eviction leak, where each calls to mice added 3 uncleaned objects to the buffer pool and thus eventually ran into severe eviction (up to 'no space left on device'). A closer investigation revealed missing rmVar instructions in complex control flow programs. Specifically, we now reintroduced the notion of exit instructions for while/for/parfor/if and derive and add a packed rmVar instruction if necessary (based on livein and liveout sets). To make the mentioned exit instructions more effective, this patch also introduces a best-effort cleanup of liveout variable sets, which are too conservative for nested control flow. However, this cleanup is only done where it is guaranteed to be safe, i.e., the top-level of statement blocks at the main program and individual functions. Finally, the memory leak was due to creatvar instructions overwriting existing objects in the symbol table without proper cleanup. This is a consequence of missing rmvar instructions, but in order to guard against all cases, we now check this condition and perform a proper cleanup which guards against such unknown leaks.
Overview: SystemDS is a versatile system for the end-to-end data science lifecycle from data integration, cleaning, and feature engineering, over efficient, local and distributed ML model training, to deployment and serving. To this end, we aim to provide a stack of declarative languages with R-like syntax for (1) the different tasks of the data-science lifecycle, and (2) users with different expertise. These high-level scripts are compiled into hybrid execution plans of local, in-memory CPU and GPU operations, as well as distributed operations on Apache Spark. In contrast to existing systems - that either provide homogeneous tensors or 2D Datasets - and in order to serve the entire data science lifecycle, the underlying data model are DataTensors, i.e., tensors (multi-dimensional arrays) whose first dimension may have a heterogeneous and nested schema.
Quick Start Install, Quick Start and Hello World
Documentation: SystemDS Documentation
Python Documentation Python SystemDS Documentation
Status and Build: SystemDS is still in pre-alpha status. The original code base was forked from Apache SystemML 1.2 in September 2018. We will continue to support linear algebra programs over matrices, while replacing the underlying data model and compiler, as well as substantially extending the supported functionalities. Until the first release, you can build your own snapshot via Apache Maven: mvn -DskipTests clean package
.