Bits&Chips

Intel licht sluiertipje over manycore-rekenmonster

8 juni 2012 

In een tweetal blogposts onthult James Reinders, directeur softwareproducten en multicore-evangelist bij Intel, enkele details over Knights Corners, Intels monster voor high-performance computing (HPC) gebaseerd op een groot aantal general-purpose X86-cores. Alhoewel er veel vraagtekens blijven, komen enkele interessante details naar voren. Ten eerste: het device zal een pure coprocessor zijn die altijd moet worden aangestuurd door een host-processor, ondanks dat het met zijn X86-cores prima in staat is om een eigen OS te draaien. Ten tweede: het draaien van een eigen OS is juist kernfunctionaliteit van het systeem. Ten derde: in tegenstelling tot GPU-gebaseerde rekenversnellers zal het device waarschijnlijk de volledige applicatie huisvesten, niet alleen de delen die met parallelle hardware moeten worden versneld. En ten vierde: het systeem is incompatibel met X86 - een beetje.

Knights Corner zal de eerste commerciële variant zijn van Intels Many Integrated Cores-platform (MIC). Het platform is de culminatie van een aantal lijnen binnen Intel: de min of meer mislukte Larrabee-GPU, de single chip cloud computer en het teraflops-project. MIC is gericht op high performance computing-toepassingen (HPC), met name supercomputers. GPU winnen hier snel terrein voor kleine maar rekenintensieve taken. Intels troefkaart is dezelfde waarmee het zich ook tegen andere architecturen afzet: de versneller is gebaseerd op de X86-instructieset en zou daarmee makkelijker te programmeren zijn.

Het MIC-platform brengt daarvoor tientallen eenvoudige X86-cores samen op een enkele chip en verbindt met een snel netwerk en logica om de caches van elke core te synchroniseren. De cores zijn gebaseerd op de oude Pentium III-architectuur maar gepimpt met krachtige SimD-hardware, multithreading en 64-bit geheugenadressering. Op het moment is er al een testchip in omploop, Knights Ferry genaamd, met 32 cores. Knights Corner, die dit of volgend jaar moet verschijnen, zal meer dan vijftig cores bevatten - Intel doet er nog vaag over op het moment.

Intel heeft wel de instructieset vrijgegeven voor deze MIC-cores. Onder meer uitbreidingen voor de SimD-hardware zijn hierin opgenomen. Naar nu blijkt, is de instructieset verrassend genoeg niet geheel compatibel met de bestaande X86-Isa. Gecompileerde applicaties zijn niet zonder meer te draaien op de coprocessor.

Applicatieontwikkelaars gebruiken evenwel een hoogniveauprogrammeertaal en hoeven zich hier weinig van aan te trekken, zegt Reinders. Waarom de MIC dan toch interessant is voor de ontwikkelaar, is vanwege het multicore-programmeermodel. Dat is gebaseerd op symmetrische schaling en vectoriseren, twee technieken die binnen het domein van de ‘klassieke’ multicore vallen. De programmeur kan met bijvoorbeeld OpenMP, de Cilk-programmeertaal of een parallelle bibliotheek parallelliteit in zijn code aangeven en de compiler het zware werk laten doen.

Dat sluit volgens Intel beter aan bij de beleving van de programmeur dan het programmeren van een GPU-versneller via een methode als Cuda of OpenCL, waar de programmeur specifieke delen naar de GPU delegeert. Bovendien, zo schrijft Reinders, zijn dit soort optimalisaties generiek: voor een standaard multicore processor moet de programmeur hetzelfde doen als voor de MIC.

Daarmee komt de applicatie wel geheel op de MIC te draaien, uitgesmeerd over meerdere processoren. Dat is anders dan bij een GPU-gebaseerde aanpak, waarbij de programmaflow op de CPU draait en de rekenintensieve delen op de GPU.
Opmerkelijk is dat de MIC’s als volledig onafhankelijke subsystemen worden gezien, met een voltallig embedded Linux-OS als hart. Intel heeft hiervoor de nodige wijzigingen aan de kernel en GCC-compiler vrijgegeven. Over de PCI Express-bus wordt een netwerkverbinding geopend zodat de gebruiker bijvoorbeeld via SSH verbinding kan leggen met de NIC en schijfruimte op het (Linux-gebaseerde) host-systeem kan delen. Daarnaast is er een pakket GUI- en commandoregeltools nodig voor het beheren, opstarten, inspecteren en flashen van de MIC-devices in een systeem. Daarnaast heeft Intel het Scif-protocol (Symmetric Communications Interface) ontworpen om vanuit de applicatie specifieke commando’s te versturen tussen MIC en host-processor.

Met zijn eigen parallellisatiestudio’s ondersteunt Intel het device al en de Universiteit van Texas is zelfs al begonnen met de bouw van een MIC-gebaseerde supercomputer. Uit de uitingen van Intel en zijn partners blijkt dat er nog een lange weg te gaan is om software voor Knights Corner in de vingers te krijgen. De GCC-compiler kan bijvoorbeeld nog niet overweg met de SimD-instructies van de MIC en ook de OpenMP-ondersteuning is nog lang niet voldoende. Maar als de programmeermodellen meer uitgekristalliseerd zijn zal Intel ook daar zorg voor dragen.

