contraddistinto da alti costi ed orientato a produzioni di tipo
maturo.
Il modello distrettuale che tanta fortuna ha conosciuto negli
anni passati vive una crisi a cui è necessario rispondere
predisponendo modelli di governance che facciano interagire il
sistema produttivo con il mondo della ricerca e con gli enti locali
che amministrano i territori sui quali tali distretti sono insediati.
Alla base di tale iniziativa deve comunque esserci la
valorizzazione della supremazia qualitativa, creativa e culturale
legata al marchio del “made in Italy”, che trova il suo fondamento
nel “genius loci”.
Il piano di lavoro si struttura su tre parti. Nel corso della
prima parte considereremo l’evoluzione tecnologica che ha
portato al Grid computing, tenteremo di delimitarne il concetto,
analizzeremo le caratteristiche e le problematiche legate alla sua
architettura e prospetteremo un modello per le economie
computazionali.
La seconda parte sarà dedicata invece ai distretti industriali.
Dopo aver esposto a grandi linee la loro formazione ed
evoluzione, ci interrogheremo sulle ragioni della crisi di
competitività che questi attraversano e sugli strumenti più idonei
per fronteggiarla. Un ruolo centrale, in tal senso, riveste
l’innovazione tecnologica di cui anche il Grid computing è
un’espressione.
Nell’ultima parte del lavoro si focalizzerà l’attenzione sul
distretto dell’audiovisivo del Lazio, se ne analizzeranno le criticità
e verrà presentata l’esperienza di un innovativo progetto che,
promuovendo l’applicazione del Grid computing a supporto dello
sviluppo della potenzialità di calcolo a favore delle imprese
operanti nella produzione e post produzione digitale, si prefigge di
innovare la filiera produttiva dell’audiovisivo e di conseguire una
maggiore competitività del settore.
7
PARTE PRIMA
ARCHITETTURE PER
UNA ELABORAZIONE DISTRIBUITA
8
1. L’EVOLUZIONE STORICA: DAL MAINFRAME AL
GRID COMPUTING
Negli ultimi tre decenni la ricerca nel campo delle architetture
di calcolo parallelo, grazie anche alla rapida evoluzione delle
tecnologie informatiche e di comunicazione, ha sviluppato l’idea
di poter condividere, selezionare ed aggregare una moltitudine di
risorse geograficamente distribuite (quali supercomputer, sistemi
di immagazzinamento, sorgenti di dati e dispositivi specializzati),
appartenenti ad organizzazioni fra loro indipendenti. Il
ragguardevole obiettivo che ci si è prefissi è la risoluzione, su
larga scala, di problemi attinenti l’ambito scientifico, tecnico e
commerciale, richiedenti una intensità di risorse di gran lunga
superiore a quella resa disponibile da un singolo computer
appartenente ad un unico dominio amministrativo.
Il Grid Computing incarna le speranze affidate a questa nuova
frontiera della ricerca.
Quali indici capaci di misurare il livello evolutivo raggiunto
dalle tecnologie dell’informazione nelle diverse fasi storiche,
possono essere assunti i seguenti:
ξ il numero di transistor e la frequenza di clock del singolo
processore (figura 1 – A e B) a rappresentare la sua
capacità elaborativa;
ξ il numero di calcolatori connessi ad Internet a
rappresentare la capacità di cooperare (figura 2).
Sulla base di questo paradigma possiamo quindi analizzare
come siano progrediti nel tempo i meccanismi di condivisione
delle risorse di calcolo.
Sono ravvisabili quattro stadi, caratterizzati da distinte
metodologie e architetture dedicate al supercalcolo.
9
1.1 Gli anni ’70: il supercalcolatore
Il primo stadio coincide con gli anni ’70. Esso è
contraddistinto dagli ingenti investimenti richiesti per dotarsi di
singole risorse di calcolo aventi architetture basate su soluzioni ad
hoc, che solo le grandi organizzazioni potevano permettersi di
adottare. Il costo, infatti, poteva essere ammortizzato solo
rendendo la preziosa risorsa accessibile simultaneamente ad una
molteplicità di utenti. Potremo riassumere quanto detto nel
concetto “un computer per molti utenti”.
Figura 1 – A Numero di transistor presenti su singola CPU. B Frequenza
tipica di clock (da Mondo Digitale, n.2 – giugno 2004)
10
1.2 Gli anni ’80: il personal computer
La seconda fase si ha con gli anni ’80: grazie alla riduzione
dei costi dell’hardware i singoli utenti possono avvalersi di sistemi
di lavoro dedicati e, verso la fine del decennio, esser perfino
provvisti di personal computer per usi non strettamente tecnici.
Potremo usare il motto “una persona, un PC”.
Figura 2 – Numero di calcolatori interconnessi tramite Internet (da Mondo
Digitale, n.2 – giugno 2004)
Seppure sul fronte delle architetture di supercalcolo questi
anni siano segnati dall’affermazione delle macchine SIMD
1
(Single Instruction Multiple Data), in ambito scientifico la
possibilità di sfruttare l’accresciuta potenza di calcolo disponibile
sulle singole workstation e la disponibilità, a basso costo, di
tecnologie capaci di assicurarne l’interconnessione in rete locale
catturano l’attenzione dei ricercatori, sempre più interessati a
costruire macchine parallele virtuali.
1
La caratteristica di queste macchine sta nella capacità del processore
di elaborare più dati con una singola istruzione.
11
1.3 Gli anni ’90: le architetture cluster
Gli anni ’90 sono riducibili all’immagine “molti calcolatori
per un singolo utente”. Gli investimenti necessari per sviluppare
architetture di calcolo dedicate ed i tempi legati al ciclo di
progettazione, test e produzione delle stesse, non risultano
giustificati se comparati con quelli riferibili ai personal computer.
L’applicazione della legge di Moore
2
a tale ambito ha infatti
consentito alle CPU mainstream di raggiungere prestazioni tali da
permettere a sistemi software eseguiti su di esse di superare di
gran lunga le prestazioni di sistemi hardware ad hoc
3
. L’effetto
concreto di questo stato di cose è l’estromissione dal mercato di
tutte le architetture di supercalcolo basate su processori speciali,
come le succitate macchine SIMD.
L’ultimo tentativo di produrre un supercalcolatore (la
Connetion Machine 5) basato sull’interconnessione tramite una
struttura proprietaria di alcuni potenti processori mainstream
4
fu
tentato nel 1993 dalla Thinking Machine Corporation.
L’esperienza si rivelò fallimentare a causa degli elevati costi di
produzione del sistema e del venir meno dei finanziamenti militari
per la guerra fredda.
Una tappa importante verso la costruzione di macchine
parallele virtuali è costituita dal progetto Beowulf, iniziato nel
1994 presso l’università di Stanford. Esso focalizza l’attenzione
sui concetti di architettura basata su Components Off The Shelf
(COTS; componenti commerciali pre-confezionati pronti per
2
Essa prevede il raddoppio della capacità elaborativa dei processori (a
costi quasi costanti) ogni 18 mesi.
3
Ciò nonostante, l’industria dei semiconduttori dovrà confrontarsi con
l'approssimarsi dei limiti fisici delle attuali tecnologie basate sul silicio,
facendovi inizialmente fronte con tecnologie capaci di estendere la vita
degli attuali chip basati sul silicio, ma anche, entro venti anni,
guardando a tecnologie del tutto nuove, come quelle organiche.
4
Gli SPARC (Scalable Processor ARChitecture) della Sun
Microsystems.
12
l’uso) e di Commodity Computing (CC; dove il calcolo costituisce
un servizio di base).
Il primo cluster Beowulf non si distingue, quindi, per alte
performance raggiungibili o per qualità specifiche della sua
architettura. I suoi tratti caratteristici sono, infatti, i seguenti:
ξ uso, come nodi computazionali, di macchine simili a
quelle destinate all’office automation (PC con processore
Intel DX4);
ξ impiego dello standard di rete ethernet (progettato per
l’office automation) come tecnologia di interconnessione
tra i nodi;
ξ uso di un comune sistema operativo open source, non
progettato per il calcolo ad alte prestazioni (come Linux).
In seguito a questa prima sperimentazione la ricerca si orienta
su architetture cluster caratterizzate dall’aggregazione statica di
nodi di computazione: essi sono interconnessi con un’interfaccia
di rete di tipo standard e sono al completo servizio
dell’architettura cluster.
È necessario sottolineare che l’eterogeneità delle risorse di
calcolo che entrano in gioco nella costruzione di un cluster pone ai
ricercatori un nuovo e rilevante problema: la definizione di strati
di software (detti middleware) capaci di offrire all’utente
un’interfaccia che, unificando la gestione e l’utilizzo di queste
risorse, ne mascheri le differenti caratteristiche. La costruzione di
questa Single System Image (SSI) è incentrata solo sull’interfaccia
e non concerne le prestazioni delle risorse interconnesse (che
possono essere più o meno performanti).
13
1.4 Il nuovo millennio: le architetture Grid
Nella seconda metà degli anni ‘90 si assiste ad un’evoluzione
che porta a superare il concetto di sistema cluster per approdare a
quello di sistema di metacomputing. Da un’aggregazione statica di
nodi computazionali interconnessi tramite interfacce di rete di tipo
standard si passa, infatti, ad una aggregazione dinamica: i nodi,
non più dedicati in modo esclusivo al metacomputer, sono
interconnessi anche attraverso Internet e possono appartenere a
domini di sicurezza e gestione non omogenei.
Nei sistemi di metacomputing, in nuce, è già presente il
concetto di Grid Computing. Fino al 1998 verranno identificati
con il termine metacomputer tutte le strutture di calcolo formate
da nodi eterogenei distribuiti su Internet.
Nel 1999 Ian Foster dell’Università di Chicago e Carl
Kesselmann dell’Istituto Superiore di Informatica di Los Angeles,
i padri del progetto Globus
5
, pubblicano un’efficace metafora
capace di licenziare, per l’immediato successo, il meno fortunato
termine metacomputing: essi descrivono una “Griglia di
distribuzione della potenza computazionale in cui, come i watt
nella griglia di distribuzione dell’elettricità, la potenza
computazionale può essere distribuita a chi ne fa richiesta senza
badare alla sua provenienza”
6
.
Così come una rete elettrica è oggi in grado di collegare e
rendere disponibili fonti di energia eterogenee, distanti, gestite da
soggetti ed enti diversi, allo stesso modo, le griglie
5
Tale progetto è uno dei primi, più importanti e, dal punto di vista dei
finanziamenti ottenuti, più fortunati progetti relativi al Grid Computing.
6
L’invenzione nel 1800 della pila elettrica da parte di Alessandro Volta
si è evoluta, grazie ai successivi contributi di Thomas Edison e di Nikola
Tesla (inventori, rispettivamente, della lampadina elettrica e della
corrente alternata), in una grid (lett. “griglia”) la quale fornisce un
accesso affidabile, consistente e penetrante all’energia elettrica,
elemento essenziale per la sopravvivenza della società moderna.
14
computazionali integrano calcolatori con tecnologie differenti,
secondo un'unica visione, estendendone di fatto le capacità.
Sempre in analogia con la rete elettrica lo stato attuale delle
risorse di calcolo può essere considerato simile a quello
dell'elettricità nei primi anni del '900. All’epoca, infatti, era
possibile generare energia elettrica e vi erano molti macchinari
che da essa dipendevano per funzionare. La necessità per ogni
utilizzatore di dover disporre oltre al macchinario anche di un
generatore, tuttavia, ne limitava fortemente la diffusione.
La vera rivoluzione si ebbe con lo sviluppo delle tecnologie
per il trasporto e la distribuzione su larga scala, grazie alle quali,
oggi, l'energia elettrica risulta disponibile in maniera capillare,
affidabile e a basso costo.
Sul territorio esistono numerose risorse di calcolo che
supportano applicazioni che risultano separate, disomogenee e
spesso limitate alla soluzione di problemi specifici. Una
tecnologia abilitante per la condivisione di tali risorse
permetterebbe di renderle disponibili a chi necessita, più o meno
occasionalmente, di certe capacità senza farsi carico della spesa
che comporterebbe una loro installazione in loco.
Nasce il Grid Computing, una sorta di presa di potenza
telematica la cui energia (il calcolo) potrebbe essere distribuita
come servizio da uno o più fornitori specifici on-demand secondo
le esigenze specifiche, disinteressandosi di dove si trova
l'erogatore di energia.
La relazione fra calcolatori ed utenti che si determina con il
Grid Computing può essere sinteticamente definita di “molti a
molti”.
15
2. COS’È IL GRID: ANALISI TASSONOMICA DEL
FENOMENO
Allorché si affronta il tema relativo al Grid Computing è
legittimo interrogarsi su cosa si intenda con tale termine. Il
progetto Globus offre la seguente definizione: “Le GRID sono
ambienti persistenti che rendono possibile realizzare applicazioni
software che integrino risorse di strumentazione, di
visualizzazione, di calcolo e di informazione che provengono da
domini amministrativi diversi e sono geograficamente distribuite”.
Funzionalmente alla tipologia di risorse condivise è, quindi,
possibile categorizzare diverse tipologie di Grid:
ξ Grid computazionali (o Processing GRID)
ξ Grid di dati (o Data GRID)
ξ Grid di applicazioni e servizi (o Application GRID)
ξ Grid di strumentazione
ξ Grid di sensori
2.1 Grid computazionali
Le Grid computazionali, che si sostanziano in
un’aggregazione di risorse di calcolo provenienti da domini di
sicurezza e gestione differenti, rappresentano la linea evolutiva
delle architetture di calcolo. La capacità computazionale da esse
teoricamente erogabile coincide con la somma delle macchine
collegate in un certo istante. Agli utenti viene offerta potenza di
calcolo on-demand, in modo disgiunto dai nodi che la stanno
fisicamente somministrando.
I fini per cui può essere impiegata tale tipologia di Grid, che
per la semplicità di realizzazione ha una storia ricca e variegata,
sono riconducibili a due:
ξ la costruzione di un supercomputer Grid;
16
ξ il processing commodity.
Fra di essi vi è una leggera sfumatura, che è comunque
opportuno tenere nella dovuta considerazione.
Nel primo caso, mettendo a fattor comune molte capacità
elaborative singole, si vuole creare una infrastruttura in grado di
erogare una capacità enorme, superiore perfino a quella di un
supercomputer. I vantaggi ottenuti attraverso tale via sono
soprattutto di tipo economico, in quanto i costi sono
significativamente inferiori a quelli richiesti dalla costruzione di
un supercomupter.
Nel caso del processing commodity, invece, non si vogliono
offrire capacità elevatissime, ma piccole portate rese però
disponibili ad un numero potenzialmente enorme di richiedenti
7
.
Facciamo un esempio concreto di Grid computazionale. Si
pensi ad una società avente sedi sparse in tutto il mondo dotate,
ciascuna, di un parco di architetture di calcolo dimensionato per
soddisfare i picchi di richiesta, ovvero le necessità medie
quotidiane (incapaci quindi di gestire le situazioni di picco).
La società potrebbe, allora, ritenere economicamente
vantaggioso adottare una strategia volta alla realizzazione di un
supercalcolatore capace di soddisfare dinamicamente le richieste
che, nel momento del bisogno, possano rendersi necessarie presso
le singole sedi.
La società, sopperendo alle richieste di picco con potenza
computazionale proveniente dalle altre sedi attraverso una
struttura Grid, può procedere ad un dimensionamento del parco
macchine più consono alle reali necessità quotidiane. I vantaggi
economici conseguenti ad un tale disegno non necessitano di
ulteriori chiarimenti.
7
Concettualmente non si è lontani dal Network Computer proposto da
Sun negli anni ’90 che, prevedendo di appoggiarsi alla rete per
l’immagazzinamento dei dati e per le elaborazioni sofisticate, mirava ad
abbattere i costi di possesso dei PC. Tale idea non ha avuto seguito per
la contestuale riduzione dei costi dei PC.
17