Un confronto tra librerie di differenziazione automatica
Mostra/ Apri
Autore
Pilipov, Mikhail <1997>
Data
2026-10-14Disponibile dal
2026-10-22Abstract
La Differenziazione Automatica (AD) è una famiglia di tecniche che valuta le derivate di funzioni numeriche espresse sotto forma di programmi informatici. Trova applicazione in settori quali la fluidodinamica computazionale, le scienze atmosferiche e altri. Tuttavia, gli sviluppatori che intendono utilizzare l'AD nei propri progetti affrontano una sfida di ingegneria del software in questo ambito: decidere quale libreria AD adottare e come sceglierla affinché soddisfi i requisiti del progetto. Risolvere tale problematica richiede l'analisi delle librerie esistenti per comprenderne le limitazioni in termini di compilazione e prestazioni, nonché le architetture specifiche di ciascuna di esse. Inoltre, è necessario organizzare i test per identificare l'opzione migliore tra le librerie AD disponibili.
In questa tesi, indaghiamo questa problematica confrontando le librerie AD consolidate presenti nella suite Gradbench con una nuova libreria, XAD, utilizzata come caso di studio. Illustriamo l'infrastruttura di Gradbench e le sfide legate alla creazione di implementazioni in C++ per vari problemi matematici. A seguito dell'integrazione, valutiamo e confrontiamo XAD con le altre librerie di Gradbench lungo la complessità di integrazione e le prestazioni computazionali, analizzate mediante metodi statistici non parametrici.
Valutando XAD in diversi compiti matematici, i nostri esperimenti rivelano che le prestazioni di XAD dipendono dallo specifico problema in esame. All'interno della Gradbench, XAD risulta più lenta rispetto ad altre librerie. Inoltre, nella maggior parte dei casi, questo svantaggio non è compensato da una minore dimensione dell'implementazione, poiché XAD richiede una maggiore quantità di codice. Tuttavia, quando applicata ai numerosi calcoli ripetitivi del progetto ADOnMeshes, XAD ha registrato prestazioni nettamente superiori rispetto ad Adept, un'altra libreria AD dimostrando un elevato livello di efficienza per contesti matematici così specifici. Automatic Differentiation (AD) is a family of techniques that evaluates derivatives of
numeric functions expressed as computer programs. It has applications in areas including
computational fluid dynamics, atmospheric sciences, and engineering design optimization. However, developers looking to use AD in their projects, encounter a software
engineering challenge in this area: deciding which AD library to adopt and how to choose
it to match the requirements of the project. Resolving this challenge requires analyzing
existing libraries to understand their compilation and performance limitations, and specific
library architectures. Also, it is necessary to organize a testing process to identify the better
option among available AD libraries.
In this thesis, we investigate this challenge by comparing the established AD libraries in the
Gradbench suite with a new library, XAD as a case study. We explain the infrastructure
of Gradbench, the challenges of creating C++ implementations for various mathematical
problems, such as Gaussian Mixture Models, Matrix Determinants, Linear-Least Squares,
Ordinary Differential Equations. After the integration, we evaluate and compare XAD
against other Gradbench libraries across two dimensions: the complexity of integration and computational performance,
analyzed using non-parametric statistical methods.
By evaluating XAD across diverse mathematical tasks and scenarios , our experiments show that the
performance of XAD heavily depends on the specific task at hand. Within the Gradbench
suite, XAD is slower than other libraries like Enzyme and CoDiPack. Moreover, this dis-
advantage in most of cases is not compensated by a reduced implementation size, as XAD
requires a larger amount of code. However, when applied to the many repetitive calcula-
tions of the ADOnMeshes, XAD performed much better than Adept, another AD library,
demonstrating a high level of efficiency for such specific mathematical contexts.
Tipo
info:eu-repo/semantics/masterThesisCollezioni
- Laurea Magistrale [8404]

