M.Sc. Vincent Bode


Picture of Vincent Bode

Technical University of Munich

Informatics 10 - Chair of Computer Architecture and Parallel Systems (Prof. Schulz)

Postal address

Postal:
Boltzmannstr. 3
85748 Garching b. München

Research Topic

As part of my research, I work on DDS-Perf, a cross-vendor DDS profiler. DDS (Data Distribution Service) is a message-oriented middleware standard for (Industrial-) IoT applications, which I am benchmarking as part of my doctoral thesis. This work is part of an industry cooperation with Siemens. I have multiple open bachelor/masters theses on this topic.

Open Theses or HiWi Positions

I have open thesis topics or HiWi positions on a variety of work related to DDS specifically and to benchmarking in general. Note that the chair receives many thesis applications, therefore please refer specifically to DDS or benchmarking in your e-mail subject when contacting me or come visit me directly in my office. All of the topics work as either thesis or HiWi position.

General Considerations

As my topics are mainly engineering focused, I value production-readiness over feature-completeness or novelty. All topics are aimed at continuously improving the capabilities of DDS-Perf or the world of benchmarking in general.

Industry Cooperations

If you are conducting industry or academic research on DDS or other message-oriented middleware and are interested in collaborations please feel free to contact me directly.

New vendor modules for DDS-Perf

DDS-Perf currently supports 4 vendors, but the DDS ecosystem encompasses over a dozen. I want to improve the coverage of DDS-Perf so that we can paint a wider picture of DDS performance. Work on this topic includes the following:

  • Choosing two additional DDS vendors for evaluation
  • Writing scripts for installing and managing DDS implementations
  • Extending the DDS-Perf client to support the vendor specific code sections required
  • Benchmarking the resulting performance on our hardware

The final thesis will consist of a design/methodology part and the evaluation/benchmarking part, which should work nicely for the writeup.

A suitable candidate for this topic is knowledgable about the following technologies:

  • Python and C++
  • Basic computer architecture and operating systems
  • General software development methodologies (version control, continuous integration, etc.)

User-space networking for CycloneDDS

