venerdì 12 maggio 2017

VON NEUMANN E BACH: ARCHITETTURA DEL COMPUTER ED ARTE DELLA FUGA

L'ungherese (poi naturalizzato statunitense) John von Neumann (1903-1957) è stato uno dei matematici più proficui del XX secolo, fornendo decisivi contributi in svariati campi della matematica, ma anche in fisica, in economia e in informatica.
Si dice infatti di lui che fu probabilmente l'ultimo dei matematici ad avere una visione completa di tutta la matematica.
Per farsi un'idea delle capacità mostruose della mente di von Neumann, basta leggere l'aneddoto di cui ho parlato qui.
Ma che c'entra von Neumann con Johann Sebastian Bach (1685-1750), il grandissimo compositore tedesco, noto anche ai non patiti di musica classica grazie alla celebre Aria sulla quarta corda, divenuta sigla del programma Superquark?



Il nonno di von Neumann era un grande appassionato di musica e ai tempi era una delle poche persone a possedere un grammofono.
Nelle famiglie borghesi dell'epoca si era soliti formare, nei limiti delle possibilità, piccole orchestre da camera familiari.
Il piccolo János (nome di von Neumann all'anagrafe) imparò a suonare il violino e, anche se alla fine abbandonò l'intento di una carriera da musicista per sviluppare le sue notevoli doti da matematico, non perse mai la sua passione per la musica.
Una delle opere musicali che suscitò maggiormente l'interesse di von Neumann fu appunto l'Arte della fuga, un insieme di 14 fughe e 4 canoni che Bach compose al fine di esemplificare le tecniche del contrappunto.
Secondo la testimonianza del fratello Nicholas, l'Arte della fuga di Bach fu la fonte di ispirazione che, anni dopo, fece pensare von Neumann alla possibilità che un computer non avesse un programma previo assegnato, spingendolo così verso la realizzazione dell'archittetura dei computer che porta il suo nome.
Ci proponiamo dunque di spiegare in modo semplice la storia e le basi dell'architettura di von Neumann e poi l'Arte della fuga di Bach.
Nel luglio 1943 alla Moore School of Electrical Engineer dell'Università della Pennsylvania, situata a Philadelphia, si incominciò a costruire un computer che avrebbe segnato una vera e propria pietra miliare nella storia della computazione: l'ENIAC (Electronic Numerical Integrator and Computer).
Si trattava di un progetto top secret, il cui nome in codice era PX.
L'ENIAC viene ritenuto da alcuni il primo vero computer della storia, anche se forse il primato andrebbe attribuito al Colossus, attivato verso la metà di febbraio del 1944 e progettato dal matematico Max Newmann, ispiratosi ai lavori del padre dell'informatica, Alan Turing, di cui abbiamo parlato approfonditamente qui.
L'ENIAC costò circa 8.000 dollari e venne finanziato dall'esercito.
Misurava 30 metri di lunghezza e pesava 32 tonnellate.
Funzionava grazie a 17.468 valvole a vuoto che dissipavano così tanto calore che la temperatura della stanza in cui la macchina lavorava spesso e volentieri si innalzava sino a 50 °C.
L'ENIAC era in grado di memorizzare soltanto 20 numeri, ma il suo difetto principale consisteva nel fatto che per cambiare un programma bisognava riconfigurare i suoi circuiti, operazione che poteva durare anche svariati giorni.
Un ulteriore grosso problema del suddetto computer era il fatto che il tempo in cui funzionava correttamente era assai inferiore al tempo in cui era guasto.
Nonostante tutte queste problematiche non di poco conto, l'ENIAC fu utilizzato per 10 anni, compiendo in quel lasso di tempo più calcoli matematici di quelli realizzati fino ad allora nella storia dell'umanità.
E von Neumann?
Il suo contatto con l'ENIAC fu del tutto casuale.
Il matematico statunitense Herman Heine Goldstine (1913-2004) si arruolò nell'esercito all'inizio della Seconda Guerra Mondiale.
Lavorò con il grado di tenente nel BRL, ovvero il laboratorio di ricerca balistica di Aberdeen, nel Maryland.
Da esperto nella preparazione di tavole da tiro si era reso conto dell'impellente necessità di rendere automatici i noiosi e lunghi calcoli attraverso un qualche tipo di calcolatore elettronico.
Non sorprende dunque che costui accettò di fare da intermediario tra la Moore School (a Philadelphia), incaricata della costruzione dell'ENIAC, e Aberdeen.
Nell'estate del 1944, Goldstine incontrò per caso von Neumann nell'atrio della stazione ferroviaria di Aberdeen.
Goldstine non lo conosceva di persona, tuttavia aveva partecipato a diverse sue conferenze e decise perciò di avvicinarlo.
Gli argomenti iniziali della conversazione furono di poca importanza, sino a quando Goldstine non si lasciò sfuggire che stava lavorando alla costruzione di un nuovo computer.
A questo punto l'atteggiamento di von Neumann mutò improvvisamente e, secondo quanto racconta lo stesso Goldstine, gli fece il terzo grado.
Dallo stile delle domande, Golstine capì che aveva di fronte un esperto in quel campo, così decise di invitare von Neumann al centro di ricerche di Moore per metterlo direttamente in contatto con gli ingegneri John Mauchly e Prosper Eckert, coloro che si stavano occupando della progettazione dell'ENIAC.
Di fronte al nuovo computer, von Neumann chiese a Eckert la struttura logica del sistema, una domanda chiave affinché gli ingegneri dell'ENIAC gli aprissero le porte a una collaborazione duratura.
Von Neumann ragionò sulla possibilità di progettare un insieme di istruzioni che fossero un riflesso fedele di tutti i passaggi che si facevano con carta e penna nella risoluzione di un problema e che, a sua volta, tale insieme di istruzioni potesse venir memorizzato nella memoria centrale.
Per consentire che questo insieme di dati potesse entrare in un computer, bisognava dotarlo di una nuova unità, differente da quella dedicata ai calcoli, di modo che da un lato si potessero far entrare indistintamente dati e programmi e dall'altro raccogliere i risultati.
Un'idea questa di von Neumann che anticipò il concetto a noi molto familiare di software.
Pertanto, nel 1945, nel Laboratorio Nazionale di Los Alamos si incominciò a lavorare al progetto di un nuovo computer che avesse dei programmi memorizzati.
L'architettura di von Neumann corrisponde nientemeno che al concetto di programma memorizzato.
Oggi esistono computer con programmi memorizzati, per esempio una calcolatrice tascabile con cui è possibile eseguire una serie di calcoli complessi, ma con cui non si può scrivere un testo.
In un pc, invece, se abbiamo bisogno di un determinato programma che ci consenta di scrivere testi, è sufficiente installarlo e lavorarci sopra.
Ma non è stato sempre così.
Abbiamo infatti già osservato come nei primi computer, ENIAC compreso, cambiare programma significava cambiare la struttura, e per farlo si doveva realizzare uno schizzo con carta e penna per poi cambiare il cablaggio della macchina.
Von Neumann eseguì numerose tipologie di rifacimento del cablaggio al fine di rendere più scorrevoli le operazioni dell'ENIAC, tuttavia era conscio che per quanto ottimizzasse il sistema, avrebbe avuto sempre dei seri limiti.
La geniale ideale di von Neumann fu che i dati del programma, i quali potevano essere espressi in bit come 0 e 1, fossero memorizzati nella memoria insieme agli altri dati.
Ciò permetteva di modificare gli indirizzi di memoria e pure gli stessi programmi durante la loro esecuzione.
Gran parte dei computer moderni si basa proprio sulla suddetta architettura.
5 sono i componenti fondamentali di questa architettura:

1) CPU (o unità di lavoro o processore centrale) a sua volta suddivisa in:

- unità operativa, che comprende l'unità aritmetico-logica (ALU);
- unità di controllo.

2) Memoria;
3) Unità di input:
4) Unità di output;
5) Bus di sistema (un canale che collega tutti i componenti tra loro).

Vediamo brevemente gli aspetti fondamentali di tali componenti, incominciando dalla memoria.

sabato 11 marzo 2017

BOLTZMANN, LA DISTRIBUZIONE CANONICA E QUELLA DI MAXWELL-BOLTZMANN (2° ED ULTIMA PARTE)

Riprendiamo la trattazione come detto cercando di andare innanzitutto a fornire una definizione statistica della temperatura.
Consideriamo 2 grossi sistemi che scambiano energia l’uno con l’altro, ma non con qualcos’altro, ovvero 2 sistemi in contatto termico fra loro, ma termodinamicamente isolati dall’ambiente.
Indichiamo con E1 l’energia del primo sistema e con E2 quella del secondo sistema.
L’energia totale E = E1 + E2 si assume perciò costante, dato che i 2 sistemi non scambiano energia con nient’altro.
Dunque il valore di E1 è sufficiente per determinare il macrostato del sistema congiunto.
Ciascuno dei sistemi può chiaramente presentare un numero (molto grande) di possibili microstati.









Assumiamo che il sistema n.1 può essere in qualsiasi degli Ω1(E1) microstati e il sistema n.2 può essere in qualsivoglia degli Ω2(E2) microstati.
Ergo, l’intero sistema può essere in uno degli Ω1(E12(E2) microstati.
I sistemi sono in grado di scambiarsi energia reciprocamente e si assume che essi siano stati lasciati a contatto per un tempo sufficientemente lungo da consentire il raggiungimento dell’equilibrio termico.
Ciò implica che E1 ed E2 sono giunti a valori fissi.
L’intuizione cruciale che possiamo compiere è che un sistema tenderà ad assumere una configurazione macroscopica massimizzante il numero di microstati.
Questa idea si base sui seguenti presupposti:

1) ciascuno dei possibili microstati di un sistema è egualmente probabile nel verificarsi;
2) le dinamiche interne del sistema sono tali che i microstati del sistema cambiano ininterrottamente;
3) fornito sufficiente tempo, il sistema esplora tutti i possibili microstati e spende lo stesso tempo per ognuno di essi (ipotesi ergodica).


