====== Lehrveranstaltung: High-Performance Data Analytics ====== Data-driven science requires the handling of large volumes of data in a quick period of time. Executing efficient workflows is challenging for users but also for systems. This module introduces concepts, principles, tools, system architectures, techniques, and algorithms toward large-scale data analytics using distributed and parallel computing. We will investigate the state-of-the-art of processing data of workloads using solutions in High-Performance Computing and Big Data Analytics. ===== Key information ===== || Contact || [[about:people:julian_kunkel|Julian Kunkel]], [[about:people:jonathan_decker|Jonathan Decker]] || || Location || [[https://meet.gwdg.de/b/jul-35w-lfd-xfv|Virtual]] || || Time || Monday 16:15-17:45 (lecture), Monday 12:15-13:45 (lunch exercise, starts 1 week later) || || Language || English || || Module || Modul B.Inf.1712: Vertiefung Hochleistungsrechnen, Module M.Inf.1236: High-Performance Data Analytics || || SWS || 4 || || Credits || 6 || || Contact time || 56 hours || || Independent study || 124 hours || || Exam || Written date: **Geo MN15 14:00 10.02.2023** (Be punctual!), 2nd exam: Geo MN14 14:00 05.04.2023 || Please note that we plan to record sessions (lectures and seminar talks) with the intent of providing the recordings via BBB to other students but also to publish and link the recordings on YouTube for future terms. If you appear in any of the recordings via voice, camera or screen share, we need your consent to publish the recordings. See also this {{ :teaching:templates:dataprivacy_student_notice_slide.pdf |Slide}}. ===== Topics ===== Topics cover: * Challenges in high-performance data analytics * Use-cases for large-scale data analytics * Performance models for parallel systems and workload execution * Data models to organize data and (No)SQL solutions for data management * Industry relevant processing models with tools like Hadoop, Spark, and Paraview * System architectures for processing large data volumes * Relevant algorithms and data structures * Visual Analytics * Parallel and distributed file systems Guest talks from academia and industry will be incorporated in teaching that demonstrates the applicability of this topic. Weekly laboratory practicals and tutorials will guide students to learn the concepts and tools. In the process of learning, students will form a learning community and integrate peer learning into the practicals. Students will have opportunities to present their solutions to the challenging tasks in the class. Students will develop presentation skills and gain confidence in the topics. ===== Learning Objectives ===== * Assign big data challenges to a given use-case * Outline use-case examples for high-performance data analytics * Estimate performance and runtime for a given workload and system * Create a suitable hardware configuration to execute a given workload within a deadline * Construct suitable data models for a given use-case and discuss their pro/cons * Discuss the rationales behind the design decisions for the tools * Describe the concept of visual analytics and its potential in scientific workflows * Compare the features and architectures of NoSQL solutions to the abstract concept of a parallel file system * Appraise the requirements for designing system architectures for systems storing and processing data * Apply distributed algorithms and data structures to a given problem instance and illustrate their processing steps in pseudocode * Explain the importance of hardware characteristics when executing a given workload ===== Examination ===== Written (90 Min.) or oral (ca. 30 Min.) -> depends on the number of attendees. See the learning objectives. ===== Agenda ===== * 24.10.22 - **Lecture Overview. Use Cases.** \\ {{ :teaching:autumn_term_2022:hpda22-01.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-01.pdf |Exercises}} * **We will not have an exercise meeting in the first week!** * Exercise: Discussion of use cases covering business/industry and science. Sketching the analytics pipeline for a use case. * 07.11.22 - **Data Models and Data Processing Strategies** \\ {{ :teaching:autumn_term_2022:hpda22-02.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-02.pdf |Exercises}} * Exercise: Developing data models for selected use cases. Researching performance for HPDA. Python Word-Count. * 14.11.22 - **Databases and Data Warehouses** \\ {{ :teaching:autumn_term_2022:hpda22-03.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-03.pdf |Exercises}} * Exercise: Developing a database schema and SQL queries. * 21.11.22 - **Distributed Storage and Processing with Hadoop** \\ {{ :teaching:autumn_term_2022:hpda22-04.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-04.pdf |Exercises}} * Exercise: MapReduce processing with Python. Sketching the difference between SQL running via Hadoop (and Hive) vs. a traditional relational database vs. a data warehouse * 28.11.22 - **Dataflow Computation and Big Data SQL using Hive** \\ {{ :teaching:autumn_term_2022:hpda22-05.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-05-2.pdf |Slides-2}} {{ :teaching:autumn_term_2022:hpda22-exercise-05.pdf |Exercises}} * Exercise: MapReduce via Streaming in Hadoop. Developing a dataflow system in Python. * 05.12.22 - **Columnar Access and Document Storage** \\ {{ :teaching:autumn_term_2022:hpda22-06.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-06.pdf |Exercises}} * Exercise: Managing data using MongoDB * 12.12.22 - **In-Memory Computation** \\ {{ :teaching:autumn_term_2022:hpda22-07.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-07.pdf |Exercises}} * Exercise: Data processing using Spark * 19.12.22 - **Stream Processing ** \\ {{ :teaching:autumn_term_2022:hpda22-08.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-08.pdf |Exercises}} * Exercise: Streaming concepts and crime data * 09.01.23 - **Designing Distributed Systems and Performance Modelling** \\ {{ :teaching:autumn_term_2022:hpda22-09.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-09.pdf |Exercises}} * During the exercise, we discuss any questions you may have. * Exercise: RESTful Services. Consistent Hashing. Performance analysis of I/O mappings of use cases to systems. * 16.01.23 - **Visual Analytics and Large-Scale Data Analysis** \\ {{ :teaching:autumn_term_2022:hpda22-10.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-10.pdf |Exercises}} * Exercise: Performance analysis and OpenAPI * 23.01.23 - **Data Storage** \\ {{ :teaching:autumn_term_2022:hpda22-11.pdf |Slides}} {{ :teaching:autumn_term_2022:hpda22-exercise-11.pdf |Exercises}} * Exercise: NetCDF data model and benchmarking. * 30.01.23 - **The Apache Ecosystem and Beyond** \\ //This slide deck is optional and not subject to examination// \\ {{ :teaching:autumn_term_2022:hpda22-12.pdf |Slides}} * Exercise: discussion of last week's exercises * 06.02.23 - **Summary** \\ {{ :teaching:autumn_term_2022:hpda22-13.pdf |Slides}} * Exercise: Q&A Session ===== Links ===== * Example Scripts: https://github.com/JulianKunkel/hpda-samples