As part of my research, I have developed user-space networking technology extensions for CycloneDDS that circumvent the kernel and its IP stack (which is non-realtime capable) to communicate from the DDS application directly with the NIC driver. We currently have prototypes for CycloneDDS with DPDK (https://www.dpdk.org/) and CycloneDDS with XDP (https://developers.redhat.com/blog/2021/04/01/get-started-with-xdp) that can accelerate DDS performance. However, some improvements need to be made to make the code production ready. Work on this topic includes the following:

  • Design and implementation of a packet fragmentation and reassembly mechanism for the two CycloneDDS extensions
  • Robustness evaluation and performance tuning of the extensions
  • Benchmarking the resulting performance on our hardware

The final thesis will consist of a design/methodology part and the evaluation/benchmarking part, which should work nicely for the writeup.

A suitable candidate for this topic is knowledgable about the following technologies:

  • C++
  • Computer architecture and operating systems
  • General software development methodologies (version control, continuous integration, etc.)

Lib SysConfig

Implement a program or library to portably read, write and store system configuration parameters. Sounds simple, but system configurations are large (contain many parameters) and platforms are diverse. This topic is not specific to DDS so deployability and versatility are key.

Functional requirements:

  • Read the system configuration and store it into suitable (human readable and machine readable) formats
  • Compare (at least) two system configurations, detecting key differences between them. Should support both textual/categorical parameters and numerical ones.
  • Modular: a module encapsulates a set of configuration parameters as an aspect of a system. Besides the module for basic system information, eventually we will have modules for DDS information as well
  • Extensible: New modules will need to be added after the completion of the thesis by other developers. Extensibility and documentation are therefore considered priorities

A suitable candidate for this topic is knowledgable about the following technologies:

  • A wide-spread, portable and easily deployable programming language (negotiable which one is used for implementation)
  • Computer architecture and operating systems
  • General software development methodologies (version control, continuous integration, etc.)

Lib BenchmarkData

Doing benchmarking right is often more difficult than it sounds. Once you start going into details, there are a lot of considerations that need to be weighed, and many system, configuration, application and benchmarking parameters to be configured, making it difficult to structure data methodologically and keep an overview of the results. The aim of this topic is to develop a library/solution to structure data and experiments that will allow us to evaluate our results and which is generally applicable to the field of benchmarking.

Functional requirements:

  • Devise an (extensible) way of structuring benchmarking data to help ease evaluation.
  • Summarize performance metrics of each test result and aggregated
  • Detect correlations between input parameters (system/application configuration) and performance output

A suitable candidate for this topic is knowledgable about the following technologies:

  • A wide-spread, portable and easily deployable programming language (negotiable which one is used for implementation)
  • Databases
  • Basic computer architecture and operating systems
  • General software development methodologies (version control, continuous integration, etc.)

Backend/Frontend for Benchmarking Data Site

To make our benchmarking results accessible to the public and to invite them to contribute their own, we need a website to host browsable benchmarking data. You will be responsible for a subset of the functionality, which will be developed over time in collaboration with other students.

Backend

  • Store benchmark definitions and benchmark results, consisting of system/environment information and performance metrics
  • Fetch individual results and the general distribution over all results for a benchmark definition
  • Add benchmark results via a suitable mechanism (such as REST)
  • Batch export results so that users can process them further

Frontend

  • Interface to browse a hierarchy of benchmark definitions
  • Filters for results based on benchmark and system information
  • Display the details of a benchmarking result
  • Compare a specific result to selected other results and the general distribution over all results

 

Suitable candidates for this topic is knowledgable about the following technologies:

  • Modern web technologies relevant to either frontend or backend, databases
  • General software development methodologies (version control, continuous integration, etc.)

Teaching

As a teaching assistant I organize and hold lectures, tutorials, seminars and lab courses in the area of computer architecture and parallel systems.

Publications

In Progress

  • "Spend some Time on Time", V. Bode, A. Gujarati, M. Schulz

Published

  • V. Bode, D. Buettner, T. Preclik, C. Trinitis, and M. Schulz, ‘Adopting User-Space Networking for DDS Message-Oriented Middleware’, in 2024 IEEE International Conference on Pervasive Computing and Communications (PerCom) (PerCom 2024), 2024, p. 10.95.
  • Vincent Bode, David Buettner, Tobias Preclik, Carsten Trinitis, and Martin Schulz. 2023. Systematic Analysis of DDS Implementations. In Proceedings of the 24th International Middleware Conference (Middleware '23). Association for Computing Machinery, New York, NY, USA, 234–246. https://doi.org/10.1145/3590140.3629118
  • Amir Raoofy, Bengisu Elis, Vincent Bode, Minh Thanh Chung, Sergej Breiter, Dennis-Florian Herr, Maron Schlemon, Karl Fuerlinger, Martin Schulz, Josef Weidendorfer. 2023. BEAST Lab: A Practical Course on Experimental Evaluation of Diverse Modern HPC Architectures and Accelerators. In Proceedings of ACM SIGHPC Education (BPHTE ’23). ACM, New York, NY, USA, 8 pages.
  • "DDS Implementations as Real-Time Middleware – A Systematic Evaluation". Vincent Bode, David Buettner, Tobias Preclik, Carsten Trinitis, and Martin Schulz. 2023. In Proceedings of the 2023 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.
  • "The Isabelle Community Benchmark". (2022). Huch, Fabian, and Vincent Bode. In Proceedings of the Workshop on Practical Aspects of Automated Reasoning. CEUR-WS. https://ceur-ws.org/Vol-3201/paper14.pdf
  • "On the Exploration and Optimization of High-Dimensional Architectural Design Space". Vincent Bode, Fariz Huseynli, Martin Schreiber, Carsten Trinitis, and Martin Schulz. 2021. In Proceedings of the 2021 on Performance EngineeRing, Modelling, Analysis, and VisualizatiOn STrategy (PERMAVOST '21). Association for Computing Machinery, New York, NY, USA, 19–26. https://doi.org/10.1145/3452412.3462754