HAMS – Hardware Acceleration of MATLAB Simulations

Chiara Gatti e Guido Lanfranchi, due studenti al terzo anno di Ingegneria Biomedica al Politecnico di Milano alle prese con il progetto per la tesi di laurea.

Come i loro colleghi del progetto PrISMA e del progetto ProFAX, anche loro fanno parte del NECST Lab e concorrono per lo Xilinx Open Hardware Contest 2016.

La storia

“Durante il corso di IEIM (Informatica e Elementi di Informatica Medica) -spiegano i due studenti-, abbiamo conosciuto il prof. Santambrogio, nostro docente per la parte di Informatica, che ci ha fornito le basi della programmazione in C e dell’architettura dei calcolatori.

L’aver affrontato questa materia con lui ci ha portato a interessarci maggiormente al mondo dell’informatica. Da qui il nostro ingresso nel NECST Lab (Novel, Emerging Computing System Technologies) del Politecnico, dove abbiamo avuto modo di approfondire le nostre conoscenze in materia e di comprendere meglio l’impatto che le tecnologie informatiche possono avere sulla soluzione di problemi in ambito biomedicale.

Gradualmente, si è poi iniziato a sviluppare il tema del nostro progetto. Il nostro interesse comune per la Biomeccanica ci ha spinti a cercare un’applicazione in questo dominio, rivolgendoci ad alcuni docenti del LaBS (Laboratory of Biological Structures) al Politecnico. Abbiamo subito riscontrato un forte interesse da parte loro rispetto ai miglioramenti che alcune tecnologie informatiche usate al NECST avrebbero potuto apportare alle loro simulazioni: in particolare, lo sfruttamento di dispositivi hardware programmabili come le FPGA (Field Programmable Gate Arrays) consente di eseguire simulazioni computazionalmente intense in tempi brevi rispetto all’esecuzione su processori comuni, da loro generalmente utilizzati. Si è, quindi, arrivati a un incontro di interessi: i sistemi hardware sviluppati al NECST possono ridurre i tempi delle simulazioni e, allo stesso tempo, questo tipo di applicazione può essere un importante banco di prova adatto a dimostrare la validità dei sistemi in questione. Nell’ambito di questa collaborazione, sviluppatasi soprattutto con il prof. Pennati e l’Ing. Cutrì, è stata definita come caso di studio la simulazione della fluidodinamica di un ossigenatore per circolazione extracorporea (CEC).

Ossigenatore

La nostra tesi consisterà quindi nell’implementazione della soluzione relativa a questo specifico caso di studio, ma il nostro progetto si prefigge di andare oltre. HAMS, infatti, sta per Hardware Acceleration of MATLAB Simulations, e il nostro obiettivo è quello di sviluppare un’applicazione che consenta all’utente di beneficiare di una significativa accelerazione delle simulazioni senza doversi preoccupare della complessa fase di programmazione hardware, che spesso e volentieri può richiedere mesi.

Questo progetto si sta sviluppando nel laboratorio sotto la supervisione del prof. Santambrogio e di altri due ricercatori, l’Ing. Gabriele Pallotta e l’Ing. Gianluca Durelli”.

Abbiamo avuto inoltre l’occasione di esporre il nostro progetto a Stefano Olivieri, responsabile dei rapporti on le Università per MathWorks Italia; Stefano ci ha riportato l’interesse da parte dell’azienda per il nostro progetto, e ci ha anche dato la sua disponibilità per un eventuale supporto tecnico. Inoltre, ci ha proposto di esporre tramite poster il nostro progetto durante la manifestazione nazionale MATLAB EXPO 2016, che si svolgerà a Milano il 22 Giugno.

Il nostro progetto verrà inoltre sottomesso allo Xilinx Open Hardware Contest 2016, concorso europeo indetto da Xilinx, la maggior casa produttrice di FPGA al mondo, e rivolto a studenti che presentino progetti relativi a sistemi basati su FPGA. Su suggerimento del prof. Santambrogio abbiamo colto questa opportunità, e quindi avremo l’occasione di metterci a confronto con altri nostri compagni in laboratorio, sia con studenti da tutta Europa”.

Il progetto

