IBM ha
annunciato la disponibilità di un compilatore open source, che
ottimizza le applicazioni tramite un processo di apprendimento automatico. Milepost GCC si inserisce nel più ampio progetto europeo
MILEPOST (Machine Learning for Embedded Programs Optimisation) ed è opera degli
IBM Haifa Research Lab.
Il nuovo strumento di sviluppo si adatta efficacemente all'architettura hardware su cui l'applicazione dovrà girare; in questo senso, può andare bene per server e desktop, ma soprattutto per i dispositivi mobili, dove l'hardware è spesso diverso e cambia rapidamente. Alcuni esperimenti, condotti sui server
IBM System p, hanno mostrato un incremento di prestazioni del 18% nelle applicazioni
embedded, che si può tradurre in un
time-to-market 10 volte migliore di quelli attuali.
Secondo un
documento,
il sistema funziona confrontando i risultati di compilazioni multiple, impostate con parametri in un ampio spettro di valori, e decidendo poi qual è la configurazione (o l'insieme di configurazioni) migliore. L'approccio utilizzato, che coinvolge un campo dell'Intelligenza Artificiale noto come
machine learning, permette di affrontare il campo dell'hardware riconfigurabile, dove i compilatori statici, specializzati per un unico sistema, hanno vita sempre più dura.
Il nuovo strumento combina la potenza di
GCC, che supporta 30 famiglie diverse di architetture, con la
Interactive Compilation Interface.
Esso è basato su modelli predittivi, tempi di esecuzione, contatori hardware e su un training offline; include inoltre lo
static program feature extractor, sviluppato anch'esso dagli
IBM Haifa Research Lab.
Al termine del progetto
MILEPOST (agosto 2009), tutte le successive modifiche di Milepost GCC confluiranno nei
cTuning tools, per consentire alla comunità degli sviluppatori ulteriori miglioramenti. È stato inoltre lanciato un
code-tuning web site, dove si può caricare il proprio codice e avere indicazioni sulle possibili ottimizzazioni.