En Guillem Cantallops Ramis de vegades escriu per aquí...
Avui va de maquinari. Com segurament heu vist a slashdot, resulta que IBM, Sony i Toshiba van donant cada vegada més detalls de l'arquitectura Cell. Si la meitat del que diuen és cert, això arrassarà. Intentaré explicar ràpidament per què.
Coneixeu el processador Apple G5? Idò realment és un IBM PowerPC 970. L'arquitectura PowerPC (per cert, un disseny de 32 i 64 bits des del principi gràcies a la visió d'Apple, Motorola i IBM) és una versió d'anar per casa de l'arquitectura POWER d'IBM. La darrera generació per ara es diu POWER5 i és la bèstia que duen els servidors OpenPower d'IBM. Sí, els que només van amb Linux i no amb AIX, i tenen preus "raonables" a partir d'uns 5000 euros. Tota una revolució coneixent IBM ;-)
Si coneixeu l'Apple G5, segur que sabeu què és l'AltiVec (o "Velocity Engine"). És una unitat de processament vectorial de 128 bits, tipus SIMD (Single Instruction Multiple Data), que permet executar el mateix tipus d'instrucció damunt vàries dades al mateix temps. Sí, en paral.lel, tot optimitzat per hardware.
I si coneixeu les CPUs d'Intel segur que també sabeu què és el HyperThreading. Resumint molt, els processadors d'avui en dia internament paral.lelitzen moltes tasques perquè hi ha una tècnica més ràpida que fer molta via i aquesta tècnica consisteix en fer molta via fent un parell de coses al mateix temps. Idò fent una mica de feina addicional és possible fer que una CPU d'aquestes tan paral.lelitzades de cara a l'usuari sembli que són dues CPUs, cada una amb la seva informació de context, però competint entre elles pels recursos de processament de la única CPU que hi ha realment. Així és maximitza la utilització d'aquests recursos, i la cosa no va com dues CPUs reals però sí que va millor que una tota sola, si els programes que s'executen son concurrents. Això, dit aviat i malament, és el HyperThreading.
De què parlàvem? Ah, si... de Cell. Ara imaginau-vos que agafau una CPU de tipus POWER i li donau la capacitat d'executar dos fils concurrents en pla HyperThreading, cosa que no s'havia fet fins ara (els d'IBM a sistemes molt cars el que feien era damunt el mateix xip posar dues o quatre CPUs POWER completes). I imaginau-vos que això de tenir una unitat de processament vectorial subordinada a un racó vos pareix poc. Imaginau-vos que el processament vectorial el fa un processador que fa "companyia" al POWER. No, millor, imaginau-vos que de processadors vectorials damunt el mateix silici del POWER n'hi posau un parell... per exemple vuit. Sí, he dit dos al cub.
Com que tot està damunt el mateix silici, vos podeu imaginar que la comunicació entre aquestes CPUs vectorials i mestre POWER és bastant ràpida. A més, imaginau-vos que el disseny dels processadors vectorials és tipus Cray, de manera que no hi ha caché perquè directament la seva memòria ja és tan ràpida com una caché. Cada processador vectorial té una petita memòria pròpia, de l'ordre d'un quart de megabyte. Per tant, tenim que els processadors vectorials tenen certa independència però es comuniquen molt bé. Què li dirieu, un cluster damunt un xip? No senyor, li heu de dir Cell. O cel.la, si vos agrada més.
I com suggereix el seu nom, les cel.les estàn dissenyades per treballar en equip. Què és una cel.la, en general, sense altres cel.les? ;-) Pràcticament no hi haurà sistemes d'una sola cel.la, sino de dues, tres, quatre... o moltes més. Les comunicacions internes d'una cel.la són extremadament ràpides, però les comunicacions entre cel.les també són espectaculars.
A més, sabeu el rendiment que dona un G5 a 2.0GHz comparat amb un Pentium 4 a quasi 4.0GHz, a que si? Idò heu de saber que les primeres unitats Cell arribaràn al mercat a freqüències per damunt dels 4.0GHz.
Escalabilitat? Bastanta. IBM, Sony i Toshiba tenen capacitat per fabricar cel.les en grans quantitats, i pensen fer-ho de manera que una cel.la serà tremendament barata en comparació amb una CPU clàssica. El disseny és molt flexible i escalable precisament perquè des del principi es basa en interconnectar cel.les, és escalable per disseny. Se sap que la PlayStation 3 durà un parell de cel.les, potser tres ó quatre. Jo diria que el cluster més potent de la Terra qualque dia també durà un parell de cel.les (més de tres o quatre). I esper que alguna de les meves màquines futures també O:-)
Aquest post sembla propaganda? Tal vegada, però estic realment emocionat. Per primera vegada en molts d'anys veig innovacions reals a l'arquitectura bàsica dels ordinadors. Hem anat optimitzant els processadors paral.lelitzant coses puntuals, però encara en tenim només un, de processador, i els sistemes que en duen un parell no s'integren tan bé com seria desitjable perquè el "treball en equip" és secundari des del principi. En canvi ara tenim un disseny pensat des del principi per fer feina en paral.lel pràcticament a qualsevol escala. Em fa il.lusió veure com acaba tot plegat!