La legge di Moore è una violazione della legge di Murphy. “Tutto migliora sempre di più”, così Gordon Moore commentava la legge che porta il suo nome, nel 2005. Egli formulò la legge con una semplice osservazione. Nel 1965 notò che il numero di componenti nei circuiti integrati era raddoppiato ogni due anni dall'invenzione del circuito integrato nel 1958. Pertanto, predisse che la tendenza sarebbe continuata per almeno dieci anni.
Le innovazioni architettoniche sono andate nella direzione dell'introduzione di concetti di parallelizzazione impliciti ed espliciti, e questo è stato utilizzato come un modo per aggirare gli ovvi limiti di miniaturizzazione e incremento di frequenza. A partire dal 2005 le CPU multicore sono state introdotte nell'architettura informatica di tutti i giorni, sia nei sistemi embedded che standard.
Il prossimo ovvio passo in questa direzione è stata l’architettura many-core. Pertanto, unità di calcolo in cui diverse decine di core sono collegati insieme. L'attuale stato dell'arte nell'architettura multicore è rappresentato dai processori GPU, dove centinaia di core di calcolo sono implementati all'interno di un singolo pacchetto.
In tale contesto i moderni codici di calcolo scientifico devono necessariamente confrontarsi con l’utilizzo di architetture eterogenee: CPU, GPU, FPGA, TPU. L’attuale progetto si propone di realizzare il porting su GPU e più in generale su piattaforme eterogenee, a seguito di un'accurata valutazione dei “colli di bottiglia” (bottleneck) di codici di interesse in ambito astrofisico ed osservazione del cosmo (e.g. Einstein-Boltzmann Solvers ) . Inoltre, ci proponiamo di sviluppare API (Application Programming Interface) Python che permettano una più rapida prototipazione di nuove procedure numeriche basate sui kernel computazionali dei codici suddetti.