Il full-text non è disponibile per scelta dell'autore.
(
Contatta l'autore)
Abstract
Program synthesis is the task of automatically finding a program in an underlying Domain-Specific Language (DSL) that satisfies a specification provided by the user.
In recent years the topics of program synthesis and in particular programming-by-example (PBE), a branch of program synthesis that uses input-output examples as specification, have gained significant traction, also thanks to the use of PBE tools in commercial applications, such as Excel'sFlashFill.
Program synthesis is often considered as a difficult search problem, and one of the main focus of synthesis algorithms is to reduce and efficiently explore the search space.
In addition to these techniques some synthesizers parallelize the search to improve performance, but the benefits of this optimization is still severely limited.
In this thesis I explore the possibility of using distributed systems to further improve the performance of synthesis algorithms by increasing the number of parallel searches.
I introduce an algorithm for PBE that aims to efficiently parallelize the search over a distributed system and implement it into a framework, then analyze the performance of the framework and which characteristics influence the effectiveness of distributed synthesis using instantiations for the string transformation and SQL domains.
The evaluation of these instantiations on existing benchmarks shows that the developed algorithm allows performance comparable to that of current state-of-the-art techniques when used in a serial manner, and can also obtain a speedup of over 3x by using 5 parallel searches over a small distributed system.
Abstract
Program synthesis is the task of automatically finding a program in an underlying Domain-Specific Language (DSL) that satisfies a specification provided by the user.
In recent years the topics of program synthesis and in particular programming-by-example (PBE), a branch of program synthesis that uses input-output examples as specification, have gained significant traction, also thanks to the use of PBE tools in commercial applications, such as Excel'sFlashFill.
Program synthesis is often considered as a difficult search problem, and one of the main focus of synthesis algorithms is to reduce and efficiently explore the search space.
In addition to these techniques some synthesizers parallelize the search to improve performance, but the benefits of this optimization is still severely limited.
In this thesis I explore the possibility of using distributed systems to further improve the performance of synthesis algorithms by increasing the number of parallel searches.
I introduce an algorithm for PBE that aims to efficiently parallelize the search over a distributed system and implement it into a framework, then analyze the performance of the framework and which characteristics influence the effectiveness of distributed synthesis using instantiations for the string transformation and SQL domains.
The evaluation of these instantiations on existing benchmarks shows that the developed algorithm allows performance comparable to that of current state-of-the-art techniques when used in a serial manner, and can also obtain a speedup of over 3x by using 5 parallel searches over a small distributed system.
Tipologia del documento
Tesi di laurea
(Laurea magistrale)
Autore della tesi
Tremamunno, Luca
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
Program synthesis,Programming by examples,Distributed computing
Data di discussione della Tesi
26 Marzo 2021
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Tremamunno, Luca
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
Program synthesis,Programming by examples,Distributed computing
Data di discussione della Tesi
26 Marzo 2021
URI
Gestione del documento: