19 marzo 2011

Singolarita': il problema del software meno problematico del previsto?

Recentemente, Ugo Spezza a scritto un articolo sul problema hardware-software, nel contesto di una possibile singolarita' tecnologica. Adesso, un lettore mi ha segnalato uno studio della Casa Bianca sulla ricerca e sviluppo USA in networking e information technology (qui in formato PDF), che sembra giungere a conclusioni piu' ottimistiche (si noti pero' che il tema della singolarita' non e' nemmeno preso in considerazione). Da un articolo al proposito di Punto Informatico:

I progressi dell'hardware resi possibili dalla legge di Moore? Uno scherzo, almeno in confronto a quanto gli algoritmi software sono progrediti nel giro degli ultimi tre lustri. È quanto sostiene una ricerca commissionata dalla Casa Bianca, che prende in esame i risultati storici di un "benckmark standardizzato" e decreta: è il software il vero motore del progresso tecnologico moderno [...] Grazie alla legge di Moore, dicono i ricercatori, le capacità computazionali dei circuiti integrati sono cresciute di mille volte nel giro di 15 anni, ma nello stesso arco temporale la velocità di esecuzione degli algoritmi software è cresciuta di ben 43mila volte.
Qui anche un articolo di Gizmodo al proposito: Study: Software Kicking Hardware’s Ass in Tech Progress

5 commenti:

Anonimo ha detto...

Da programmatore posso dire che un ottimizzazione lato software può velocizzare un algoritmo di un fattore 10, 100 o anche di più. Questa però è anche un'arma a doppio taglio, nel senso che una mancata ottimizzazione può rallentarlo notevolmente.

Inoltre gli algoritmi fatti bene sfruttano tutte le componenti hardware. Per cui se un nuovo computer ha un processore 10 volte più veloce e 10 volte tanta RAM l'algoritmo idealmente potrebbe essere 100 volte più veloce.

Anonimo ha detto...

Troppo ottimistico.

Parlando in termini estremamente semplificati, ad ogni problema è associato un lower bound che esprime il numero minimo di operazioni che un qualsiasi algoritmo (indipendentemente da quanto sia complesso) deve eseguire per risolvere parte delle istanze di tale problema. Quindi, se per un dato problema si sta già utilizzando un algoritmo ottimale, non c'è speranza di fare meglio.

Esempio banalissimo: Se devo sommare n numeri dovrò necessariamente fare n-1 somme (ed è impossibile farne di meno perché devo comunque leggere gli n numeri).

Altro esempio: dati n numeri, esisteranno delle istanze che per essere ordinate necessitano di un numero di confronti che ha l'andamento della funzione n*log(n)

Anonimo ha detto...

Attenzione: sappiamo tutti benissimo che i software si sono molto evoluti in numero e diversificazione e probabilmente anche il codice macchina è oggi molto più efficiente che in passato. Ma qui non stiamo parlando di efficienza computazionale né di un numero elevato di programmi disponibili. Qui stiamo invece parlando di quei pochi, pochissimi software "high quality" in grado di gestire interazioni multiple con la mente di un essere umano esseri umani (ovvero con intelligenze di tipo senziente). Questi ultimi sono attualmente i sistemi operativi (Linux, Windows, Netware e gli s.o. per i cellulari...), i software di controllo dei mezzi militari e quelli di controllo dei Robot industriali e antropomorfi (Aldebaran Robotics, Sony, MIT...) e qui i progressi sono difficilissimi poichè la complessità di questi sistemi supera i limiti del cervello umano tanto che le case produttrici sono costrette (come detto nel mio precedente testo) a commissionare lo sviluppo del sistema complessivo dividendolo in numerose parti e affidando lo sviluppo di esse a gruppi di esperti iperspecializzati. Consideriamo ad esempio come era il robot Asimo (Sony) 20 anni fa e come è ora; sicuramente è meglio ma non è affatto una macchina senziente...
A quanto pare nessuno ha capito questo concetto, nemmeno David Orban, che ho visto nei commenti probabilmente a causa di una lettura superficiale. Tuttavia la probabile soluzione al "Problema del Software" la propongo su un prossimo post "Adam and Eve" che uscirà su queste pagine tra qualche giorno...

Ugo

Anonimo ha detto...

Non sono un esperto, ma credo che, in fatto di Singolarità Tecnologica, ossia della nascita di una superintelligenza, stiamo grandemente sottovalutando un aspetto. E' indubbio che l'hardware abbia fatto passi da gigante ed il software, comunque la si vedi, è innegabilmente migliorato, tuttavia hardware e software non sono gli unici mezzi che possono condurci ad una Singolarità. Il fattore trascurato è quello umano. Ci sono circa 7 miliardi di intelligenze senzienti che sono in grado di collaborare e che, grazie ad Internet possono collaborare a livello intellettivo ad un ritmo e su una scala senza precedenti. L'ipotesi meramente tecnologica, ossia quella che una superintelligenza sia debba essere ottenuta come una creazione da zero è singolare, se si tiene conto appunto dei 7 miliardi di intelligenze biologiche autosenzienti già esistenti. Pensando in collettivo anzichè al potenziale delle singole intelligenze, la storia ci rivela che una forma molto rudimentale (eppure efficacissima) di superintelligenza l'abbiamo ottenuta già secoli fa con la scrittura prima e la carta stampata poi (nessuna cultura orale, per quanto sofisticata potrebbe conservare l'attuale mole di conoscenze). Di recente poi la capacità cognittiva di massa del pianeta è notevolmente aumentata grazie ai pc ed alle moderne tecnologie di telecomunicazione. Il processo è continuato con Internet e, successivamente, grazie ad alcuni suoi peculiari strumenti, quali motori di ricerca affidabili, social networks, calcolo distribuito, enciclopedie online open, traduttori automatici e tanto altro ancora. La capacità cognitiva complessiva del pianeta terra, a ben vedere, è attualmente in una fase espansiva senza precedenti in millenni di storia umana. Con la sempre maggiore diffusione di dispositivi mobile evoluti e reti superveloci, non si vede perchè non dovrebbe crescere ancora più velocemente nel futuro immediato. Si potrebbe tuttavia seguire una pista ancora più ambiziosa: anziché lasciare che questo sviluppo intellettivo avvenga spontaneamente e casualmente, si potrebbe ricercarlo e favorirlo in modo mirato e consapevole. Un nuovo strumento (simile a wikipidia o facebook o la bloggosfera), ma espressamente dedicato alla "coltivazione" intellettiva di Internet su scala multidisciplinare avrebbe, io credo, riscontri immediati ed entusiasmanti. Pensate alle infinite potenzialità di brain storming di massa volti a trovare ed implementare sempre nuove strategie di amplificazione intellettuale, oppure di reti semantiche aperte ed interfacciabili a traduttori automatici, o ancora al completamento tramite semplice traduzione delle versioni linguistiche di wikipedia meno ricche di informazioni, ecc... ecc... ecc...
Non ci sono limiti a quello che possono fare persone unite, tantomeno se sono milioni. L'unione, infatti, com'è noto, ha sempre fatto la forza e in un futuro assai prossimo potrebbe fare anche l'intelligenza... ops! volevo dire la superintelligenza. Il bello è che lo sviluppo hardware e software non sono minimamente in contrasto anzi!

Anonimo ha detto...

Interessantissima tutta la discussione. Ho un dubbio.
Da quel che avevo capito, la singolarità (ho ordinato via Amazon il libro di Kurzweil ma non l'ho ancora letto se non per i capitoli pubblicati in internet) potrebbe venire in seguito alla fusione tra intelligenza artificiale e intelligenza biologica intesa come impianti nel cervello, in un futuro non ben definito, di marchingegni capaci di ampliare le facoltà del cervello stesso. Quello che chiamiamo intelligenza, anche se ancora non abbiamo una definizione ben precisa e largamente accettata di che cosa sia.
Claudia Marinelli.