De belofte van persoonlijke supercomputers

Vorige week kondigde Intel een onderzoeksproject aan dat geeks deed springen van vreugde: de eerste programmeerbare terascale supercomputer op een chip. Het bedrijf demonstreerde een enkele chip met 80 cores, of processors, en toonde aan dat deze cores konden worden geprogrammeerd om getallen te kraken met een snelheid van een biljoen bewerkingen per seconde, een maatstaf die bekend staat als een teraflop. De chip is ongeveer zo groot als een grote postzegel, maar heeft dezelfde rekensnelheid als een supercomputer die in 1996 ongeveer 2000 vierkante meter in beslag nam en ongeveer 1000 keer meer stroom trok.





Niet zo super: Een supercomputer in 1996 (linksboven) die in staat was om een ​​biljoen bewerkingen per seconde te berekenen, nam ongeveer 2.000 vierkante voet in beslag en verbruikte 500.000 watt. Onlangs onthulde Intel een 80-core research-chip (rechtsonder) die dezelfde rekensnelheid haalt, maar zo groot is als een grote postzegel en ongeveer 65 watt verbruikt.

Deze onderzoekschip is een van Intel's eerste stappen in de richting van massale multicore-technologie, zegt Nitin Borkar, engineeringmanager en labprojecthoofd bij Intel. Het doel, zegt hij, is om deze chip te gebruiken om technieken te testen die massaal multicore-technologie sneller, energiezuiniger en, het meest ontmoedigend, gemakkelijk te programmeren zouden kunnen maken. Deze technieken zullen worden doorgesluisd naar toekomstige producten die, als alles goed gaat, binnen vijf tot tien jaar kunnen verschijnen.

Maar bijna alle ingenieurs in de computerindustrie zijn het erover eens dat het maken van consumentencomputers met honderden kernen niet eenvoudig zal zijn. Sterker nog, velen weten niet eens zeker of het kan. De grootste uitdaging zal zijn om een ​​manier te vinden om software volledig te herzien, zodat applicaties kunnen profiteren van talrijke kernen. Dit omvat het leren van softwareontwikkelaars hoe ze code moeten schrijven voor multicore-machines - een taak die bekend staat als parallel programmeren - en het ontwikkelen van nieuwe tools waarmee ze nauwkeurig en efficiënt kunnen coderen.



Onderzoekers en visionairs denken al na over hoe deze supercomputerchips het beste kunnen worden ingezet. Intel denkt dat herkenning, mining en synthese ( RMS ) toepassingen zullen de sleutel zijn. Samen kunnen deze technologieën realtime taalvertaling via mobiele telefoons, realtime videozoekopdrachten op gesproken zin of afbeelding en betere aanbevelingssystemen voor winkelen, maaltijdplanning en zelfs gezondheidszorg mogelijk maken.

Om deze toepassingen te realiseren, zal de computerindustrie wat groeipijnen ervaren, zegt David Patterson , hoogleraar informatica aan de University of California, Berkeley. (Hij en zijn collega's hebben een website die discussies organiseert en een witboek en video's over het onderwerp biedt.) We bevinden ons in de vroege stadia van deze gigantische verandering, zegt Patterson. Hij beschrijft de richting waarin de industrie heeft besloten te gaan - het opgeven van prestatiegebonden single-coreprocessors voor multicore-technologie - als een Hail Mary-pas die in een voetbalwedstrijd wordt gegooid. Chipmakers zetten steeds meer cores op een chip, maar de software-engineers weten niet of ze dat kunnen bijhouden. Het is een spannende tijd voor onderzoekers, zegt Patterson, als we erachter kunnen komen hoe we de pas kunnen pakken.

Omdat de klokfrequentie - de maatstaf voor de processorsnelheid - van single-core chips decennialang gestaag bleef stijgen, konden programmeurs de uitdaging van parallel programmeren ontwijken, zegt John Shalf , computerwetenschapper aan het Lawrence Berkeley Laboratory, in Berkeley, CA. Hun programma's zouden sneller werken als ze maar 18 maanden zouden wachten op de komst van de volgende generatie chips, zegt hij. Maar rond 2002 werd het duidelijk dat deze single-core chips te veel stroom verbruikten en niet in staat zouden zijn om de snelheidsverhogingen vast te houden. Dus besloot de industrie het roer om te gooien: in plaats van te proberen meer snelheid uit een enkele processor te halen, voegden chipmakers gewoon een andere processor toe. Nu we de klokfrequentie niet kunnen verhogen, moeten we het parallellisme onder ogen zien, zegt Shalf, en de beste manier om de reactie van de industrie te karakteriseren, is wijdverbreide paniek.



