EVEREST (dEsign enVironmEnt foR Extreme-Scale big data analyTics on heterogeneous platforms) mira a sviluppare un approccio olistico per la co-progettazione del calcolo e della comunicazione in un sistema eterogeneo, distribuito, scalabile e sicuro per applicazioni big data ad alte prestazioni.
Ciò si ottiene semplificando la programmabilità di architetture eterogenee e distribuite attraverso un approccio di progettazione "data-driven", l'uso di AI con accelerazione hardware e attraverso un monitoraggio efficiente dell'esecuzione con un paradigma hardware/software unificato. EVEREST propone un ambiente di progettazione che combina modelli di programmazione allo stato dell'arte e standard di comunicazione emergenti, con estensioni specifiche del dominio nuove e dedicate.
Con questo approccio, EVEREST affronta il problema di far corrispondere i requisiti dell'applicazione (e dei dati) e le caratteristiche dell'hardware eterogeneo sottostante. Solo una corrispondenza ottimale potrò portare a un calcolo efficiente. In particolare, il consorzio EVEREST prevede che la creazione dei futuri sistemi di Big Data sarà ovviamente data-driven, ma anche caratterizzata da architetture complesse, eterogenee e riconfigurabili che dovranno essere ridisegnate o personalizzate in base alla natura e località dei dati, e alla tipologia di apprendimento / decisioni da eseguire.
Il progetto EVEREST sta ricevendo finanziamenti per 5 mln di euro e coinvolge 10 partner di sei paesi diversi (Italia, Svizzera, Francia, Germania, Repubblica Ceca e Slovacchia). Il Politecnico di Milano è uno dei principali partner del progetto. Il team POLIMI è composto dal prof. Christian Pilato, che è anche il Coordinatore Scientifico del progetto EVEREST, prof. Fabrizio Ferrandi, e il prof. Gianluca Palermo. Stanno studiando metodi di progettazione per sintesi di alto livello, controllori di memoria flessibili e adattamento dinamico. Queste tecniche verranno utilizzate per accelerare i kernel computazionali, coordinare i trasferimenti di dati tra i nodi del sistema e adattare dinamicamente il comportamento dell'applicazione.