Periodic Reporting for period 3 - DAPHNE (Integrated Data Analysis Pipelines for Large-Scale Data Management, HPC, and Machine Learning)
Período documentado: 2023-12-01 hasta 2024-11-30
While the first years of the DAPHNE project have been used to build up the system infrastructure, the progress towards the end has shifted from creation to refinement-oriented. This has already been visible in the last report and has been continued in this final project report. While the runtime system has seen many new kernels to enrich the functionality or improve the performance, there a lot of bug fixes and convenience features that were introduced for developers and users alike. For the general system architecture, the first version of the extensibility catalogue has been mainlined. The DAPHNE compiler gained more code generation capabilities, optimization and analysis passes. The API was extended continuously in our DaphneLib python bindings and our DaphneDSL has seen improvements for productivity like better support for indexing into matrix structures and higher level built-in functions, which in turn, sparked the development of internal features like the list data type, fostering the implementation of algorithms like the decision trees.
Besides refinement, the progress in the final project year towards reaching the goals of the second strategic objective was also marked by the development of larger features in separate branches to not interfere with general development in the main branch while they are not mature enough for merging. Relevant changes in this regard were the integration of distributed I/O through HDFS and Lustre support or improved memory management to support sparse data on GPU, support for the io_uring subsystem, higher dimensional tensor data and ongoing work in the computational storage and FPGA kernels. Work on hierarchical scheduling and NU-MA aware data placement was carried out to cater to the objective's task planning aspects, leading to performance improvements by countering load imbalance. Many of the techniques for this objective are based on features that have been introduced or improved in the DAPHNE compiler that analyzes workloads, input data and intermediates. Based on these outputs, decisions can be made on which methods are best applied to the problem at hand.
The progress towards completion of the use case implementations and our benchmarking efforts has been naturally increasing towards the end of the project as DAPHNE becomes more and more mature and therefore usable in real world application as well as benchmarking scenarios. In collaboration with the technical work packages (WPs 3-7), the work packages for use cases (WP8) and benchmarking (WP9) were not only able to reach their final stages, but also gave valuable feedback where problems still needed to be solved and improvements to be implemented. Through our successful inter-WP collaboration we were able to have most use cases produce their results with the UMLAUT benchmarking suite that has been implemented alongside the DAPHNE development in a separate code repository.
After the prototype was launched as announced in March 2022, DAPHNE has been open sourced (https://github.com/daphne-eu/daphne(se abrirá en una nueva ventana)) under the Apache v2 license, and has since been improved according to DAPHNE artefact release schedule. As the Final Project Report in DAPHNE project has come to an end, we have implemented the DAPHNE language abstractions and the extended compiler prototype, shaping the scheduling structures available in DAPHNE, implementing relational filtering operators within the prototype and overview of data path optimizations and placement, enhancing the overview of the code generation framework as well as the DAPHNE pipelines, and implementing an internal benchmarking toolkit. Having submitted the respective deliverables by November 2024/M48/end of 3rd and last project period, we have met to discuss this progress on continuing our work on DAPHNE in our General Assembly Meeting 2024 at Impact Hub Athens. To summarize, we have made progress in line with all three strategic objectives and built the prototype and use case pipelines for facilitating the infrastructure and use case implementation on this infrastructure.