Politecnico di Torino (logo)

Allowing prototyping of applications running on heterogeneous HW through a multi-tenant platform based on cloud microservices

Giuseppe Fanuli

Allowing prototyping of applications running on heterogeneous HW through a multi-tenant platform based on cloud microservices.

Rel. Gianvito Urgese, Fulvio Giovanni Ottavio Risso, Andrea Pignata. Politecnico di Torino, UNSPECIFIED, 2024

PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (1MB) | Preview

Neuromorphic engineering is an emerging field that aims to develop physical implementations of brain-inspired systems using electronic circuits. These circuits, drawing inspiration from the brain's architecture, offer several advantages over the traditional von Neumann architecture. These advantages include improved power consumption, enhanced adaptability and learning capabilities, real-time processing, and fault tolerance. As a result, neuromorphic technologies hold the potential to replace conventional approaches in various domains. However, it is important to note that existing technologies for neuromorphic computation, such as chips and boards, are still predominantly in the prototype stage. Consequently, they are often expensive and not readily available on the market. This limitation currently impedes the widespread adoption of these technologies in the development of IoT and industrial use cases. This thesis project aims to find a solution for this problem allowing users to prototype applications on a cloud platform based on microservices, guarantying a user-friendly access to the system through a web application accessible by a common browser, and run such applications on a heterogeneous hardware platform composed by several boards for neuromorphic and general-purpose computation. The platform allows tenants to develop, build, run, test and compare the results of their application on different boards to provide an overview of the state-of-the-art reached by such technologies. In the design stage, the user can take advantage of the flexibility and general-purpose nature of the platform, running different tools and application that he may need for his goals. Once the application is ready, the platform allows the user to deploy and run it on real HW, to verify the correctness of the results and check parameters like running time and power consumption. This is possible through a job scheduling system, which orchestrates all the resources by assigning incoming jobs to the available nodes according to the user needs. The user can interact with the platform through a user-friendly interface by means of well-known applications such as Visual Studio Code. This IDE is one of most used and powerful environments for developing software thanks to its integration with some features able to create a fully customizable interface which best address all the use cases and needs of the user. The infrastructure relies on two major open-source technologies: Kubernetes and Slurm. The former orchestrates the microservices to provide everything needed by the user to use the platform in the most user-friendly and effective way, the latter is used to orchestrate all the heterogeneous boards in order to assign the “jobs” created by the user and provide them the results of the computation. By combining these two technologies, it is possible to manage a distributed system without taking care the place of the various physical resources and managing a multi-layer infrastructure, completely transparent to the users, that improve the isolation between resources needed for the computation and resources needed to expose the cloud services.

Relators: Gianvito Urgese, Fulvio Giovanni Ottavio Risso, Andrea Pignata
Academic year: 2023/24
Publication type: Electronic
Number of Pages: 55
Corso di laurea: UNSPECIFIED
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: Politecnico di Torino
URI: http://webthesis.biblio.polito.it/id/eprint/30858
Modify record (reserved for operators) Modify record (reserved for operators)