In een tweetal blogposts onthult James Reinders, directeur softwareproducten en multicore-evangelist bij Intel, enkele details over Knights Corners, Intels monster voor high-performance computing (HPC) gebaseerd op een groot aantal general-purpose X86-cores. Alhoewel er veel vraagtekens blijven, komen enkele interessante details naar voren. Ten eerste: het device zal een pure coprocessor zijn die altijd moet worden aangestuurd door een host-processor, ondanks dat het met zijn X86-cores prima in staat is om een eigen OS te draaien. Ten tweede: het draaien van een eigen OS is juist kernfunctionaliteit van het systeem. Ten derde: in tegenstelling tot GPU-gebaseerde rekenversnellers zal het device waarschijnlijk de volledige applicatie huisvesten, niet alleen de delen die met parallelle hardware moeten worden versneld. En ten vierde: het systeem is incompatibel met X86 - een beetje. Knights Corner zal de eerste commerciële variant zijn van Intels Many Integrated Cores-platform (MIC). Het platform is de culminatie van een aantal lijnen binnen Intel: de min of meer mislukte Larrabee-GPU, de single chip cloud computer en het teraflops-project. MIC is gericht op high performance computing-toepassingen (HPC), met name supercomputers. GPU winnen hier snel terrein voor kleine maar rekenintensieve taken. Intels troefkaart is dezelfde waarmee het zich ook tegen andere architecturen afzet: de versneller is gebaseerd op de X86-instructieset en zou daarmee makkelijker te programmeren zijn. Het MIC-platform brengt daarvoor tientallen eenvoudige X86-cores samen op een enkele chip en verbindt met een snel netwerk en logica om de caches van elke core te synchroniseren. De cores zijn gebaseerd op de oude Pentium III-architectuur maar gepimpt met krachtige SimD-hardware, multithreading en 64-bit geheugenadressering. Op het moment is er al een testchip in omploop, Knights Ferry genaamd, met 32 cores. Knights Corner, die dit of volgend jaar moet verschijnen, zal meer dan vijftig cores bevatten - Intel doet er nog vaag over op het moment. Intel heeft wel de instructieset vrijgegeven voor deze MIC-cores. Onder meer uitbreidingen voor de SimD-hardware zijn hierin opgenomen. Naar nu blijkt, is de instructieset verrassend genoeg niet geheel compatibel met de bestaande X86-Isa. Gecompileerde applicaties zijn niet zonder meer te draaien op de coprocessor. Applicatieontwikkelaars gebruiken evenwel een hoogniveauprogrammeertaal en hoeven zich hier weinig van aan te trekken, zegt Reinders. Waarom de MIC dan toch interessant is voor de ontwikkelaar, is vanwege het multicore-programmeermodel. Dat is gebaseerd op symmetrische schaling en vectoriseren, twee technieken die binnen het domein van de ‘klassieke’ multicore vallen. De programmeur kan met bijvoorbeeld OpenMP, de Cilk-programmeertaal of een parallelle bibliotheek parallelliteit in zijn code aangeven en de compiler het zware werk laten doen. Dat sluit volgens Intel beter aan bij de beleving van de programmeur dan het programmeren van een GPU-versneller via een methode als Cuda of OpenCL, waar de programmeur specifieke delen naar de GPU delegeert. Bovendien, zo schrijft Reinders, zijn dit soort optimalisaties generiek: voor een standaard multicore processor moet de programmeur hetzelfde doen als voor de MIC. Daarmee komt de applicatie wel geheel op de MIC te draaien, uitgesmeerd over meerdere processoren. Dat is anders dan bij een GPU-gebaseerde aanpak, waarbij de programmaflow op de CPU draait en de rekenintensieve delen op de GPU.
Opmerkelijk is dat de MIC’s als volledig onafhankelijke subsystemen worden gezien, met een voltallig embedded Linux-OS als hart. Intel heeft hiervoor de nodige wijzigingen aan de kernel en GCC-compiler vrijgegeven. Over de PCI Express-bus wordt een netwerkverbinding geopend zodat de gebruiker bijvoorbeeld via SSH verbinding kan leggen met de NIC en schijfruimte op het (Linux-gebaseerde) host-systeem kan delen. Daarnaast is er een pakket GUI- en commandoregeltools nodig voor het beheren, opstarten, inspecteren en flashen van de MIC-devices in een systeem. Daarnaast heeft Intel het Scif-protocol (Symmetric Communications Interface) ontworpen om vanuit de applicatie specifieke commando’s te versturen tussen MIC en host-processor. Met zijn eigen parallellisatiestudio’s ondersteunt Intel het device al en de Universiteit van Texas is zelfs al begonnen met de bouw van een MIC-gebaseerde supercomputer. Uit de uitingen van Intel en zijn partners blijkt dat er nog een lange weg te gaan is om software voor Knights Corner in de vingers te krijgen. De GCC-compiler kan bijvoorbeeld nog niet overweg met de SimD-instructies van de MIC en ook de OpenMP-ondersteuning is nog lang niet voldoende. Maar als de programmeermodellen meer uitgekristalliseerd zijn zal Intel ook daar zorg voor dragen.

Wilt u het volledige artikel lezen?

Abonneer direct op onze nieuwsbrief

abonneren

Topbanen in hightech

Software engineer

Promexx

Eindhoven

AGENDA

Cooling of electronics

29 mei - 31 mei

Eindhoven

System architect(ing)

17 juni - 21 juni

Eindhoven

Summer school Opto-mechatronics

24 juni - 28 juni

Eindhoven

Bits&Chips Hardware Conference 2013

12 juni

's-Hertogenbosch

Bits&Chips 2013 Embedded Systems

7 november

's-Hertogenbosch

Vul hieronder uw e-mailadres in om u aan te melden voor de digitale nieuwsbrief.


    


Mocht u al geabonneerd zijn en wilt u zich af melden van de nieuwsbrief, klik hier.