80 core!

Intel ha mostrato un processore sperimentale contenente 80 core. Entro 5 anni sperano che le tecnologie utilizzate vengano utilizzate in un prodotto commerciale.

Avere 80 core porta alcuni notevoli problemi.

  • Avere un sistema operativo in grado di supportare 80 core.
  • Avere a disposizione un paradigma di programmazione e i tool che permettano al programmatore di sfruttare 80 core.

Il primo punto è un problema tecnologico che, non dubito, verrà risolto adeguatamente dai produttori di sistemi operativi. Future versioni di Windows o di Linux o chissà cosa saranno in grado di indirizzare il problema. Tecnologie come la virtualizzazione, gli ipervisori e le griglie di calcolo aiuteranno.

Il secondo punto è un problema sia tecnologico sia culturale. Oltre ai tool, che verranno sicuramente costruiti, occorre un paradigma di programmazione molto più potente ma che, soprattutto, sia in grado di essere compreso e utilizzato facilmente dai programmatori. Già oggi è difficile trovare programmi e programmatori in grado di sfruttare sistemi blandamente paralleli come gli attuali sistemi multithread. 80 core permettono di creare una griglia di calcolo su un solo sistema e quindi tutto ciò che è grid potrebbe essere adattato ma rimane il problema culturale. La verità è che oggi i programmatori non sono mediamente attrezzati per risolvere questo tipo di problemi (molto cinicamente potrei dire che spesso non sono attrezzati per risolvere cose più banali ma questo è un’altro discorso). 

Insomma la tecnologia che sta per arrivare propone una enorme sfida ai produttori di sistemi e di tools e ai programmatori, gli utilizzatori principali di questi sistemi e tools.

Rimane un terzo problema puramente commerciale: il licensing. Un sistema ad 80 core con le capacità di indirizzamento RAM paragonabili e gli opportuni sottosistemi di I/O e di memoria di massa, sarebbe in grado di gestire una quantità di lavoro notevole. I nostri attuali 15 server potrebbero essere consolidati in una sola macchina senza alcun problema e ad un costo irrisorio. Questo aspetto però porta ad un calo di guadagno per i produttori di software che dovranno cambiare modello di licenza. Servirà quindi anche un modello di licenza scalabile.

IBM lo ha già fatto ed è passata da un modello a processore ad un modello a capacità di calcolo: ogni core ha un certo valore e il cliente paga in base alla potenza che vuole utilizzare (ci sono/saranno tool di licensing che gestiranno la cosa per cui uno potrà comprare una potenza adeguata per N core e fare in modo che il software utilizzi solo quegli N core). Oracle usa questo modello da anni.

Microsoft utilizza prevalentemente un modello di licenza misto server/CAL e attualmente conteggia solo le CPU fisicamente presenti nelle macchine. Il conteggio delle CPU è normalmente solo una discriminante per definire il tipo di prodotto da usare (solitamente per i server si parla di versioni Standard o Enterprise). L’attuale modello usato da Microsoft, così osteggiato da molti, potrebbe rivelarsi molto più scalabile in termini di prezzo di quello a capacità di calcolo.

Rimane anche una grande forza: il software free (nel senso di gratuito, stavolta). Questo software spesso è inefficiente, mal fatto o scarsamente integrato ma avere sistemi con così grande capacità di calcolo (e di memoria) permetterà di superare molti dei limiti intrinseci. Sicuramente questo software limiterà i prezzi dei produttori di software commerciale che quindi non potranno tirare troppo la corda.

Ci sono altri modelli come quelli a transazione (paghi un tot per ogni transazione effettuata) ma, secondo me, sono varianti del modello software come servizio.

Il software potrebbe essere venduto come un servizio e pagato a consumo così come si fa con l’acqua o l’elettricità. Questo modello ha però si basa sulla commoditizzazione del software cioè richiede che ogni pacchetto fornisca una serie di servizi standard e che l’utente si accontenti di quei servizi standard. La mia opinione, ma potrei sbagliarmi, è che sia molto difficile ottenere risultati validi in senso generale. Alcuni aspetti si prestano bene a questo approccio ma altri proprio no. In effetti il fallimento in termini di qualità di molti servizi in outsourcing mi fa pensare che molti preferiscano lavorare con il “vecchio” sistema che fornisce un maggiore controllo e una maggiore flessibilità (e secondo me anche rapporti prezzo/prestazioni migliori).

Insomma come sempre ci aspettano tempi interessanti.

Visto che questo è un blog dedicato a Vista concludo con una considerazione sul suo licensing. Le licenze di Vista pongono limiti al numero di processori fisici e alla virtualizzazione. Non sono riuscito a trovate informazioni chiare in proposito e quindi mi domando come si comporterebbero con un processore ad 80 core! Magari per quel tempo avremo un’altra versione di Windows ma durante il passaggio da 4 a 80 immagino ci saranno delle CPU intermedie e Vista sfrutterà queste CPU intermedie. Mi aspetto chiarificazioni e adeguamenti della licenza nel corso dei prossimi anni.

2 comments
  1. ifrancesco said:

    80 core aprono tantissime strade evolutive per tutti gli os delle diverse società! Roba da non credere…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: