C++ Manuale di Stile di C. Pescio

Wednesday, May 26th, 2010 | Author:
C++ Manuale di Stile

C++ Manuale di Stile

Scrivo questo veloce post solo per mettere al corrente chi passa da qui di una iniziativa di Carlo Pescio.

Correva l’anno 1995 e Carlo pubblicò un libro molto interessante e che è stato una pietra miliare della mia formazione informatica: “C++ Manuale di Stile” edito da Infomedia… anche se non ne è mai uscita una edizione aggiornata quanto presenta in questo libro è ancora molto attuale (su Programmazione.it potete trovare una breve recensione, che mi trova fondamentalmente d’accordo).

Ma questa è storia… la cosa importante è che Carlo ha deciso (ora che i diritti d’autore sono ritornati a lui) di iniziare un nuovo progetto collaborativo che riguarda proprio questo libro 🙂 .

Per maggiori informazioni vi mando direttamente a quanto detto da Carlo:

Cheers

C++ & OpenMP

Monday, May 24th, 2010 | Author:

Molto spesso a causa del mio lavoro mi trovo a dover implementare particolare algoritmi euristici sviluppati dal gruppo di ricerca con cui lavoro. Altrettanto spesso queste euristiche devono essere confrontate con la controparte esaustiva (o a forza bruta) per poter stimare quali sono i reali vantaggi nell’utilizzo dell’euristica rispetto ad un approccio a forza bruta. Fondamentalmente si è interessati a confrontare il rapporto qualità della soluzione rispetto al tempo “risparmiato” al crescere della dimensione del problema. Recentemente mi è capitato di dover lavorare su un problema la cui dimensione cresceva esponenzialmente rispetto ai dati di ingresso: come è facile immaginare la ricerca di una soluzione esaustiva diventava impraticabile (considerando i tempi necessari per poterla ricavare) anche con relativamente pochi dati iniziali. Proprio per questo ho fatto una veloce ricerca per vedere se riuscivo a trovare una libreria che mi permettesse con poco sforzo di parallelizzare l’algoritmo esaustivo in modo da poter sfruttare gli otto thread paralleli (ripartiti su 4 processori) disponibili sul mio Intel core i7 Q720.

Sono stato fortunato due volte:

  • prima fortuna: mi sono imbattuto in questa API: OpenMP (The OpenMP API specification for parallel programming);
  • seconda fortuna: viene supportata sia da MS Visual C++ (dalla versione 2005) che da GCC… anche se sotto Visual C++ non è possibile utilizzare la versione più recente (la 3.0) ma solamente la (2.0).

OpenMP mi è sembrata subito una risposta interessante al mio problema iniziale e quindi ho deciso di provarla sul campo e ne sono rimasto piacevolmente soddisfatto. Non potendo riportare qui quello su cui sto lavorando (l’articolo non è ancora uscito) vi presenterò un esempio ad hoc e vedremo come “modificarlo” (operazione necessaria utilizzando la versione 2.0 di OpenMP) e analizzeremo i miglioramenti di prestazioni ottenuti.

more…

I computer si “impallano”… noi no

Thursday, May 13th, 2010 | Author:
Bacterium vs Linux

Sulla sinistra la rete che rappresenta il E. Coli. Sulla destra la struttura che rappresenta il Sistema Operativo Linux.

Gli studiosi dell’Università di Yale hanno recentemente condotto una interessante ricerca in cui comparano la struttura di un moderni Sistemi Operativi con quella degli organismi viventi, partendo dall’interessante analogia per cui il Genoma può essere considerato il Sistema Operativo per gli esseri viventi. Per l’esattezza hanno comparato un Sistema Operativo basato su Linux con un bacterium Escherichia coli.

I risultati sono interessanti e sono fondamentalmente riassunti dall’immagine presente in questo post.

In questa immagine si può notare sulla sinistra la rete (di controllo) del bacterium Escherichia coli, mentre sulla destra è rappresentata la rete (di chiamate) del sistema operativo Linux. Come si vede entrambe le reti sono organizzate in gerarchie, ma hanno una fondamentale differenza.

La rete del bacterium è organizzata a livello piramidale dove “in cima” sono presenti pochi geni che organizzano il lavoro dei geni che si trovano “alla base” che possono lavorano in modo indipendente e parallelo. La rete del Sistema Operativo, invece, è quasi completamente invertita: le funzionalità di un Sistema Operativo (“in cima”) sono costruite a partire da poche funzionalità comuni (“in basso”).

more…

Next

Thursday, May 06th, 2010 | Author:
Next di Baricco

Next di Baricco

Quando ho iniziato a scrivere questo posto la prima frase era: “Settimana scorsa ho letto Next“… ma era ben il 6 novembre 2009… ormai sono passati ben 6 mesi. La metà di un anno… WOW (sono ancora capace a fare 6 diviso 12 nonostante l’età … eh si… perché in questi  mesi sono anche “diventato più grande di un anno” 😛 ) che è scappato via tra vari impegni e pochi post “ritenuti” più urgenti.

Quindi è meglio che cambi quella prima frase e che la trasformi in qualcosa del tipo:

esattamente 6 mesi più una settimana ho finito di leggere Next di Alessandro Baricco (ed. Feltrinelli), un piccolo libercolo (sono solamente 100 pagine) pubblicato nel 2002  che tratta di un argomento che ancora oggi è sulla bocca di tutti nonostante nessuno sappia bene cosa sia: la globalizzazione. Il titolo completo di quest’opera è “Next: piccolo libro sulla globalizzazione e sul mondo che verrà”.

Forse qualcuno si chiederà perché sono andato a prendere un libro così, soprattutto con tutto quel parlare che si sente sui giornali e alla televisione di Globalizzazione (la G maiuscola non è un refuso… ma una scelta consapevole per sottolineare l’importanza che i media le attribuiscono).

more…

Alice Underground

Wednesday, April 28th, 2010 | Author:
Il Cappellaio Matto

Il Cappellaio Matto

No… non sto per parlare di una nuova opera di Gibson (immaginate una versione cyberpunk della Alice di Lewis Carroll) … sto per parlare dell’Alice “quasi” originale portata recentemente sul grande schermo.

Ma prima di tutto una precisazione: il titolo di questo post non è una mia invenzione:  infatti, la prima stesura dell’opera di Carroll si chiamava esattamente così 😉 .

Naturalmente, come avete intuito dalla prima riga  non sono qui per parlarvi dell’opera di Carroll (per quanto mi piaccia tantissimo), ma del recente “Alice in Wonderland“: film del visionario regista Tim Burton e con la partecipazione dell’eclettico Johnny Depp nei panni del Cappellaio Matto. Lo so che ormai il film è uscito da qualche tempo e che quindi questo post nasce “già vecchio”, ma vi posso garantire che non è stato un “parto” facile: sia perché è stato un periodo abbastanza intenso al lavoro (ma di questo non vi importa molto 😉 ) ma soprattutto perché non è facile trovare qualcosa da dire in positivo o in negativo su questo film.

more…