Tali assunzioni implicano che il sistema sarà molto probabilmente trovato in una configurazione rappresentata dal maggior numero di microstati.
Per un sistema ampio, la nostra indicazione “molto probabilmente” diviene “probabile in modo schiacciante”.
Quella che di primo acchito sembra una poco rilevante dichiarazione probabilistica (un po’ come le previsioni meteo di 5 giorni) diventa una predizione assolutamente affidabile a cui affidarsi.
Per il nostro problema dei 2 sistemi connessi la più probabile divisione dell’energia fra i 2 sistemi è quella che massimizza il prodotto Ω1(E12(E2), perché questo corrisponderà al numero più elevato di microstati possibili.
Il nostro sistema è ampio, dunque ci son permessi gli strumenti dell’analisi matematica per studiarne le proprietà.
Possiamo perciò considerare il compiere cambiamenti infinitesimali all’energia di uno dei sistemi e osservare cosa ne consegue.
Dunque, possiamo massimizzare questa espressione relativamente a E1 scrivendo





Sfruttando ora la famosa regola di Leibniz relativa al prodotto delle derivate


Si noti che nella seconda parte dell’uguaglianza si è anche moltiplicato e diviso per la quantità dE2.
Siccome l’energia totale E = E1 + E2 è assunta costante, questo implica che


e perciò


Dunque possiamo riscrivere (avendo anche diviso tutta l’espressione per Ω1Ω2) l’equazione ricavata con la regola di Leibniz come


da cui (integrando):


La suddetta condizione definisce la suddivisione più probabile di energia tra i 2 sistemi, a patto che ad essi sia consentito lo scambio di energia, visto che massimizza il numero totale di microstati.
Questa ripartizione di energia è naturalmente spesso chiamata “essere alla medesima temperatura”; ergo identifichiamo d ln Ω/dE con la temperatura T (così che T1 = T2).
Definiamo perciò la temperatura T mediante la formula


ove kB è la costante di Boltzmann, che vale 1,3807 × 10-23 JK-1.
Scegliendo tale costante, T assume la sua tradizionale interpretazione e risulta misurata in kelvin.
Stiamo utilizzando la probabilità per descrivere i sistemi termodinamici e il nostro approccio consiste nell’immaginare di ripetere ancora ed ancora un esperimento per misurare una proprietà di un sistema, giacché non possiamo controllare le proprietà microscopiche (come descritte dai microstati del sistema).
Per dare una formulazione rigorosa a tutto ciò, Josiah Willard Gibbs introdusse nel 1878 il concetto di ensemble, cioè di insieme statistico.
Trattasi di un’idea teorica nella quale si considera di produrre un elevato numero di “fotocopie mentali” del sistema, ognuna delle quali rappresenta un possibile stato nel quale il sistema può essere.
In altre parole, un ensemble è un assemblaggio di tutti i possibili microstati del sistema
.
Dunque, sotto circostanze ordinarie, possiamo aspettarci che il comportamento medio di un sistema qualsiasi in un ensemble sia identico al comportamento medio nel tempo del sistema considerato.
Su questi fondamenti si sviluppa la cosiddetta teoria degli ensembles.
Esistono 3 tipologie principali di ensemble di gran utilizzo in termodinamica statistica:

1) ensemble microcanonico: un insieme di sistemi in cui ognuno presenta il medesimo valore definito di energia e numero di particelle (sistemi isolati);
2) ensemble canonico: un ensemble di sistemi, ognuno dei quali può scambiare la sua energia con una grande sorgente di calore. Ciò fissa e definisce la temperatura del sistema;
3) ensemble gran canonico: un insieme di sistemi, ognuno dei quali può scambiare sia energia sia particelle con una grande sorgente di calore. Ciò rende fissa la temperatura del sistema e una quantità nota come potenziale chimico del sistema.

