Parallel universum

Toen Anwar Ghuloum in 2002 bij Intel kwam werken, was het bedrijf oppermachtig onder de chipmakers, vooral omdat het processors leverde die op steeds hogere snelheden draaiden. We zaten al op drie gigahertz met Pentium 4, en de routekaart vroeg om toekomstige kloksnelheden van 10 gigahertz en meer, herinnert Ghuloum zich, die een doctoraat heeft van Carnegie Mellon en nu een van de belangrijkste ingenieurs van het bedrijf is. In datzelfde jaar zei Chief Technology Officer Pat Gelsinger op Intel's ontwikkelaarsconferentie: We zijn op schema, in 2010, voor 30-gigahertz-apparaten, 10 nanometer of minder, die een tera-instructie van prestaties leveren. Dat zijn een biljoen computerinstructies per seconde.



Maar Gelsinger had het mis. Intel en zijn concurrenten maken nog steeds processors van minder dan vier gigahertz, en iets van ongeveer vijf gigahertz wordt, althans voorlopig, gezien als de maximaal haalbare snelheid voor siliciumtechnologie.

Reddingslijn voor hernieuwbare energie

Dit verhaal maakte deel uit van ons nummer van januari 2009





  • Zie de rest van het probleem
  • Abonneren

Het is niet zo dat de wet van Moore - het idee dat het aantal transistors op een chip elke twee jaar verdubbelt - is ingetrokken. In plaats daarvan hebben onverwachte problemen met warmteopwekking en stroomverbruik een praktische limiet gesteld aan de kloksnelheden van processors, of de snelheid waarmee ze instructies kunnen uitvoeren. Nieuwe technologieën, zoals spintronica (die de spinrichting van een enkel elektron gebruikt om gegevens te coderen) en kwantumtransistors (of tunneling) kunnen uiteindelijk computers vele malen sneller laten werken dan nu, terwijl ze veel minder stroom verbruiken. Maar die technologieën zijn nog minstens een decennium verwijderd van het bereiken van de markt, en ze zouden de vervanging vereisen van productielijnen voor halfgeleiders die vele tientallen miljarden dollars hebben gekost om te bouwen.

Dus om het meeste uit de beschikbare technologieën te halen, kiezen chipmakers voor een andere benadering. De extra transistors die door de wet van Moore worden voorspeld, worden niet gebruikt om individuele processors sneller te laten werken, maar om het aantal processors in een chip te vergroten. Chips met twee processors - of cores - zijn nu de desktopstandaard en chips met vier cores komen steeds vaker voor. Op de lange termijn voorziet Intel honderden cores per apparaat.

Maar hier is het ding: terwijl het hardwareprobleem van oververhitting van chips zich goed leent voor de hardware-oplossing van multicore computing, leidt die oplossing op zijn beurt tot een lastig softwareprobleem. Hoe programmeer je voor meerdere processors? Het is de taak van Anwar Ghuloum om dat uit te zoeken, met de hulp van programmeergroepen die hij leidt in de Verenigde Staten en China.



Microprocessorbedrijven nemen een enorm risico bij het toepassen van de multicore-strategie. Als ze geen gemakkelijke manieren kunnen vinden om software voor de nieuwe chips te schrijven, kunnen ze de steun van softwareontwikkelaars verliezen. Dit is de reden waarom Sony's multicore PlayStation 3-gamemachine laat op de markt kwam en nog steeds minder gametitels heeft dan zijn concurrenten.

Het probleem met silicium
Tijdens de eerste 30 jaar van de ontwikkeling van microprocessoren was de manier om de prestaties te verbeteren het maken van chips met steeds kleinere functies en steeds hogere kloksnelheden. De originele Apple II-computer uit 1977 maakte gebruik van een 8-bits processor met een snelheid van één megahertz. De huidige pc-standaard is een 64-bits chip met een snelheid van 3,6 gigahertz, in feite 28.800 keer zo snel. Maar daar lijkt dit traject te eindigen. Rond 2002 waren de kleinste kenmerken die op een chip konden worden geëtst met behulp van fotolithografie geslonken tot 90 nanometer - een schaal waarop onvoorziene effecten ervoor zorgden dat veel van de elektriciteit die in elke chip werd gepompt er gewoon uit lekte, waardoor er warmte ontstond maar er helemaal geen werk werd verricht . Ondertussen zaten transistors zo strak op chips gepropt dat de warmte die ze produceerden niet kon worden geabsorbeerd en afgevoerd. Tegen de tijd dat de kloksnelheden vijf gigahertz bereikten, realiseerden de chipmakers zich, zouden chips zo heet worden dat zonder ingewikkelde koelsystemen het silicium waaruit ze waren gemaakt zou smelten. De industrie had een andere manier nodig om de prestaties te verbeteren.

