2019 and later
CS MSc Thesis Presentations 13 June 2024
Föreläsning
From:
2024-06-13 09:15
to
16:00
Place: E:2116, E:2405 (Glasburen) and E:4130 (Lucas)
Contact: birger [dot] swahn [at] cs [dot] lth [dot] se
Five Computer Science MSc theses to be presented on 13 June
Thursday, 13 June there will be five master thesis presentations in Computer Science at Lund University, Faculty of Engineering.
The presentations will take place in E:2116, E:2405 (Glasburen) and E:4130 (Lucas). See information for each presentation.
Note to potential opponents: Register as an opponent to the presentation of your choice by sending an email to the examiner for that presentation (firstname.lastname@cs.lth.se). Do not forget to specify the presentation you register for! Note that the number of opponents may be limited (often to two), so you might be forced to choose another presentation if you register too late. Registrations are individual, just as the oppositions are! More instructions are found on this page.
09:15-10:00 in E:2116
Presenters: Anton Wiklund, Joel Johansson
Title: Minimizing the exposure of sensitive data during network transfers in the Linux kernel
Examiner: Flavius Gruian
Supervisors: Jonas Skeppstedt (LTH), Reine Johansson (Asperiq AB)
This master thesis focuses on minimizing the exposure of sensitive data in the Linux kernel during network transfers and how much such a solution would affect performance. By studying the network stack and network drivers, the kernel was modified to overwrite packet data with zeroes before freeing it. Consequently, we could halve the amount of exposed data during transmissions, and after the transmission, no data would be left in memory. This solution came with some performance costs as using the regular memset function to zero increased the cache miss rate by 4% and CPU utilization by 1.5%. When the CPU and memory were under high load, the CPU utilization increased by around 4%. Using non-temporal stores instead, the cache miss rate was unaffected and used less of the CPU than memset when the system was under pressure, roughly 2.5% more than no zeroing. However, the CPU usage was slightly higher than memset, around 0.5%, when the system was under no pressure.
Link to popular science summary: To be uploaded
10:15-11:00 in E:4130 (Lucas)
Presenters: Martin Antoniev, Patrik Fjellstedt
Title: Improving Probe and Surfel Placement for Dynamic Diffuse Global Illumination
Examiner: Per Andersson
Supervisors: Michael Doggett (LTH), Calle Lejdfors (AMD)
The computational complexity imposed by accurately estimating, calculating and simulating dynamic diffuse global illumination (DDGI) in real-time computer graphics has led to the development of a multitude of different approaches. This thesis extends upon an existing system which uses statically placed light probes and surface elements (surfels) to discretize and calculate the scene DDGI, and presents a method for dynamically distributing and placing the light probes in the scene based on its complexity. The new system uses an octree data structure whose branches are iteratively built and rebuilt depending on the geometry density and changes in the scene, and where the light probes are placed in its leaf nodes. Each probe evenly places surfels around itself using a Fibonacci lattice to determine both indirect lighting contributions, which are then used to calculate the scene DDGI, and whether to rebuild the octree at the node in which the probe resides.
Link to popular science summary: To be uploaded
11:00-11:45 in E:2405 (Glasburen) and via Zoom (see link below)
Presenters: Osama Hajjouz, Emad Aldeen Issawi
Title: Comparative Analysis of Conventional Approaches and AI-Powered Tools for Unit Testing within Web Application Development
Examiner: Elizabeth Bjarnason
Supervisor: Qunying Song (LTH)
As software development evolves, integrating AI technologies offers a promising avenue to enhance testing efficiency. This thesis investigates the effectiveness of AI-based tools for unit testing in web application development, focusing on IKEA’s ILA web application. By comparing AI-based Testing Tools (AITT) with manually implemented (MI) unit tests, the study evaluates the quality, accuracy, efficiency, and associated challenges of each approach. The research employs a literature review and 19 evaluation criteria to assess the quality of tests generated by seven selected AITTs and one MI method. Additionally, the Multi-Criteria Decision-Making method, using the Weighted Sum Model (WSM) score, is used to compare the evaluation results of the two testing approaches. Our findings indicate that while AITT can significantly enhance the speed and coverage of unit testing, their accuracy and quality vary compared to MI tests. Interviews with IKEA engineers provide practical insights into the challenges and benefits of integrating AI tools into existing workflows. The thesis concludes that MI unit tests achieved the highest WSM score, with a close second place by an AITT. Our analysis offers recommendations for effectively utilizing AITT to complement MI testing methods as a hybrid approach, thereby improving overall software development quality and efficiency.
Link to popular science summary: To be uploaded
Link to Zoom presentation: https://lu-se.zoom.us/j/67126510875?pwd=MWhZeTQ1d1hJVlVKYzZnVlpLZloxUT09
14:15-15:00 in E:2116
Presenters: Ruben Wiklund, Johan Arrhén
Title: Pointer Analysis for Interactive Programming Environments
Examiner: Flavius Gruian
Supervisors: Idriss Riouak (LTH), Anton Risberg Alaküla (LTH)
Static program analysis is the practice of analyzing a program’s properties and behavior without executing it. It is a fundamental part of the compiler, enabling optimizations and error detection. It is also used in programming tools, such as IDEs, where it can be used for autocompletion and code navigation. Points-to analysis is a static program analysis that finds the set of objects that a pointer may point to during execution of the program. Many other analyses benefit from the result of a points-to analysis when analyzing programs with pointers, but the long execution times limit the use in interactive environments. Many algorithms for points-to analysis exist. In our thesis, we investigate how to speed up the points-to analysis Andersen’s Analysis. We introduce PECKA, a Reference Attribute Grammar based tool. It speeds up the execution time by only analyzing code which can be reached within k steps in the program’s call graph from a selected method. We found that when limiting the distance to three steps in the call graph from a method, PECKA could find 52% of the results with a 5x speedup compared to when using it to analyze the whole program. This enables running points-to analysis in an interactive environment. A limitation of this approach is that information can be missed in excluded methods, preventing use in, e..g., optimizing compilers.
Link to popular science summary: https://fileadmin.cs.lth.se/cs/Education/Examensarbete/Popsci/240613_14WiklundArrhen.pdf
15:15-16:00 in E:2116
Presenters: Andreas Bartilson, Jesper Kristiansson
Title: Did my kernel code execute?
Examiner: Flavius Gruian
Supervisors: Jonas Skeppstedt (LTH), Patrik Åberg (Ericsson)
Analysis and visibility of complex software systems is becoming increasingly more important and at the same time difficult to achieve. Comprehensive and extensive analyses of the popular operating system Linux can consequently prove invaluable. There are currently several options to choose from when analysing the Linux kernel, but all have one common denominator; analyses are based on events, system calls or function call stacks. With this thesis, we propose using a source code level probe-based approach by adapting the Ericsson-developed tool \textit{Did My Code Execute?} for kernel space use, to gain a new way of performing analyses on the kernel. We show that it is possible to use such an approach and provide a framework of considerations to make when writing kernel space probes and how to extract the collected data in an emulated environment. Additionally, we show that it is possible to generate a source code level trace of the kernel and show what performance implications probing different parts of the Linux kernel has.
Link to popular science summary: To be uploaded