Politecnico di Torino (logo)

Optimise tasks scheduling in automated builds: an RCPSP application with Buck

Alessandro Patti

Optimise tasks scheduling in automated builds: an RCPSP application with Buck.

Rel. Giovanni Malnati. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2019


Build tools have nowadays become a vital part of the software development life-cycle. With a constantly increasing size of the software projects and the spread of continuous integration and automated tests, build tools are required to guarantee both reliability of the build pipeline as well as competitive performance. Parallelise at best the jobs that a build tool performs during the build process awards indisputable benefits to companies in the market of software solutions. Nonetheless, this aspect of the build tools lacks extensive experimentation, as very few and limited optimisation are embedded in these tools. In this dissertation, we present an improved scheduling scheme developed for the Buck build tool at Uber. We do so by studying the evolution of the build tools in terms of design choices and characteristics of the most widely used build tools. We also review the literature on solution methods for the resource-constrained project scheduling problem, as it can be used to model a typical build process. We find that the adoption of a variation of a well-know heuristic is capable of significantly reduce the makespan of the build process with Buck.

Relators: Giovanni Malnati
Academic year: 2018/19
Publication type: Electronic
Number of Pages: 66
Additional Information: Tesi secretata. Fulltext non presente
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Ente in cotutela: EURECOM - Telecom Paris Tech (FRANCIA)
Aziende collaboratrici: UNSPECIFIED
URI: http://webthesis.biblio.polito.it/id/eprint/11043
Modify record (reserved for operators) Modify record (reserved for operators)