Prism: caccia ai bug nel passaggio al multicore

Nel passaggio al multicore possono verificarsi molti bug perché le risorse entrano in competizione tra loro

Il passaggio al multicore è il segreto per l’aumento delle prestazioni. Spesso però si verificano dei problemi a causa di conflitti di risorse: due parti di un programma tentano di utilizzare la stessa risorsa (memoria, dati, periferiche) e si scontrano in qualche modo. Freescale e CriticalBlue hanno realizzato un software di nome Prism che analizza il punto in cui le risorse entrano in conflitto per correggere velocemente il codice.

Dual core, quad core, multicore… e molti problemi!

Il passaggio al multicore è ampiamente accettato come la soluzione futura del settore informatico per soddisfare le esigenze di prestazione nell’ambito di un bilancio di potenza accettabile. Purtroppo, si hanno in mano milioni di righe di codice collaudato sul campo, ma scritto per un singolo core. Come fare per migrare in modo sicuro che ad un paradigma del tutto nuovo?

Chiunque passi ad un’architettura multicore è preoccupato per una particolare classe di bug legati all’elaborazione parallela. Questi sono in linea di principio gli stessi tipi di errori che si possono facilmente incontrare nei software multi-threaded: dipendenze dei dati (comportamento lento perché una parte di un programma è in attesa di un altro alla fine); condizioni di competizione (una funzione utilizza una risorsa prima che la risorsa sia pronta), o addirittura di stallo (in cui due diverse porzioni di un programma sono in attesa di un altro, con conseguente lock-up della CPU).

Come regola generale, tutti questi problemi col multicore sorgono a causa di conflitti di risorse: due parti di un programma tentano di utilizzare la stessa risorsa (memoria, dati, periferiche) e si scontrano in qualche modo. Il software che contiene questi problemi è una “risorsa errata.” Trovare questi problemi è estremamente difficile perché il programma deve essere in esecuzione. Anche allora le circostanze che causano il conflitto possono essere difficili da ricreare o prevedere. Quando si inserisce il software non corretto su una piattaforma multicore, le probabilità che si verifichino dei problemi sono anche superiori con le applicazioni multi-threaded. Questo perché i core eseguono in modo indipendente in modo che ci sia un’autentica elaborazione parallela e non solo un’accelerazione.

Prism: una possibile soluzione per il multicore

Ma Prism, un software di programmazione multicore, aiuta a risolvere il problema. Come? Freescale è impegnata in questo con CriticalBlue Ltd – un fornitore di software di analisi multicore con sede a Edimburgo. Usando il software LTE Layer 2 come banco di prova, hanno applicato CriticalBlue di Prism, un strumento di analisi del software multicore, per individuare rapidamente il codice sub-ottimale in esecuzione sul processore MPC8572. L’analisi ha permesso di migliorare le prestazioni del codice di quasi il 40 per cento. In termini reali, questo significa che si possono stipare in più canali e rendere la soluzione integrata più competitiva.

Freescale prevede di aggiungere nuove funzionalità fino al 2011. Il programma di sviluppo collaborativo fornisce strumenti integrati progettati per aiutare a identificare e quantificare rapidamente i vantaggi di lavorare in parallelo. Se state sviluppando un software per la migrazione o un multicore System-on-Chip, dovreste conoscere lo strumento Prism di CriticalBlue.

Come si può realizzare questo Prism? L’approccio di base è che si visualizza una timeline che mostra come un programma di software embedded e una risorsa incorporata vengono utilizzati nel corso del tempo col multicore. Se le diverse parti di un programma si basano sulla stessa risorsa, si può vedere quando e dove le parti entrano in conflitto e trovare l’origine dell’errore del software. Se ci sono situazioni di stallo o altri problemi come quelli che abbiamo visto prima, capirete dove guardare nel codice per cercare di risolverli.

Andando sul sito ufficiale di CriticalBlue, nella sezione dedicata a Prism, potrete scaricare una versione di prova del programma da utilizzare gratuitamente per trenta giorni.

10 Comments

  1. Francesco12-92 10 aprile 2011
  2. Giovanni Giomini Figliozzi 10 aprile 2011
  3. Francesco12-92 10 aprile 2011
  4. Antonio Mangiardi 7 aprile 2011
  5. Cosimo Candita 7 aprile 2011
  6. linus 7 aprile 2011
  7. FlyTeo 7 aprile 2011
  8. Giovanni Giomini Figliozzi 7 aprile 2011
  9. Antonio Mangiardi 7 aprile 2011
  10. FlyTeo 8 aprile 2011

Leave a Reply