In termini formali la macchina a stati
finiti è una
entità matematica che contiene i seguenti elementi:
Nel settore elettronico
tale formalismo viene sviluppato con i modelli di Mealy e di Moore. In
aggiunta ci sono altri supporti teorici come ad esempio la rete di Petri che
però qui non trattiamo. Passando dalla teoria alla pratica, diciamo che la macchina a stati finiti è un dispositivo di cui sono determinabili e determinati tutti i particolari di comportamento compresi errori e guasti. Esempi classici sono i sistemi digitali: elaboratore, telefono cellulare, fax ecc. Altre macchine che lavorano con precisi stati operativi rientrano nella definizione sopra tracciata. Ad esempio l'ascensore, dovendo per legge dare la massima sicurezza agli utenti, con buona approssimazione è un sistema a stati finiti perché si muove tra un numero finito di piani ed i suoi possibili comportamenti, anche difettosi, sono predefiniti. Nel diagramma degli stati in figura, immaginiamo che l'ascensore si muova tra i piani zero, uno e due. Quando si guasta tra l'uno e l'altro, entra nello stato G. Infine rimane fermo in ciascun piano. Situazioni indeterminate o confuse non ce ne sono.
La macchina computazionale per antonomasia è quella di Turing (vedi anche Logica ) la quale è composta dell'apparato di calcolo C e del programma L. Ogni casella della lista L contiene un comando che viene eseguito e che fa andare avanti L di un passo, oppure indietro oppure fa fermare L nella stessa casella.
Il numero finito di caselle ed il numero preciso di operazioni dicono che tale macchina è un sistema a stati finiti. Infatti sono del tutto definiti gli stati, gli input ecc. elencati in A, B,...F.
anno 2005 |
106. C) La differenza tra la macchina a stati finiti e la macchina computazionale. |
107. Vorrei conoscere le potenzialità dei supercomputers. |
Ci sono elaborati che richiedono ore o addirittura giornate intere di CPU. Per affrontare tale mole di lavoro è stato ideato il grid computing (vedi 92). Tale metodo risulta molto potente ed economico ma è incapace di garantire risultati in tempo reale. Si dimostra inutile di fronte a richieste come quelle delle previsioni atmosferiche le quali devono essere calcolate in tempo utile per il pubblico. Per tali ed altri lavori ancora diventa indispensabile il supercomputer.
L'architettura di un supercomputer viene realizzata mediante centinaia ed
anche migliaia microprocessori che lavorano in parallelo. Va
da sé che il supercomputer, composto di molti microprocessori, sia
migliaia di volte più potente dell'usuale personal che ce ne ha uno solo.
La soluzione risulta efficace ma comporta notevoli problemi di
interconnessione tra i microprocessori. La complessità dei collegamenti
rischia di generare rallentamenti e di abbassare le prestazioni, per cui è
oggetto di notevoli
ricerche (sui problemi del parallelismo vedi anche
risposta 170). Dopo una diatriba durata
anni, oggi si è trovata una convergenza. Per misurare le capacità di un
supercomputer sono stati scritti appositi
programmi campione. Meno tempo la macchina ci mette
per eseguirli e più il sistema è potente.
I programmi campione lavorano principalmente con istruzioni a virgola
mobile (= floating point) perché i calcoli
impegnativi sopra citati vi ricorrono abitualmente. I più vecchi
sistemi macinavano mega-flops
cioè milioni
di operazioni a virgola mobile al secondo (flop = floating-point-operations
).
Oggi si naviga sull'ordine dei giga
e tera
ovvero 109
e 1012 flops al secondo.
Aziende private ed
enti di ricerca producono sistemi avanzati per cui esiste una classifica
aggiornata che elenca i 500 migliori supercomputer in questo sito
http://www.top500.org Nella
pagina principale il lettore cercherà il link alla classifica che in
genere viene aggiornata una volta l'anno. Da tempo l'Italia partecipa a tale
sfida tecnologica. Anni fa l'Istituto Nazionale di Fisica Nucleare (INFN)
costruì a Roma un supercomputer che poi venne commercializzato da Alenia
Spazio con il nome di 'Quadrics'.
anno 2005 |