From bb1cb7f7795c96b65bd6b5cf8c2ed8acc41f988b Mon Sep 17 00:00:00 2001 From: Luca Mathias Date: Tue, 26 Nov 2024 16:12:35 +0100 Subject: [PATCH] add bsc Luca Mathias --- active_research.md | 25 +++++++++--------- archive/2024/README.md | 15 ++++++----- ...ation_of_confidential_virtual_machines.pdf | Bin 0 -> 1390483 bytes ...ation_of_confidential_virtual_machines.pdf | Bin 0 -> 467732 bytes 4 files changed, 20 insertions(+), 20 deletions(-) create mode 100644 archive/2024/winter/docs/bsc_mathias_performance_analysis_and_optimization_of_confidential_virtual_machines.pdf create mode 100644 archive/2024/winter/talks/bsc_mathias_performance_analysis_and_optimization_of_confidential_virtual_machines.pdf diff --git a/active_research.md b/active_research.md index f80d5c0..3a569c2 100644 --- a/active_research.md +++ b/active_research.md @@ -11,17 +11,16 @@ ⚠️**NOTE**: Keep the table sorted based on the end date, i.e., earliest end dates at the top.⚠️ -| Student | Title | Type | Advisors | Start date | End date | -|--------------------|-------------------------------------------------------------------------------------------------------|------|----------------------------------------|------------|------------| -| Simon Dittrich | Automated Simulation of Hierarchical Cache Coherence for CXL | MA | Anatole Lefort | 15.03.2024 | 15.09.2024 | -| Francisco Kusch | CompTN: A Compiler Infrastructure for High-Performance Tensor Network Computing | BA | Nathaniel Tornow, Oğuzcan Kırmemiş | 28.05.2024 | 28.09.2024 | -| Luca Mathias | Analysis and Optimization of I/O Stack of Confidential Virtual Machines | BA | Masanori Misono | 17.06.2024 | 17.10.2024 | -| Alexander Schindler| Evaluating the performance impact of privilege levels of Confidential Virtual Machines | MA | Patrick Sabanic | 15.11.2023 | 15.11.2024 | -| Milen Vitanov | Serverless Data-Processing in Unikernels using eBPF | MA | Masanori Misono, Ilya Meignan--Masson | 01.06.2024 | 01.12.2024 | -| Marcin Praski | Real-time & parallel task scheduling for Quantum Computing | MA | Emmanouil Giortamis | 15.06.2024 | 15.12.2024 | -| Lan Ouyang | Securing Databases Data Structures: Exploring CHERI for Memory Safety and Bug Detection | MA | Martin Fink, Ilya Meignan--Masson | 07.08.2024 | 07.02.2025 | -| Konstantin Garbers | Design and Implementation of a Binary Translator from AArch64 to a Custom Intermediate Representation | BA | Martin Fink | 29.10.2024 | 28.02.2025 | -| Martin Lindbuechl | Towards efficient memory and storage subsystems for unikernel based cloud databases | BA | Ilya Meignan--Masson | 18.11.2024 | 18.03.2025 | -| Michael Hackl | CloakVM: A Library OS for Confidential Nested Virtualization | MA | Patrick Sabanic, Dimitrios Stavrakakis | 01.10.2024 | 01.04.2025 | -| Dominik Kreutzer | vDPDK: A Para-Virtualized DPDK Device Model for vMux | MA | Peter Okelmann, Masanori Misono | 18.11.2024 | 19.05.2025 | +| Student | Title | Type | Advisors | Start date | End date | +| ------------------- | ----------------------------------------------------------------------------------------------------- | ---- | -------------------------------------- | ---------- | ---------- | +| Simon Dittrich | Automated Simulation of Hierarchical Cache Coherence for CXL | MA | Anatole Lefort | 15.03.2024 | 15.09.2024 | +| Francisco Kusch | CompTN: A Compiler Infrastructure for High-Performance Tensor Network Computing | BA | Nathaniel Tornow, Oğuzcan Kırmemiş | 28.05.2024 | 28.09.2024 | +| Alexander Schindler | Evaluating the performance impact of privilege levels of Confidential Virtual Machines | MA | Patrick Sabanic | 15.11.2023 | 15.11.2024 | +| Milen Vitanov | Serverless Data-Processing in Unikernels using eBPF | MA | Masanori Misono, Ilya Meignan--Masson | 01.06.2024 | 01.12.2024 | +| Marcin Praski | Real-time & parallel task scheduling for Quantum Computing | MA | Emmanouil Giortamis | 15.06.2024 | 15.12.2024 | +| Lan Ouyang | Securing Databases Data Structures: Exploring CHERI for Memory Safety and Bug Detection | MA | Martin Fink, Ilya Meignan--Masson | 07.08.2024 | 07.02.2025 | +| Konstantin Garbers | Design and Implementation of a Binary Translator from AArch64 to a Custom Intermediate Representation | BA | Martin Fink | 29.10.2024 | 28.02.2025 | +| Martin Lindbuechl | Towards efficient memory and storage subsystems for unikernel based cloud databases | BA | Ilya Meignan--Masson | 18.11.2024 | 18.03.2025 | +| Michael Hackl | CloakVM: A Library OS for Confidential Nested Virtualization | MA | Patrick Sabanic, Dimitrios Stavrakakis | 01.10.2024 | 01.04.2025 | +| Dominik Kreutzer | vDPDK: A Para-Virtualized DPDK Device Model for vMux | MA | Peter Okelmann, Masanori Misono | 18.11.2024 | 19.05.2025 | diff --git a/archive/2024/README.md b/archive/2024/README.md index 1ae41e7..2deca4a 100644 --- a/archive/2024/README.md +++ b/archive/2024/README.md @@ -1,6 +1,6 @@ # Research work in 2024 -## Summer semester +## Summer **semester** | Student | Title | Type | Advisors | Report/Thesis | Presentation | | --------------------------------- | ----------------------------------------------------------------------------------------- | ---- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | @@ -16,9 +16,10 @@ ## Winter semester -| Student | Title | Type | Advisors | Report/Thesis | Presentation | -| -------------------------------- | --------------------------------------------------------------------------- | ---- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| Liangrun Da | Design and Verification of Byzantine Fault Tolerant CRDTs | MA | Martin Kleppmann | [PDF](winter/docs/msc_liangrun_da_design_and_verification_of_byzantine_fault_tolerant_crdts.pdf) | [PDF](winter/talks/msc_liangrun_da_design_and_verification_of_byzantine_fault_tolerant_crdts.pdf) | -| Stephan Lukasewitz, Kevin Nöller | Feedback-driven usability testing for hotel software | MA | Bernd Brügge | [PDF](winter/docs/msc_lukasewitz_noeller_feedback_driven_usability_testing_for_hotel_software.pdf) | [PDF](winter/talks/msc_lukasewitz_noeller_feedback_driven_usability_testing_for_hotel_software.pdf) | -| Cristian Sandu | Feedback-driven usability testing for hotel software | MA | Ilya Meignan--Masson, Martin Fink | [PDF](winter/docs/msc_cristian_sandu_evaluating_cheri_for_hardware_assisted_memory_safety_in_databases.pdf) | [PDF](winter/talks/msc_cristian_sandu_evaluating_cheri_for_hardware_assisted_memory_safety_in_databases.pdf) | -| Julian Pritzi | Formal Verification of Heterogeneous Cache Coherence Protocols for CXL | MA | Dr. Anatole Lefort | [PDF](winter/docs/msc_julian_pritzi_formal_verification_of_heterogeneous_cache_coherence_protocols_for_cxl.pdf) | [PDF](winter/talks/msc_julian_pritzi_formal_verification_of_heterogeneous_cache_coherence_protocols_for_cxl.pdf) | +| Student | Title | Type | Advisors | Report/Thesis | Presentation | +| -------------------------------- | ---------------------------------------------------------------------- | ---- | --------------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| Liangrun Da | Design and Verification of Byzantine Fault Tolerant CRDTs | MA | Martin Kleppmann | [PDF](winter/docs/msc_liangrun_da_design_and_verification_of_byzantine_fault_tolerant_crdts.pdf) | [PDF](winter/talks/msc_liangrun_da_design_and_verification_of_byzantine_fault_tolerant_crdts.pdf) | +| Stephan Lukasewitz, Kevin Nöller | Feedback-driven usability testing for hotel software | MA | Bernd Brügge | [PDF](winter/docs/msc_lukasewitz_noeller_feedback_driven_usability_testing_for_hotel_software.pdf) | [PDF](winter/talks/msc_lukasewitz_noeller_feedback_driven_usability_testing_for_hotel_software.pdf) | +| Cristian Sandu | Feedback-driven usability testing for hotel software | MA | Ilya Meignan--Masson, Martin Fink | [PDF](winter/docs/msc_cristian_sandu_evaluating_cheri_for_hardware_assisted_memory_safety_in_databases.pdf) | [PDF](winter/talks/msc_cristian_sandu_evaluating_cheri_for_hardware_assisted_memory_safety_in_databases.pdf) | +| Julian Pritzi | Formal Verification of Heterogeneous Cache Coherence Protocols for CXL | MA | Dr. Anatole Lefort | [PDF](winter/docs/msc_julian_pritzi_formal_verification_of_heterogeneous_cache_coherence_protocols_for_cxl.pdf) | [PDF](winter/talks/msc_julian_pritzi_formal_verification_of_heterogeneous_cache_coherence_protocols_for_cxl.pdf) | +| Luca Mathias | Performance Analysis and Optimization of Confidential Virtual Machines | BA | Dr. Masanori Misono | [PDF](winter/docs/bsc_mathias_performance_analysis_and_optimization_of_confidential_virtual_machines.pdf) | [PDF](winter/talks/bsc_mathias_performance_analysis_and_optimization_of_confidential_virtual_machines.pdf) | diff --git a/archive/2024/winter/docs/bsc_mathias_performance_analysis_and_optimization_of_confidential_virtual_machines.pdf b/archive/2024/winter/docs/bsc_mathias_performance_analysis_and_optimization_of_confidential_virtual_machines.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bb6bf365846bb3943a84bf908d6fa27f9e602e87 GIT binary patch literal 1390483 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