Skip to main content

Article Category

Article available in the folowing languages:

Strumenti software innovativi ottimizzano la codifica per l’elaborazione parallela

La maggior parte del software per dispositivi a più processori è inefficiente ma nuovi strumenti permettono di ottimizzarli.

Economia digitale

I primi personal computer e dispositivi palmari utilizzavano un unico processore, o «cervello». Erano inefficienti per i calcoli di grandi dimensioni a causa delle strozzature del processore. Un’alternativa molto più potente è il calcolo parallelo. Questo significa suddividere i calcoli di grandi dimensioni in parti più piccole, distribuite su più chip. L’idea esiste fin dagli albori dell’informatica, ma per molto tempo si è limitata a macchine dalle prestazioni estreme. Poiché il costo dei processori aggiuntivi si è ridotto, negli ultimi anni sono stati progettati molti computer di livello inferiore, console di gioco e altri dispositivi, che comprendevano processori multipli. I processori supplementari erano inizialmente specializzati per funzioni particolari, ma ora i processori generici possono essere programmati per la maggior parte dei compiti.

Il problema dell’ottimizzazione

Il problema è la difficoltà di scrivere un codice informatico che assegni i calcoli a particolari processori. Gli ingegneri del software possono farlo per un massimo di quattro processori, anche se questo richiede molto tempo. Con l’aumento del numero dei processori, l’ottimizzazione dell’allocazione diventa sempre più difficile. Per questo motivo, il software attuale raramente utilizza la piena capacità di elaborazione di un dispositivo. Gli ingegneri di software devono considerare molti fattori, tra cui il numero di processori da utilizzare, quali parti di un’applicazione devono essere eseguite su quale processore e se i processori devono essere specializzati. Il progetto PHANTOM finanziato dall’UE ha contribuito a semplificare le cose. «Volevamo automatizzare il processo di decisione su come organizzare un programma eseguibile su più processori, in modo da raggiungere determinati obiettivi», spiega Scott Hansen, coordinatore del progetto. «Ad esempio, alcuni sistemi devono sempre rispondere entro un determinato periodo di tempo, mentre altri devono ridurre al minimo il consumo energetico. Altri ancora hanno bisogno di massimizzare l’uso del processore per risolvere un problema il più velocemente possibile». Il team di progetto ha esaminato la possibilità di creare strumenti per aiutare gli ingegneri di software e i programmatori a trovare il modo migliore per affrontare questi obiettivi a volte contrastanti.

Nuovi strumenti

Il team ha sviluppato con successo una serie di strumenti innovativi che includono algoritmi molto sofisticati, in grado di automatizzare il complesso processo decisionale necessario per ottenere l’ottimizzazione dell’elaborazione parallela per lo scopo previsto. Il team ha inoltre sviluppato capacità di apprendimento avanzato che monitorano le applicazioni mentre sono in esecuzione e ottimizzano dinamicamente i processori disponibili in base all’utilizzo in tempo reale. La creazione di tali strumenti sarebbe stata al di là delle capacità dei singoli partner del consorzio. «La collaborazione nell’ambito del programma Orizzonte 2020 dell’UE ha reso possibile tutto ciò», afferma Hansen. «Avevamo anche partner industriali molto forti che hanno verificato che gli strumenti sviluppati avrebbero fatto un’enorme differenza per i loro ingegneri e di conseguenza per gli ingegneri di tutta Europa in molti settori industriali». I partner industriali di PHANTOM hanno convalidato i nuovi strumenti, utilizzandoli per sviluppare applicazioni industriali su sistemi multiprocessore complessi. Gli strumenti sono disponibili al pubblico in versioni open-source. Sono facili da installare e consentono agli ingegneri di valutare gli strumenti. I partner commerciali del progetto offrono anche versioni a pagamento, abbinate a servizi di consulenza e personalizzazione. Gli attuali metodi di programmazione per processori multipli di solito portano a un sottoutilizzo della capacità. Raggiungere l’ottimizzazione va oltre le capacità di tutti gli ingegneri, ad eccezione di quelli più specializzati ed esperti. Inoltre, i costi di formazione del personale a questo livello vanno oltre i mezzi della maggior parte delle organizzazioni. Con i nuovi strumenti del progetto PHANTOM, gli ingegneri di software saranno ora in grado di scrivere applicazioni che consentono una completa ottimizzazione. Ciò aumenterà la produttività, ridurrà i costi e accorcerà i tempi di sviluppo delle applicazioni.

Parole chiave

FANTOM, software, processore multiplo, ingegnere di software, codifica, calcolo parallelo, elaborazione parallela

Scopri altri articoli nello stesso settore di applicazione