Il nostro progetto mira lontano -continuano Chiara e Guido-, ma prima di andare lontano bisogna dimostrare che si stanno facendo le cose giuste e che le si sta facendo bene. Questo è ciò che vogliamo fare con il caso di studio relativo all’ossigenatore: dimostrare che l’implementazione HW di simulazioni in MATLAB può portare a miglioramenti significativi in termini di tempo di esecuzione e consumo energetico, se confrontata con la semplice esecuzione su General Purpose Processors (GPPs)”.

Il caso di studio dell’ossigenatore nasce da una problematica biomedica. Durante alcuni tipi di operazioni, come per esempio quelle a cuore aperto, si rende necessario evitare il passaggio del sangue in certi tratti del sistema circolatorio. Se l’operazione è lunga, non potendo bloccare la circolazione del sangue per troppo tempo si ricorre alla circolazione extracorporea: si estrae il sangue a partire dalla vena cava superiore e, in seguito a diversi passaggi tra cui per esempio l’ossigenazione e il riscaldamento, lo si reimmette in circolo attraverso il sistema arterioso e coronarico.

Circolazione extra-corporea

L’attenzione degli studenti si è concentrata su uno dei passaggi che vengono compiuti durante la CEC, quello dell’ossigenazione, che riproduce la funzione dei polmoni prelevando CO2 dal sangue e immettendovi O2. Questo scambio di sostanze è reso possibile dalla struttura del dispositivo, che è costituito da una serie di membrane avvolte concentricamente attorno a un tubo in modo da formare un mezzo poroso.

La fluidodinamica di un ossigenatore, in termini di campi di pressioni e di velocità, può essere studiata in due diversi modi:

  • con il metodo a elementi finiti;
  • con il metodo a parametri concentrati.

Dal momento che il primo metodo presenta un’interfaccia molto complessa e richiede l’utilizzo di software di calcolo molto costosi, si è sfruttato il secondo metodo. Il metodo a parametri concentrati divide il dispositivo in tanti cubi, per poi modellizzare ognuno di questi cubi con una resistenza idraulica. Tramite la legge alle maglie, mutuata dall’analogo elettrico, lo studio della fluidodinamica interna si riduce alla risoluzione di un sistema lineare, risolvibile tramite un’inversione di matrice. All’aumentare del numero N di resistenze idrauliche modellizzate, la dimensione della matrice aumenterà, facendo aumentare la precisione della soluzione, ma allo stesso tempo anche i tempi di calcolo.

SWOT analysis

 

L’inversione di matrice necessaria a risolvere questo problema può essere implementata in linguaggi di programmazione quali C e MATLAB, garantendo un’interfaccia molto semplice per l’utente. In particolare, ci siamo concentrati su MATLAB in quanto è molto usato in ambito biomedicale, proprio grazie alla sua semplicità di utilizzo e alla sua grande versatilità.  Il vantaggio derivante dall’impiego di un linguaggio semplice e di una interfaccia comoda, viene però poi pagato al momento dell’esecuzione: infatti l’implementazione in puro software è estremamente lenta, soprattutto se si vuole ottenere un risultato preciso. Ed è proprio in questo punto che subentra l’idea di HAMS, Hardware Acceleration of MATLAB Simulations: isolare il calcolo dell’inversione di matrice, che rappresenta la porzione computazionalmente più intensa dell’intera simulazione (80-85% del tempo totale), e eseguirlo su un dispositivo hardware riconfigurabile. Come dispositivo abbiamo scelto le FPGA, che rappresentano un ottimo compromesso tra velocità di esecuzione, consumi energetici, flessibilità e costi. La board individuata è la Xilinx Virtex7 VC707.

 Il prototipo

Nel concreto, l’obiettivo di questo progetto è quello di sviluppare un ecosistema in cui MATLAB e le FPGA possano coesistere e cooperare in maniera efficiente, consentendo all’utente di sfruttare le potenzialità delle FPGA mantenendo allo stesso tempo la semplicità e la versatilità che caratterizzano la programmazione in MATLAB. Verrebbe quindi nascosta all’utente il complesso aspetto della programmazione dei dispositivi, rendendo l’accelerazione fruibile anche per utenti completamente inesperti di programmazione hardware.

Contatti utili:

MAIL:

FACEBOOK:
www.facebook.com/hams.project

TWITTER:
https://twitter.com/HAMS_project

SLIDESHARE:
http://www.slideshare.net/HAMSproject

YOUTUBE:
https://www.youtube.com/channel/UCaovqRpUc7D_Uf2WJHL0rvA

Published by
Raffaele Salvemini