Wat is er zo eng aan parallel programmeren? Om te beginnen is het gedegradeerd tot specialisten in de wereld van high-performance computing (HPC) die software schrijven die specifieke problemen oplost die draaien op machines met duizenden en miljoenen cores. De software kan modellen voor klimaatverandering maken of de vouwing van eiwitten voorspellen, maar het is geschreven voor een enkele moeizame taak, niet voor de grillen van consumenten die met een computer willen praten, high-definition video willen bekijken en hun gegevens in de gaten willen houden. bejaarde ouders halverwege het land.

Specifiek moeten parallelle programma's worden geschreven zodat taken op de juiste manier kunnen worden gedeeld tussen processors. Dit is lastig omdat niet alle applicaties natuurlijk componenten hebben die gescheiden kunnen worden; soms wanneer ze gescheiden zijn, worden taken op verschillende tijdstippen voltooid en creëren ze knelpunten. Bovendien zijn er complicaties met gedeelde bronnen: als een toepassing toegang moet hebben tot gegevens in het geheugen dat wordt gedeeld door tientallen of honderden andere kernen, kan het programma vertragen of vastlopen. Bovendien kan het debuggen van parallelle programma's een nachtmerrie zijn, omdat een fout vaak moeilijk te dupliceren is, waardoor de oorzaak van het probleem moeilijk te vinden is.

Maar ondanks alle uitdagingen is er hoop, zegt Shalf. HPC-onderzoekers hebben portfolio's van parallelle algoritmen ontwikkeld die nuttig kunnen zijn voor parallelle programma's voor consumenten. Bovendien zijn er al massaal multicore-producten op de markt, die aanwijzingen geven over de beste benaderingen vanuit zowel een architectuur- als een programmeerstandpunt. Bijvoorbeeld, grafisch bedrijf NVIDIA heeft zojuist een commerciële chip met 128 cores uitgebracht, ontworpen om afbeeldingen weer te geven voor toepassingen zoals videogames. Veel van de kernen zijn voor algemeen gebruik, wat betekent dat ze kunnen worden geprogrammeerd om veel verschillende grafische taken uit te voeren. Het alternatief is dat de kernen instructies hebben die vast op de chip zijn aangesloten.



Bovendien werken Intel, AMD en anderen samen met academische onderzoekers om te proberen een kader voor parallelle programmering te creëren waarover overeenstemming kan worden bereikt. Een benadering die er veelbelovend uitziet, wordt transactioneel geheugen genoemd, zegt: Krste Asanović , hoogleraar informatica aan het MIT. (Zie De problemen met multicore-computers .) Door gebruik te maken van transactiegeheugen, een combinatie van chiparchitectuur en code, zullen programmeurs meer sequentieel kunnen denken, zoals ze doen wanneer ze single-coresystemen programmeren, en het systeem het parallellisme laten leveren. Asanović zegt dat programmeurs instructies schrijven die lineair beginnen en eindigen, maar achter de schermen lopen ze parallel. Deze aanpak vereist de medewerking van zowel hardwareleveranciers als software-engineers, omdat de hardware en software moeten samenwerken. De twee gemeenschappen praten, zegt Asanović, maar er is geen consensus over hoe het eruit zal zien. Hij voegt eraan toe dat transactioneel geheugen hoogstwaarschijnlijk een combinatie van benaderingen zal zijn die het parallel programmeren gemakkelijker kunnen maken.

Zonder een consensus over hoe verder te gaan met multicore-technologie, zou de consumentencomputerindustrie echter over ongeveer vijf jaar tot stilstand kunnen komen, zegt Shalf. Maar hij is optimistisch omdat het veld van parallelle computing een nieuw gevoel van urgentie heeft gekregen met de opkomst van dual- en quad-core producten. In de academische wereld kunnen we het jarenlang oneens zijn, zegt hij, maar de industrie heeft een manier, met zijn economische noodzaak, om vrij snel tot een oplossing te komen.

zich verstoppen