Vanwege de complexe ontwerpen die high-speed single-core chips nu nodig hebben, kunnen meerdere cores dezelfde hoeveelheid verwerkingskracht leveren terwijl ze minder elektriciteit verbruiken. Minder elektriciteit genereert minder warmte. Bovendien verspreidt het gebruik van meerdere kernen de warmte die er is.

De meeste computerprogramma's zijn echter niet ontworpen met meerdere kernen in gedachten. Hun instructies worden uitgevoerd in een lineaire volgorde, zonder dat er parallel iets gebeurt. Als uw computer meer dan één ding tegelijk lijkt te doen, komt dat omdat de processor sneller tussen activiteiten schakelt dan u kunt bevatten. De gemakkelijkste manier om meerdere cores te gebruiken is dus door middel van een taakverdeling, bijvoorbeeld door het besturingssysteem op de ene core te laten draaien en een applicatie op de andere. Dat vereist geen heel nieuw programmeermodel en het kan werken voor de chips van vandaag, die twee of vier kernen hebben. Maar hoe zit het met die van morgen, die 64 cores of meer kan hebben?



Oud werk opnieuw bekijken
Gelukkig, zegt Leslie Valiant, een professor in informatica en toegepaste wiskunde aan de Harvard University, werden de grondbeginselen van parallellisme decennia geleden uitgewerkt op het gebied van high-performance computing, dat wil zeggen met supercomputers. De uitdaging is nu, zegt Valiant, om een ​​manier te vinden om dat oude werk bruikbaar te maken.

vertraagt ​​de zwaartekracht?

De supercomputers die multicore computing inspireerden, waren apparaten van de tweede generatie uit de jaren tachtig, gemaakt door bedrijven als Thinking Machines en Kendall Square Research. Die computers gebruikten honderden of zelfs duizenden kant-en-klare processors, die ze parallel draaiden. Sommige werden in opdracht van het Amerikaanse Defense Advanced Research Projects Agency als een goedkoper alternatief voor Cray-supercomputers. De lessen die zijn geleerd bij het programmeren van deze computers, zijn een gids om multicore-programmering vandaag de dag te laten werken. Dus Grand Theft Auto kan binnenkort profiteren van software-onderzoek dat twee decennia geleden is gedaan om het ontwerp van waterstofbommen te helpen.

In de jaren tachtig werd duidelijk dat het belangrijkste probleem van parallel computergebruik dit is: het is moeilijk om software uit elkaar te halen, zodat het door honderden processors parallel kan worden verwerkt, en het dan weer in de juiste volgorde in elkaar kan zetten zonder dat de het beoogde resultaat beschadigd raakt of verloren gaat. Computerwetenschappers ontdekten dat hoewel sommige problemen gemakkelijk konden worden geparallelliseerd, andere dat niet konden. Zelfs wanneer problemen parallel zouden kunnen lopen, kunnen de resultaten nog steeds in de verkeerde volgorde worden geretourneerd, in wat een raceconditie werd genoemd. Stelt u zich eens voor dat twee bewerkingen parallel lopen, waarvan de ene voor de andere moet zijn voltooid om het algehele resultaat correct te laten zijn. Hoe zorg je ervoor dat de juiste de race wint? Stel je nu tweeduizend of twee miljoen van dergelijke processen voor.

Wat we van dit eerdere werk op het gebied van high-performance computing hebben geleerd, is dat er problemen zijn die zich lenen voor parallellisme, maar dat parallelle toepassingen niet gemakkelijk te schrijven zijn, zegt Marc Snir, mededirecteur van het Universal Parallel Computing Research Center (UPCRC) van het Universiteit van Illinois in Urbana-Champaign. Normaal gesproken gebruiken programmeurs gespecialiseerde programmeertalen en hulpmiddelen om instructies voor de computer te schrijven in termen die voor mensen gemakkelijker te begrijpen zijn dan de enen en nullen van binaire code. Maar die talen waren ontworpen om lineaire opeenvolgingen van bewerkingen weer te geven; het is moeilijk om duizenden parallelle processen te organiseren via een lineaire reeks opdrachten. Om vanaf het begin parallelle programma's te maken, zijn talen nodig waarmee programmeurs code kunnen schrijven zonder na te denken over hoe ze parallel kunnen programmeren - zoals gewoonlijk, terwijl de software uitzoekt hoe de instructies effectief over processors kunnen worden verdeeld. Er zijn nog geen goede tools om het parallellisme te verbergen of duidelijk te maken [hoe dit te bereiken], zegt Snir.

Felle lampen: In 1987 bracht Thinking Machines zijn CM-2-supercomputer (hierboven) uit, waarin 64.000 processors parallel liepen. Het bedrijf ging in 1994 failliet, maar de impact op de computer was aanzienlijk.

