[precedente] Interv. Linus - Copertina - Fiaba [successivo]

Articoli


Una piccola proposta

Qualche tempo fa mi sono lanciato nel predire per Linux un futuro radioso non solo nella classica veste di ``desktop avanzato'', o di server per internet/intranet (anche se sono perfettamente convinto che Linux sia ideale in questi ruoli). Ho pensato anche a quelli che sono i ruoli innovativi, in cui ancora non c'è una soluzione comparabile dal punto di vista tecnico o economico.

Uno di questi ruoli mi è venuto in mente parlando con uno dei miei soci, un fisico specializzato nella protezione dalle radiazioni. A forza di sentirmi parlare (pensate che pena per lui, poverino, che mi ascolta ogni giorno :-)), si è montato Linux sul suo powermac, ha superato i classici problemi di installazione, si è scaricato qualche compilatore ed ha cominciato il porting di un grosso programma di calcolo (EGS4, se a qualcuno interessa). A dire il vero il porting è durato giusto qualche giorno, e dopo mi ha rivelato tutto contento che gira come un portento, e la velocità è stratosferica.

Direte: ma che bello, un altro convertito. Sì e no... in realtà mi sono reso conto che Linux ha in sè la potenzialità di diventare la piattaforma standard per il calcolo scientifico e lo sviluppo, se supera alcuni (piccoli) problemi. Ma prima, vediamo perché Linux va bene in questo ruolo:

Ce ne sono certamente molte altre, ma purtroppo ci sono anche i lati negativi:

E allora? Visto che per i centri di ricerca e le università Linux rappresenta un vero e proprio ``regalo'', mi permetto di dare ai professori (o agli studenti intraprendenti che mi leggono) un suggerimento: Provate a proporre una tesi di laurea o un lavoro di dottorato legato ai temi del calcolo numerico sotto Linux (naturalmente se vi interessa il calcolo numerico :-)).

Dedicatevi alla ottimizzazione di una libreria, al porting o al ``restyling'' di una libreria abbandonata, anche solo alla documentazione. Bastano una decina di progetti per rendere Linux la migliore piattaforma di calcolo esistente.

E se siete già laureati (o non vi va di fare tesi su queste cose)? Beh, se trovate software interessante sulla rete, ``impacchettatelo'' e mandatelo su sunsite (occhio alla licenza, però!) oppure fate una bella paginetta di descrizione e mandatelo a comp.os.linux.announce. Così il software non si perde per strada, e magari qualcuno a cui serve veramente potrà lavorarci su.

Che ne dite? Nel mio piccolo continuerò a fare quello che ho sempre fatto, ossia scaricare e compilare tutto quello che incontro, e parlarne ai meeting... :-)

(Nota: le righe che seguono sono state aggiunte successivamente, visto il grande interesse suscitato dall'argomento già nella lista pluto-journal).

Uno dei problemi maggiori nello ``spremere'' il più possibile prestazioni dal codice numerico è dovuto agli incorretti allineamenti degli operandi, specialmente in macchine come la famiglia x86 o sparc. In questo senso il ruolo del compilatore è fondamentale, e solo da qualche tempo si sente la necessità di ottimizzare il generatore di codice del compilatore gcc (o egcs) in questo senso. Stessa cosa con la libc, che nelle prime release aveva dei macroscopici errori in questo senso, riducendo la velocità del codice di oltre il 30% nei programmi che richiedono il tipo double.

Cosa è cambiato adesso? Il back-end che genera codice nel compilatore sperimentale sta ricevendo un grosso lavoro di ottimizzazione, specialmente grazie alla Cygnus che ha donato una grossa parte dei sistemi di ottimizzazione globale e di aliasing. Ci si può aspettare quindi che l'egcs 1.1 (in preparazione a breve, sembra) sarà almeno a livello di un buon compilatore commerciale, e in certi casi particolari (specialmente con il C++ e non con il fortran) addirittura tra i migliori in assoluto.

Sul versante del calcolo parallelo ci sono notevoli progressi, anche se al momento la mancanza di un vero e proprio standard sta rallentando il lavoro vero e proprio di sviluppo di linguaggi e algoritmi paralleli. Sembra che l'MPI si stia avviando a diventare un tale standard, anche se in certi punti (specialmente la gestione delle sessioni e dei task) risulta inferiore al suo ``concorrente'' PVM. La scoperta che un cluster di PC può essere un buon supercomputer di fascia media ha comunque destato grande interesse, e quindi interesse in Linux che al momento rappresenta il ``tipo'' di unix maggiormente diffuso nelle università (dove molte di queste ricerche vengono portate avanti).

Manca ancora un punto unico per la documentazione sul calcolo scientifico per Linux, in cui vengano affrontati in modo organico questi problemi, e manca un ``repository'' unico in cui trovare i sorgenti. Manca anche un punto di scambio per questi problemi, e non si sa mai, tra chi legge potrebbe nascere l'idea di una mailing list...

di Carlo Daffara


[precedente] Interv. Linus - Copertina - Fiaba [successivo]