Quali sono i pro e i contro dell'uso delle CPU Intel Xeon vs ARM per i server e i database?
tl;dr Intel ha sicuramente il vantaggio per i server ma ARM li sta spingendo a diventare più competitivi e ha una [piccola] possibilità di superarli. A breve termine vai con Xeon, perché più server sono limitati dal BUS piuttosto che dal ciclo della CPU.
Penso che le opzioni server ARM stiano cavalcando la speranza che la loro efficienza energetica sia ciò che li fa entrare nel gioco. Sfortunatamente mi aspetto che, a meno che non inizino a competere in altre aree, il loro cavallo di battaglia non lo taglierà poiché Intel sta investendo pesantemente in architetture a bassa potenza e generalmente capiscono le cose dopo pochi tentativi.
Nonostante un campo di gioco altrimenti impari dal punto di vista della potenza, l'architettura Xeon vincerà probabilmente perché, per ora, le persone sono in grado di convogliare più dati attraverso le fasi multiple della cache di quanto possano fare con le CPU ARM. ARM ha una cache decente, ma non credo che sia allo stesso livello di Intel e i compilatori non sembrano in grado di eseguire una buona ottimizzazione su ARM come fanno con Intel. Parte di questo è strettamente architetturale ed è improbabile che ARM migliori significativamente senza cambiare seriamente come appare la loro CPU dal punto di vista dello sviluppo hardware e software.
Tutto ciò detto, i server ARM stanno diventando piuttosto interessanti. C'è un bel servizio Welcome - Online.net che permette di far girare i server ARM fisici in un ambiente cloud con SSD dedicati dietro di loro. Ho giocato con loro nella prima beta e sono rimasto impressionato, ma non ho avuto il tempo di fare test adeguati di performance/capacità.
In definitiva, con il cloud che rende onnipresente l'informatica come utilità, il prezzo per istruzione e byte trasferiti diventerà alla fine un fattore decisivo e ARM ha aiutato il mercato a indurre Intel ad abbassare i requisiti di potenza degli stessi. Inoltre penso che vedremo l'uso di ciò che pensiamo come "virtualizzazione" iniziare ad andare via ed essere sostituito da soluzioni multi-processore bare metal che sono logicamente isolate ma non virtualizzate. Jerry Pournelle ha creato una delle sue leggi anni fa che dice "[almeno] una cpu per utente" e presto lo tradurremo in "almeno un core per utente", quindi più utenti che condividono un core tramite la virtualizzazione semplicemente non sarà accettabile. La tecnologia di virtualizzazione VMx di Intel può effettivamente essere usata per assegnare i core della CPU agli utenti. ARM deve recuperare il ritardo offrendo una soluzione multi-core a 64 morsi, che si promette arriverà presto, ma hanno un sacco di cose da fare.
In futuro mi aspetto che potremmo vedere un'intera "nuova" architettura di CPU iniziare a prendere il sopravvento quando le limitazioni del bus di memoria diventeranno il percorso critico rispetto ai cicli della CPU. La mia comprensione (e questa è un'area in cui ho avuto qualche interesse personale negli ultimi anni) è che i CPUS orientati al registro (che ARM è anche più di Intel) stressano i bus di memoria più dei CPUS orientati allo stack. Inoltre sempre più sistemi software stanno effettivamente eseguendo VM software (java, C#, python, ecc.) che sono davvero sistemi basati su stack e una CPU il cui set di istruzioni mappano direttamente l'architettura della VM significa che la VM può scomparire con conseguente esecuzione molto più ottimale del codice destinato a queste VM. Il folle e complesso set di istruzioni di Intel è davvero difficile da progettare e da codificare. ARM offre un modello più semplice ma ha scelto la direzione "sbagliata" dal punto di vista architetturale IMHO. Penso che il vincitore alla fine sarà qualcosa di completamente diverso. Per quanto riguarda ciò in cui consiste, beh, ho alcune idee che sto elaborando. ;)
Articoli simili
- Perché è necessaria una licenza di ARM per progettare una CPU ARM? Come sono protetti i set di istruzioni?
- Nei prossimi 5 anni, quale pensate che avrà una quota di mercato di CPU più alta: Intel, AMD, ARM?
- Se AMD e Intel condividono lo stesso set di istruzioni, perché le prestazioni di una CPU Intel nel gaming 1080p sono ancora migliori di Ryzen?
- Quali sono i pro e i contro dell'uso delle batterie LiPO nelle pistole airsoft?