As already mentioned in the “about me” section of this website, my research interests are rooted in high-performance and highly-distributed systems. More specifically, I focused my research activities on the models, approaches and algorithms to ease the task of efficiently using parallel and distributed systems, from different viewpoints.
In the following, you can find some topics, organized in areas, on which it is possible to develop a thesis. Some of those are also published on the Thesis boards (for the BSc and the MSc) provided by the Department of Computer Science of the University of Pisa.
Proposals for Master Theses:
Parallel and Distributed platforms for AI and/or BigData processing
By relying on the availability of a massive amount of data, Machine Learning technologies allow humans to let machines complete tasks that were impossible to delegate. To make this possible it is fundamental to be able to efficiently extract from the data their intrinsic training value.
- Optimization of the data exchange in deep learning frameworks for distributed AI workloads
- Exploitation of FPGAs for AI applications in conversational agents:
- Focus on the exploitation of field-programmable gate arrays (FPGAs) for AI applications in conversational agents.
- The thesis could explore different techniques for implementing conversational agents using FPGAs, such as using FPGA-based accelerators for natural language processing or speech recognition.
- The thesis could evaluate the performance and energy efficiency of the proposed approach, and compare it to traditional CPU or GPU-based approaches.
- Additionally, the thesis could investigate the use of this approach for specific conversational agents, such as chatbots or virtual assistants, and evaluate the effectiveness of the FPGA-based approach for different conversational use cases.
- Functional Programming Principles for FPGA Programming with OpenCL
- Field Programmable Gate Arrays (FPGAs) are increasingly used for accelerating compute-intensive applications due to their high parallelism and reconfigurability. However, programming FPGAs remains a challenging task that requires low-level hardware knowledge and expertise.
- This thesis will investigate a novel approach for FPGA programming using functional programming principles with OpenCL. We aim to investigate how functional programming principles can be used to optimize the exploitation of FPGAs and offer a higher level of abstraction to developers.
- One of the potential advantages of using functional programming principles for FPGA programming with OpenCL is that it can make the composition of functions easier and more intuitive.
- Improving Big Graph partitioning in GraphX, the use case of Pinterest pins and boards:
- This thesis could focus on improving big graph partitioning in GraphX for the use case of Pinterest pins and boards.
- The thesis could explore different techniques for partitioning large-scale graphs in GraphX, such as using vertex-cut or edge-cut partitioning schemes.
- The thesis could evaluate the performance and scalability of the proposed approach, and compare it to traditional partitioning techniques.
- Additionally, the thesis could investigate the use of this approach for specific applications, such as analyzing the relationships between Pinterest pins and boards, and evaluate the effectiveness of the improved partitioning approach for different big graph use cases.
Intelligent, Self-adaptive and Autonomic Management of Applications
The field of distributed computing is rapidly evolving, with new challenges and opportunities emerging as the scale and complexity of distributed systems continues to grow. The proposed theses focus on different aspects of distributed computing, such as the optimization of resource usage, the use of machine learning for dynamic management, and the design of innovative patterns for application management. These theses aim to address important practical challenges facing distributed systems in cloud/edge environments, and to provide new insights and approaches for building efficient and scalable distributed systems.
- Reinforcement Learning-based Optimization of Actor Systems for Scalable and Fault-tolerant Computing:
- Focus on the use of reinforcement learning for optimizing Actor systems for scalable and fault-tolerant computing.
- The thesis could explore different reinforcement learning algorithms, such as Q-learning or deep reinforcement learning, to dynamically adjust Actor behaviour based on the current system state.
- The thesis could evaluate the performance and scalability of the proposed approach, and compare it to static and other dynamic optimization techniques.
- Additionally, the thesis could investigate the use of distributed hash tables or other distributed data structures to improve the scalability and fault tolerance of Actor-based systems.
- Finally, the thesis could explore the use of Actor-based systems for specific applications, such as distributed graph processing or XR applications and evaluate the effectiveness of the reinforcement learning-based optimization approach for these applications.
- Decentralized Sidecar Pattern for Application Management:
- Focus on the design and evaluation of a decentralized sidecar pattern for application management.
- The proposed pattern would build on the well-known sidecar pattern, but instead of being limited to monitoring and configuration, it would also manage the application.
- The pattern would be designed to support a fully decentralized management of the application, by enabling sidecar instances to communicate and coordinate with each other without relying on a central controller.
- The thesis could explore different approaches for implementing the decentralized sidecar pattern, such as using peer-to-peer networks or distributed hash tables. The thesis could evaluate the performance and scalability of the proposed approach, and compare it to traditional centralized and semi-decentralized approaches for application management.
- Self-Adaptive Data Sharding Using Swarm Intelligence for Efficient Cloud/Edge Data Management:
- This thesis could focus on the design and evaluation of a self-adaptive data-sharding approach for efficient cloud/edge data management using swarm intelligence.
- The proposed approach would enable data to be dynamically partitioned and distributed across cloud and edge nodes based on changing workload and resource availability, using swarm intelligence techniques to optimize the sharding strategy.
- The thesis could explore different swarm intelligence algorithms, such as ant colony optimization or particle swarm optimization, and evaluate their effectiveness in optimizing data sharding for different workload patterns and resource availability scenarios.
- The thesis could also investigate the use of this approach for specific applications, such as big data analytics or machine learning, and evaluate the effectiveness of the self-adaptive data-sharding approach in optimizing application performance at runtime.
Highly distributed and decentralized computing approaches
These theses explore real-time analytics in distributed systems, scalable edge computing for IoT applications, and performance optimization techniques in distributed stream processing. Students investigate event-driven architectures, stream processing, and data visualization for real-time insights and decision-making. They explore efficient data processing and resource management at the edge for large-scale IoT applications. Additionally, they develop advanced optimization techniques to enhance the performance of distributed stream processing, optimizing real-time analytics and event processing through workload distribution, parallelism, and resource allocation.
- Real-Time Analytics and Decision-Making in Distributed Systems:
- Investigate real-time analytics techniques for distributed systems and their application in decision-making processes.
- Explore event-driven architectures, stream processing, and real-time data visualization in distributed environments.
- Scalable Edge Computing for Internet of Things (IoT) Applications:
- Explore the integration of edge computing and scalable distributed systems to support large-scale IoT applications.
- Investigate approaches for efficient data processing, real-time analytics, and resource management at the edge of the network.
- Performance Optimization Techniques for Distributed Stream Processing:
- Investigate and develop advanced optimization techniques to enhance the performance of distributed stream processing systems.
- Explore strategies such as workload distribution, parallelism, and resource allocation to optimize real-time analytics and event processing.
- Decentralized Data Management in Fog Computing Environments:
- Focus on the approaches for decentralized indexing and querying of multi-streams in the fog.
- The thesis could explore different approaches for decentralized data management in fog computing environments, and evaluate their performance and scalability.
- The thesis could also investigate the use of decentralized data management for specific applications, such as IoT or edge computing.
Distributed computing for Federated and Continual Learning
Here are some potential thesis research topics related to federated learning, consistency models, the relationship between reactive programming and continual learning, and concept drift management within the context of Scalable Distributed Computing:
- Federated Learning with Consistency Models:
- Investigate and develop consistency models for federated learning, which ensure synchronization and agreement among distributed model updates.
- Explore techniques to address challenges such as straggler nodes and communication bottlenecks in federated learning scenarios.
- Federated Reinforcement Learning for Resource Allocation in the Compute Continuum:
- Focus on the design and evaluation of a federated reinforcement learning approach for resource allocation in the compute continuum.
- The thesis could explore different algorithms for federated reinforcement learning, such as federated Q-learning or federated deep reinforcement learning, and evaluate their performance and scalability in a compute continuum setting.
- The thesis could also investigate the use of transfer learning techniques for federated reinforcement learning, to improve the efficiency of the learning process.
- The thesis could evaluate the performance of the proposed approach in terms of resource usage efficiency, and compare it to other resource allocation approaches such as centralized and distributed resource allocation.
- Federated Learning with Functional Reactive Programming on Edge Devices:
- This thesis could explore the use of functional reactive programming (FRP) for federated learning on edge devices. The thesis could investigate different FRP-based frameworks for federated learning and evaluate their performance and scalability on edge devices.
- The thesis could also explore how edge computing can be used for processing data from edge devices, and how federated learning can be used for training machine learning models on data from multiple edge devices.
- The thesis could investigate how FRP-based federated learning can be used for specific edge computing scenarios, such as anomaly detection or predictive maintenance, and evaluate the performance and scalability of the approach.
- Distributed Reactive Programming for Continual Learning:
- Explore the integration of reactive programming paradigms with continual learning approaches in distributed systems.
- Investigate how reactive systems can adapt to changing data distributions, handle concept drift, and facilitate continuous model updates and knowledge retention.
- Consistency Models for Distributed Deep Learning:
- Research and develop consistency models tailored for distributed deep learning systems.
- Explore approaches to ensure consistency and synchronization of model parameters and gradients across distributed nodes, while minimizing communication overhead.
- Resource-Efficient Federated Learning using Reactive Techniques:
- Investigate how reactive programming techniques can be leveraged to optimize resource utilization in federated learning setups.
- Explore strategies for adaptive scheduling, load balancing, and data partitioning to improve efficiency and scalability in distributed learning scenarios.
- Serverless Computing for Federated Learning:
- Serverless computing can be used for deploying federated learning algorithms, providing a scalable and cost-effective way to train models in a decentralized manner.
- This thesis could explore the use of serverless computing for federated learning, focusing on the design and evaluation of serverless functions for federated learning algorithms.
- The thesis could investigate different serverless computing platforms and evaluate their performance and scalability for federated learning.