Om dergelijke problemen op te lossen, hebben bedrijven een aantal grijsaards van supercomputers uit de jaren 80 teruggeroepen. David Kuck, bijvoorbeeld, is emeritus hoogleraar aan de Universiteit van Illinois en staat bekend als ontwikkelaar van tools voor parallel programmeren. Nu werkt hij aan multicore-programmering voor Intel. Dat geldt ook voor een heel team dat is ingehuurd door de voormalige Digital Equipment Corporation; in een vorig professioneel leven ontwikkelde het Digital's implementatie van de Message Passing Interface (MPI), de dominante softwarestandaard voor supercomputers met meerdere machines tegenwoordig.

In zekere zin hebben deze oude spelers het gemakkelijker dan de vorige keer. Dat komt omdat veel van de hedendaagse multicore-applicaties heel anders zijn dan die van de legendarische mainframe-ontwerper Gene Amdahl, die theoretiseerde dat de snelheidswinst die haalbaar was door meerdere processors te gebruiken, werd beperkt door de mate waarin een bepaald programma kon worden geparallelliseerd.

Computers verwerken grotere hoeveelheden gegevens dan ooit tevoren, maar hun verwerkingstaken zijn zo bij uitstek geschikt voor parallellisatie dat de beperkingen van de wet van Amdahl - beschreven in 1967 - als helemaal geen beperkingen beginnen te voelen. Het eenvoudigste voorbeeld van een massaal parallelle taak is het met brute kracht bepalen van een onbekend wachtwoord door alle mogelijke tekencombinaties te proberen. Het verdelen van de mogelijke oplossingen over 1.000 processors kan niet anders dan 1.000 keer sneller zijn. Hetzelfde geldt voor de huidige processorintensieve toepassingen voor het coderen van video- en audiogegevens. Het parallel comprimeren van filmframes is bijna perfect efficiënt. Maar als parallelle verwerking gemakkelijker te gebruiken is voor vandaag, is het niet per se veel gemakkelijker om te doen. Om het gemakkelijker te maken, is een gezamenlijke inspanning nodig van chipmakers, softwareontwikkelaars en academische computerwetenschappers. De UPCRC van Illinois wordt inderdaad gefinancierd door Microsoft en Intel - de twee bedrijven die het meeste te winnen hebben als multicore-computing slaagt, en het meest te verliezen als het mislukt.

Nieuwe gereedschappen uitvinden
Als software steeds complexer wordt, is dat niet alleen omdat er meer functies aan worden toegevoegd; het is ook omdat de code is gebaseerd op steeds meer abstractielagen die de complexiteit verbergen van wat programmeurs werkelijk doen. Dit is niet zomaar een opgeblazen gevoel: programmeurs hebben abstracties nodig om binaire basiscode het steeds geavanceerdere werk te laten doen dat we willen dat het doet. Als het echter gaat om schrijven voor parallelle processors, gebruiken programmeurs tools die zo rudimentair zijn dat James Larus, directeur software-architectuur voor het Data Center Futures-project bij Microsoft Research, ze vergelijkt met de laagste en moeilijkste taal die een programmeur kan gebruiken .

We konden ons niet voorstellen de software van vandaag in assembler te schrijven, zegt hij. Maar om de een of andere reden denken we dat we parallelle software kunnen schrijven die even geavanceerd is als de nieuwe en kritische stukken die zijn geschreven in wat neerkomt op parallelle assembleertaal. Dat kunnen we niet.

Daarom brengt Microsoft zo snel mogelijk hulpprogramma's voor parallelle programmering uit. F# is bijvoorbeeld de parallelle versie van Microsoft van de ML-programmeertaal voor algemene doeleinden. Het paralleliseert niet alleen bepaalde functies, maar het voorkomt ook dat ze onjuist samenwerken, zodat parallelle software gemakkelijker te schrijven wordt.

Intel stuurt Ghuloum ondertussen een week per maand naar het buitenland om met softwareontwikkelaars te praten over multicore-architectuur en parallelle programmeermodellen. We zijn uitgegaan van de filosofie dat het 'probleem' van parallel programmeren niet binnen een jaar of twee zal worden opgelost en dat er veel stapsgewijze verbeteringen - en een klein aantal sprongen - in bestaande talen nodig zijn, zegt Ghuloum. Ik heb ook de neiging om te denken dat we dit niet in een vacuüm kunnen doen; dat wil zeggen, zonder significante feedback van de programmeur, zullen we ongetwijfeld op de een of andere manier met het verkeerde eindigen.

In zowel de commerciële als de open-sourcemarkt maken andere nieuwe talen en tools gebruik van de kracht van multicore-verwerking of maskeren ze de complexiteit ervan. Hiertoe behoren het MapReduce-framework van Google, dat het gemakkelijker maakt om parallelle berekeningen over clusters van computers uit te voeren, en Hadoop, een open-sourceimplementatie van MapReduce die applicaties over duizenden knooppunten kan distribueren. Nieuwe programmeertalen zoals Clojure en Erlang zijn van de grond af ontworpen voor parallel computing. De populaire Facebook-chatapplicatie is deels in Erlang geschreven.

