Periodic Reporting for period 1 - DAPHNE (Integrated Data Analysis Pipelines for Large-Scale Data Management, HPC, and Machine Learning)
Reporting period: 2020-12-01 to 2022-05-31
Project Management / Dissemination (WP 1 and 10): Besides regular all-hands meetings, in the first 18 months, we focused on the setup of the project infrastructure. Related outcomes are the project and risk management plan D1.1 the research data management plan D1.2 and the first annual report D1.3. Furthermore, we organized the kickoff meeting in 12/2020, the first general assembly meeting in 10/2021, and are organizing the first review meeting in 07/2022. An initial website was replaced by a new website with more information, use cases, talks, and publications. Besides papers and talks, we conducted broad dissemination and exploitation activities and have refined the dissemination and exploitation plan in D10.1.
System Architecture and DSL (WP 2 and 3): After many discussions, we summarized the requirements on an open and extensible system infrastructure, and defined its system architecture and components. This system architecture was documented in D2.1 and a joint CIDR 2022 paper by all partners. We defined the DAPHNE language abstractions of DaphneDSL (a domain-specific language), and DaphneAPI (a Python API) in D3.1. In this context, we already described the initial design of the MLIR-based optimizing compiler, DaphneIR as the central intermediate representation, and future extensions by higher-level built-ins. Since February 2021, we actively develop a prototype of the DAPHNE system, which was shared as a demonstrator in D3.2 and as of March 31, 2022 has been migrated to a public OSS repository (https://github.com/daphne-eu/daphne) with Apache 2 license.
Runtime and Scheduling (WP 4 and 5): Discussions in WP 4 and 5 combined knowledge sharing of selected techniques, and in-depth discussions of runtime aspects of the prototype and its extensions. Initial efforts centered around the core data structures and kernels. We introduced a vectorized (tiled) execution engine that processes operator pipelines in a task-based manner on tiles of inputs. The design is described in the system architecture in D2.1 language abstractions in D3.1 the DSL runtime design in D4.1 and the scheduler design in D5.1. Beyond the local runtime, we also created an initial distributed runtime system, which uses hierarchical vectorized pipelines. Additional work investigated distribution primitives, collective operations (e.g. MPI), parameter servers, and distribution strategies. For hierarchical scheduling, we already analyzed requirements, and explored various task scheduling strategies.
Computational Storage and HW Accelerators (WP 6 and 7): Work packages 6 and 7 also have natural synergies. Besides knowledge sharing, initial work of the first 18 months covered basic I/O support for selected data formats, an analysis of the design space and current technology trends in D6.1 as well as an initial integration of GPU and FPGA operations, related data placement primitives, and tailor-made device kernels for selected operations (e.g. FPGA quantization). The integration of GPU and FPGA accelerators is important for performance of various end-to-end pipelines, and serve as examples for integrating other HW accelerators. GPUs (and later FPGAs) are also part of vectorized execution to exploit heterogeneous HW jointly. More specialized work focused on virtual vector abstractions for SIMD, computational storage platforms and initial experiments, exploration of abstractions for complex storage hierarchies, and performance models.
Use Cases and Benchmarks (WP 8 and 9): The work packages 8 and 9 conducted regular meetings for discussions of the individual use cases, the use case descriptions, and ML pipeline implementations. A major outcome are the use case pipelines in D8.1 which serve as example use cases for the DAPHNE system and real-world benchmarks. We further surveyed existing benchmarks in databases, data-parallel computation, HPC, and ML systems in D9.1. Additionally, HPI made major contributions to the development of the TPCx-AI benchmark (released in 09/2021) and several partners (HPI, UNIBAS, KNOW) conducted student projects for benchmarking IDA pipelines and additional TPCx-AI implementations.