Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Apple apre i sorgenti di Grand Central Dispatch

Link copiato negli appunti

Grand Central Dispatch, una delle più recenti tecnologie presenti in Mac OS X 10.6 Snow Leopard, è stato rilasciato come prodotto open source. Apple, che ha sviluppato e consolidato questa tecnologia, ha "aperto i sorgenti" e li ha distribuiti vincolandoli alla Apache Software License. Questa è una notizia che ai più attenti risulterà certamente gradita, vista l´importanza strategica che Apple ha investito nei confronti di questa tecnologia.

Grand Central Dispatch è una tecnologia che consente di ottimizzare l´esecuzione del codice C sui sistemi multicore. Il concetto base è quello del "blocco di codice" (Blocks). L´applicazione viene suddivisa in blocchi di codice C, e questi utilizzando GCD vengono eseguiti dal sistema. Il programmatore deve indicare quali sono i blocchi di codice sequenziali, quali quelli che possono essere eseguiti in concorrenza, quali i gruppi di blocchi di codice da sincronizzare. GCD implementa un pool di thread general purpose già pronti per l´esecuzione, e provvede al dispatch, cioè alla distribuzione dei blocchi di codice tra i thread disponibili.

Stando a quanto dice Apple la presenza di un pool di thread già disponibili per il dispatch velocizza l´esecuzione delle applicazioni multithread, risparmiando una notevole quantità di istruzioni (binarie) per la creazione e terminazione dei thread.

Grand Central Dispatch in realtà è una libreria C di nome libdispatch, che dipende in parte dal sistema Mac OS X e che richiede una estensione del linguaggio C che va sotto il nome di "Blocks". Quest´ultima può essere vista come un insieme di notazioni aggiuntive da utilizzare nella scrittura del programma C per l´annotazione dei blocchi e la loro gestione.

Il rilascio di una tecnologia come GCD è certamente cosa ben gradita, anche se a questo punto bisognerà capire come usarla nel mondo Linux e che vantaggi ne deriveranno. Certamente, le prime due attività da effettuare saranno la depurazione da tutto il codice dipendente dal sistema Mac OS X e la realizzazione di una estensione GCC per supportare i Blocks.

Volendo essere realisti tra queste attività quella più complessa sarà certamente la seconda, e non tanto per questioni tecniche ma quanto per questioni legali. Infatti, stando a quanto scritto da Ars Technica, sembra che una estensione GCC per supportare i Blocks sia già stata sottoposta al team della GNU, ma è stata rifiutata per problemi di compatibilità di licenza.

Chi vuole utilizzare i Blocks e GCD potrà comunque farlo, ma dovrà far uso del compilatore LLVM e non di quello GCC.

Ora, però, al di la di tutte le problematiche tecniche e legali il punto è anche un altro: Linux e la comunità Open Source sono pronti per una tecnologia come GCD? Usare GCD significa riscrivere un´applicazione C secondo criteri ben precisi. Chi sarà disposto farlo?

Ti consigliamo anche