Ondertussen kan MIT-spin-off Cilk Arts programma's die zijn geschreven in de gevestigde taal C++ breken in threads die parallel kunnen worden uitgevoerd op meerdere kernen. En het in St. Louis gevestigde Appistry beweert dat zijn Enterprise Application Fabric automatisch applicaties voor het .Net-programmeerframework van Microsoft distribueert over duizenden servers zonder dat programmeurs een enkele regel van hun oorspronkelijke code hoeven te wijzigen.

De grenzen van multicore-computing

Net zoals Intels droom van 10- en 30-gigahertz-chips plaatsmaakte voor het nastreven van multicore-computing, zou multicore zelf misschien een kwestie van jaren zijn in plaats van decennia. De efficiëntie van parallelle systemen neemt af met elke toegevoegde processor, omdat kernen strijden om dezelfde gegevens; er komt een punt waarop het toevoegen van een extra kern aan een chip deze daadwerkelijk zal vertragen. Dat zou wel eens een praktische limiet kunnen stellen aan de multicore-strategie lang voordat we honderd-core pc's gaan kopen.

hoe ver kan een menselijk oog zien?

Maakt het echter uit? Hoewel er toepassingen kunnen zijn die de kracht van veel kernen vereisen, gebruiken de meeste mensen die toepassingen niet. Behalve hardcore gamers klagen maar weinig mensen dat hun pc te traag is. Microsoft heeft zelfs benadrukt dat Windows 7, de opvolger van het in moeilijkheden verkerende Windows Vista, minder rekenkracht en geheugen zal gebruiken dan Vista – een stap die noodzakelijk werd gemaakt door de populariteit van mobiele computerplatforms met een lager vermogen en de verwachte migratie van pc-applicaties naar Op internet gebaseerde servers. Een cynicus zou kunnen zeggen dat de zoektocht naar steeds grotere verwerkingskracht strikt commercieel is - dat halfgeleider- en computerbedrijven, softwareleveranciers en makers van mobiele telefoons ons nodig hebben om nieuwe gadgets te kopen.

Dus wat is het nadeel als multicore-computing mislukt? Wat is de waarschijnlijke impact op onze cultuur als we een technische zigzag nemen die een zaag had moeten zijn en plotseling niet in staat zijn om alle 64 processorkernen in onze toekomstige notebookcomputers te gebruiken?

Ik kan niet wachten! zegt Steve Wozniak, de uitvinder van de Apple II. De intrekking van de wet van Moore zou een renaissance voor softwareontwikkeling teweegbrengen, beweert hij. Alleen dan kunnen we eindelijk software maken die op een stabiel en duurzaam platform draait.

Op scholen, zegt Woz, is de levensduur van een bureau 25 jaar, een leerboek is 10 jaar en een computer is drie jaar, tops. Welke van deze apparaten kost het meest om te kopen en te bedienen? Wel, de pc natuurlijk. Wat heeft een restwaarde als de gebruiksduur voorbij is? Niet de pc - het kost geld om weg te gooien. Boeken kunnen in ieder geval worden verbrand voor warmte. Totdat de technologie voldoende vertraagt ​​zodat computerplatforms lang genoeg meegaan om economisch levensvatbaar te zijn, zullen ze niet echt intrinsiek zijn aan het onderwijs. Dus het einde van de wet van Moore, hoewel het er misschien slecht uitziet, zou eigenlijk heel goed zijn.

Robert X. Cringely schrijft al 30 jaar over technologie. Hij is de auteur van Accidental Empires: hoe de jongens van Silicon Valley hun miljoenen verdienen, buitenlandse concurrentie bestrijden en nog steeds geen date kunnen krijgen .

zich verstoppen

Werkelijke Technologieën

Categorie

Geen Categorie

Technologie

Biotechnologie

Technisch Beleid

Klimaatverandering

Mensen En Technologie

Siliconen Vallei

Computergebruik

Mit Nieuws Tijdschrift

Kunstmatige Intelligentie

Ruimte

Slimme Steden

Blockchain

Toekomst Verhaal

Alumni Profiel

Alumni Aansluiting

Mit Nieuws-Functie

1865

Mijn Uitzicht

Massaweg 77

Ontmoet De Auteur

Profielen In Vrijgevigheid

Gezien Op De Campus

Alumnibrieven

Nieuws

Verkiezingen 2020

Met Index

Onder De Koepel

Brandslang

Oneindige Verhalen

Pandemisch Technologieproject

Van De President

Coververhaal

Fotogallerij

Aanbevolen