Enhancing software performance through multithreading and parallel programming techniques

Otros/as autores/as

Martín Mínguez, Mónica

Fecha de publicación

2025-07-11

Resumen

Multithreading is a powerful yet complex area of software development, especially when applied to game engines. While professional ones include advanced multithreading systems, their internal implementations are rarely shared publicly. Moreover, existing tutorials often lack depth, leaving many developers unprepared for production level usage. This project aims to bridge that gap by providing a beginner-friendly and practical introduction to multithreading, answering essential questions around performance, architecture, challenges, and limitations. The goal is to create a custom solution built from scratch, offering a solid starting point for developers interested in concurrent programming and game engine architecture on how to use multithreading effectively. The state of the art on multithreading techniques is explored, from early platform-specific methods to standardized concurrency features in modern C++, including a market study of multithreading implementations in popular game engines. Furthermore, the necessary knowledge required to understand this project is covered on the theoretical foundations. The practical part of the project consists on developing a multithreaded game engine written in C++, featuring a Vulkan-based renderer to take advantage of its multithreading affinity. The chosen approach for the multithreading implementation is a thread-based job system built on top of a thread pool, implemented as a modular, header-only, cross-platform library. The development process is documented in a tutorial-style format, with explanations and code samples to help readers follow along and learn from the implementation. Through performance analysis, the project shows that multithreading takes advantage of the CPU cores to offer significant benefits when handling heavy workloads. While challenges like race conditions and deadlocks must be managed carefully, the conclusion is clear: multithreading is essential for modern, high-performance software, especially in game development. 3

Tipo de documento

Bachelor thesis

Lengua

Inglés

Publicado por

Universitat Politècnica de Catalunya

Citación recomendada

Esta citación se ha generado automáticamente.

Derechos

https://creativecommons.org/licenses/by-nc-sa/4.0/

Open Access

Este ítem aparece en la(s) siguiente(s) colección(ones)