Consideriamo una coppia di sistemi che possono scambiare fra loro energia.
Questa volta supporremo uno dei 2 enorme e lo chiameremo serbatoio termico infinito (reservoir or heat bath in inglese).
Esso è così grande che anche sottraendo ad esso un mucchio di energia rimarrebbe sostanzialmente alla medesima temperatura.
In altri termini, il serbatoio termico infinito presenta una capacità termica infinita per cui qualsiasi sia il valore finito di calore scambiato (Q) non si ottiene praticamente alcuna variazione di temperatura (ΔT = 0).
La questione è assai simile a recarsi sulla spiaggia e levare un cucchiaino d’acqua al mare: il livello del mare non si abbasserebbe (in verità sì, ma di un fattore talmente minuscolo da essere irrilevante).
Il numero di modi di organizzare i quanti di energia del serbatoio sarebbe quindi colossale.
Al contrario, il secondo sistema viene considerato minuscolo e denotato semplicemente come “sistema”.
Assumeremo che per ogni energia permessa del sistema sussista solo un microstato e, pertanto, il sistema avrà sempre valore Ω pari a 1.
Poniamo fissa l’energia totale E del sistema + serbatoio.
A tal proposito, il sistema + serbatoio può essere considerato (nell’interezza) alla stregua di un ensemble microcanonico (che ha energia fissata), con ciascuno dei microstati dell’entità combinata egualmente probabile.
Si suppone che l’energia del serbatoio sia Eϵ (anche se praticamente è equivalente ad E), mentre quella del sistema sia ϵ.
La situazione descritta di un sistema in contatto termico con un vasto serbatoio è di notevole importanza ed è nota come ensemble canonico.

BOLTZMANN, LA DISTRIBUZIONE CANONICA E QUELLA DI MAXWELL-BOLTZMANN (1° PARTE)

Nel mese di marzo siamo soliti celebrare il pi greco con post che lo riguardano da vicino, dato che si festeggia il pi day (14 marzo).
Ad esempio, in passato abbiamo parlato, qui su Scienza e Musica, di:

- pi greco in relazione con la formula di Stirling e le torte nuziali;
- pi greco e i calcoli di Newton;
- storia del pi greco,

 e sul Tamburo Riparato di:

- pi greco e il problema delle lenzuola.

Ora non tratteremo di pi greco in maniera diretta, bensì analizzeremo un concetto fisico importante in cui esso fa capolino: la distribuzione di Maxwell-Boltzmann.
Prima di incominciare tale narrazione inerente alla termodinamica statistica, andiamo a introdurre brevemente la figura di Ludwig Eduard Boltzmann.
Non sappiamo bene perché Gottfried Ludwig Boltzmann, nato a Berlino nel 1770, si trasferì da giovane a Vienna per divenire un produttore di carillon.
Qui si sposò ed ebbe un figlio, Ludwig Georg, che diventò un esattore delle tasse e sposò Maria Pauernfeind, figlia di un mercante di Salisburgo, nel 1837.
Il maggiore dei loro figli, Ludwig Eduard Boltzmann, nacque a Vienna il 20 febbraio 1844.
La notte della sua nascità segnò la transizione dal martedì grasso al mercoledì delle ceneri e Boltzmann era solito affermare che la sua data di nascita spiegava perché il suo umore poteva improssivamente passare dall'immensa gioia alla profonda depressione.
Due anni più tardi venne alla luce un secondo bambino, Albert, che purtroppo morì di polmonite nel periodo in cui frequentava la scuola secondaria.
Ludwig aveva anche una sorella, Hedwig; i 3 fianciulli vennero battezzati e crebbero sotto la religione cattolica, professata dalla loro madre, mentre il padre era protestante.
L'educazione elementare di Boltzmann ha avuto luogo nella casa dei genitori sotto l'egida di un insegnante privato.
Il salario del padre era piuttosto carente, ma veniva compensato dal ricco patrimonio della madre.
Boltzmann trascorse gli anni giovanili in piccole città di provincia quali Wels e Linz.
Si dimostrò uno studente provetto e mostrò una grande passione per la matematica e le scienze.
Egli imputò la deteriorazione della sua vista, diventata decisamente grave negli ultimi anni della sua vita, ai lunghi pomeriggi spesi a studiare al lume di candela.
A Linz prese anche lezioni di piano dal compositore Anton Bruckner, lezioni bruscamente interrotte quando la madre si lamentò che il maestro aveva gettato sul letto l'impermeabile bagnato.
Nonostante ciò, Boltzmann continuò a suonare il piano durante il resto della sua vita, coltivando così la propria abilità e facendosi spesso accompagnare da suo figlio Arthur Ludwig al violino.
Il padre di Boltzmann morì di tubercolosi quando questi aveva compiuto solamente 15 anni.
Il tragico evento lasciò un segno indelebile sul resto dell'esistenza del ragazzo.
A 19 anni Ludwig si iscrisse all'Università di Vienna per studiare matematica e fisica.
L'Istituto di Fisica era stato fondato 14 anni prima nientemeno che da Christian Doppler, noto per il celebre effetto Doppler (ne abbiamo parlato brevemente qui).
Qui Ludwig ebbe come maestro Josef Stefan, famoso per i suoi studi relativi alla radiazione di un corpo nero.
3 anni dopo la sua iscrizione all'università, Boltzmann ottenne il PhD (avendo tra l'altro all'attivo già 2 pubblicazioni rilevanti).
E la tesi?
Potrà sembrare strano, ma non era prevista la progettazione di alcuna tesi di laurea nei corsi di filosofia (naturale) dell'Università di Vienna prima del 1872-73.
Nel 1867 Boltzmann divenne assistente universitario e fece amicizia con uno studioso più anziano, Joseph Loschmidt (1821-1895), che fu in seguito tra i primi a fornire valori numerici sulle grandezze molecolari.
Nel 1869 Boltzmann ottenne la cattedra di fisica matematica a Graz, tuttavia si trattenne ben poco in quella città.
Tra il 1869 e il 1871 passò infatti un periodo di tempo a Heidelberg e a Berlino, con Kirchhoff e con Helmholtz.
Una volta Boltzmann disse riguardo a Helmholtz: "Riguardo ad alcuni problemi posso parlare solo con una persona, e quella persona è Helmholtz, ma è troppo distante".
Nel 1873 Ludwig non poté resistere alla tentazione di accettare una cattedra a Vienna come professore di matematica.
Essere un professore a Vienna veniva ritenuto in Austria il massimo obiettivo raggiungibile in una carriera accademica.
Egli rimase lì fino al 1876, dopodiché decise di ritornare a Graz per insegnare fisica sperimentale.
Boltzmann era ormai ben conosciuto e diversi giovani fisici brillanti, tra cui Walther Nernst e Svante Arrhenius (i futuri maggiori esponenti della chimica fisica), si recarono a Graz per studiare con lui.
Nel 1890 Boltzmann si trasferì a Monaco, in un ambiente assai più ampio di quello di Graz, ma pure in tal caso non si trattò di uno spostamento definitivo.
Infatti, nel 1894 prese il posto di Stefan a Vienna.
Successivamente andò a Lipsia per 2 anni, poi ritornò ancora a Vienna, ove rimase sino alla morte.
In un periodo di sconforto, a Lipsia aveva tentato di suicidarsi, ma era sopravvissuto.
Tuttavia il 5 settembre 1906, durante una vacanza a Duino, vicino a Trieste, l'atto di suicidio si concretizzò: si impiccò, ponendo fine alle sue sofferenze fisiche e mentali.
I continui trasferimenti di Boltzmann ci fanno intuire qualcosa a proposito del suo carattere.
Costui andava soggetto a periodi di scoraggiamento, che in alcuni casi si aggravavano diventando veri e propri stati depressivi.
Sebbene fosse riconosciuto come uno dei maggiori fisici del suo tempo, a volte si sentiva, ingiustificatamente, isolato e intellettualmente abbandonato da tutti.
Eppure di grossi riconoscimenti ne aveva ricevuti.
Poteva vantare svariate lauree ad honorem, compresa quella di Oxford, era membro delle maggiori accademie e, in occasione del suo sessantesimo compleanno, fu onorato con una Festschrift contenente contributi di eminenti personalità come:

- Arrhenius;
- van't Hoff;
- Lorentz;
- Mach;
- Nernst;
- Planck;
- Sommerfeld;
- van der Waals;
- Wien e molti altri.

Pur essendo, in fondo all'anima, un fisico teorico, Boltzmann viene ricordato anche per accuratissime misure della costante dielettrica e dell'indice di rifrazione di gas e di solidi.
Ma la sua attività sperimentale veniva ostacolata dalla già accennata grave miopia.
Sempre dal punto di vista caratteriale, egli era estremamente sensibile agli attacchi sul piano intellettuale.
Si offendeva facilmente, ma ciò non deve far pensare che non fosse capace di battagliare in aspre polemiche per far valere la sua ragione.
Per esempio, fece rilevare senza pietà gli errori di Wilhelm Ostwald, il quale caldeggiava la dottrina sballata dell'energetica, ma mantenne sempre rapporti personali cordiali con quest'ultimo.
Nel corso della sua carriera Boltzmann redasse svariati articoli: arrivava a volte a pubblicarne pure 3 o 4 in un anno, oltretutto lunghi e colmi di complessi calcoli (aspetto dei suoi lavori che spaventava i lettori).
Ecco per esempio cosa scriveva in proposito Maxwell al suo amico Tait:

"Pur studiando Boltzmann non sono riuscito a capirlo. Egli non può capirmi a causa della mia brevità, ma la sua lunghezza è parimenti uno scoglio per me: ragion per cui sono molto portato a unirmi alla gloriosa compagnia di coloro che procedono diversamente e a sistemare l'intera faccenda in circa sei righe".

D'altra parte Boltzmann nutriva una profondissima ammirazione (senza voler esagerare, potremmo dire un culto) per Maxwell, sin da quando il suo maestro viennese Stefan gli aveva dato da studiare gli articoli di Maxwell sull'elettricità e una grammatica inglese come ausilio nella lettura.
Questa ammirazione assunse talvolta persino toni poetici.
Infatti, quando il fisico austriaco elaborò una delle prime esposizioni della teoria elettromagnetica (1891-1893), contribuendo validamente alla diffusione delle teorie maxwelliane sul continente europeo, scelse come epigrafe del testo una citazione da Goethe: War es ein Gott der diese Zeichen schrieb? ("È forse un Dio che ha scritto questi simboli?").
Goethe si riferiva a degli incatesimi magici, invece Boltzmann alle equazioni di Maxwell!
Come noto, sul monumento eretto a Vienna in onore di Boltzmann è incisa la celebre formula descrivente l'entropia S


la quale, per la meccanica statistica, ha lo stesso ruolo magico che le equazioni di Maxwell svolgono per la teoria elettromagnetica.
È giunto il momento di illustrare uno dei maggiori contributi di Boltzmann alla meccanica statistica, cioè le distribuzioni che prendono il suo nome.
Incominciamo la trattazione spiegando cosa si intenda innanzitutto per fisica statistica e proseguendo con l'illustrazione di concetti necessari alla comprensione delle distribuzioni in questione.
Avvisiamo il lettore non esperto che d'ora in avanti la narrazione sarà ricca di formule, in cui si dà per scontato la conoscenza di certi strumenti matematici illustrati in vecchi post.