Het begin van het nieuwe jaar is voor velen een tijd van goede voornemens en vooruitblikken op het komende jaar. En ook in de wereld van high performance computing (hpc) spelen een aantal trends die komend jaar gaan doorzetten. Vier hpc-trends voor 2015:
1) Supercomputers worden superdatacenters. Ik schreef het al meermaals; het uiterlijk en de inrichting van supercomputers zijn de afgelopen tien jaar sterk veranderd. In de jaren negentig domineerden symmetrische multiprocessor- en massively parallel processing-systemen. Tegenwoordig zijn de meeste supercomputers clusters van commodity hardware. Om je een idee te geven: ieder half jaar komt er een lijst uit van de vijfhonderd grootste supercomputers ter wereld. Zo’n 85 procent van die lijst heeft nu al een clusterarchitectuur, vergelijkbaar met een gewoon datacenter. Dit gaat de komende jaren alleen maar toenemen.
2) Groei in de rekenkracht van de top vijfhonderd supercomputersystemen zwakt af. Nu we toch bij die top vijfhonderd van grootste supercomputers zijn, ook daar is wel het een en ander over op te merken. Ieder jaar worden supercomputers beter, sneller en krachtiger. De Wet van Moore is gewoon toepasbaar. Er is echter wel een vervlakking in de groei van die rekenkracht te zien, en bij de laatste publicatie van de lijst was de rekenkrachtgroei historisch laag. Het is nog onduidelijk hoe dit precies komt en of dit een tijdelijk fenomeen is. Het kan ermee te maken hebben dat hpc voor onderzoeksdoeleinden de laatste jaren minder aandacht krijgt ten faveure van hpc voor businessdoeleinden. Onderzoeksinstellingen lopen voorop in de top vijfhonderd.
3) Kansen voor hpc zitten vooral in big data. Big data is een echt hypewoord en dit is niet anders in de hpc-wereld. In feite is het analyseren van big data een vorm van high performance computing die wordt gekenmerkt door een ander soort verwerking. Data in het systeem wordt niet verplaatst naar een krachtig en snel rekencentrum (compute centric), maar wordt verwerkt op de opslaglocatie zelf (data centric) zodat het netwerk zo min mogelijk wordt gebruikt. Het is een relatief goedkope vorm van hpc die zich erg goed leent voor bijvoorbeeld trendanalyses of fraudeanalyses en wordt steeds meer toegepast. Met name commerciële partijen onderzoeken momenteel de mogelijkheden van big data. Die mogelijkheden zijn nog lang niet uitgeput.
4) Intel krijgt concurrentie. Intel is met afstand de grootste wereldwijde leverancier van CPU-chips en dat zal zo blijven. Er komen echter wel steeds meer alternatieven beschikbaar en afgelopen jaar zagen we de concurrentie op dit gebied toenemen. Zo hebben diverse vendoren, waaronder Cavium en Applied Micro, apparatuur met server-grade ARM-processoren op de markt gebracht. En tijdens Supercomputing 2014 in november, het grootste jaarlijkse evenement op het gebied van high performance computing, annonceerde IBM de Coral-systemen, nieuwe supercomputers gebaseerd op technologie van IBM en Nvidia. Of het op de prijs van chips effect gaat hebben is nog onduidelijk, maar Intel krijgt er wel meer concurrentie dan voorheen.
Deze trends zijn nogal gericht op de hardware. Als trends aan de software kant zou ik willen toevoegen:
1. Het gebruik van Hadoop en MapReduce voor ‘big data’ verwerking wordt toegankelijker en eenvoudiger door frameworks zoals Apache Spark.
2. Naast batch-verwerking zal (near) real-time verwerking van grote hoeveelheden data steeds meet een vereiste worden. Hiermee zal de vraag toenemen naar software ontwikkelaars met kennis van ‘reactive programming’ en ‘functional programming’.
3. Omdat de meeste projectmanagers en software ontwikkelaars denken dat het bovenstaande mogelijk is met hun huidige Java-kennis (aangevuld met Java 8) zullen veel projecten mislukken. De meeste projecten die gebruik maken van Scala, Erlang en (jazeker) Javascript zullen slagen.
1) Wetenschappelijke HPC wordt eigenlijk alleen maar gedaan in Fortran, C danwel C++ kan ik je vertellen. Java Scala Erlang etc. zijn een druppel op een gloeiende plaat aldaar. Python is nog enigsinds populair.
2) Map reduce is een model/methode/algorithme om alleen bepaalde specifieke problemen op te lossen. Er zijn veel meer problemen die je onder de wollige term ‘big data’ kunt scharen die niet gunstig zijn voor de map-reduce benadering en dus hadoop file systemen.
3) er blijft altijd batch verwerking bestaan; als is het maar omdat een mens niet 96h wakker kan blijven achter een toetsebord voor een som. Computers die ’s nachts tijdens ‘slaap tijd’ aan staan kosten ook geld en stroom.
Kijk vooral eens op https://surfsara.nl/nl/sr-adviseur-wetenschappelijk-programmeur
De traditionele betekenis van HPC is sterk aan het verwateren…
@HPC-er: Ik ben het grotendeels met je eens, voor zover het wetenschappelijke HPC betreft.
Natuurlijk is lang niet alles te beschrijven als MapReduce probleem in de betekenis die Google eraan heeft gegeven. Veel meer is te beschrijven als map-reduce probleem wanneer je de definitie uit de jaren 1960 hanteert. Waar het mij om ging is dat MR makkelijker te gebruiken wordt, waardoor het meer gebruikt zal worden, terecht of onterecht.
Python was ik inderdaad vergeten (en R heb ik ook niet genoemd). Batch verwerking zal er zijn, maar near real-time is in opkomst voor bepaalde toepassingen.
Verder heb ik geen ambitie om terug te gaan naar de wetenschappelijke wereld…
@HPC-er
+1 voor je opmerking aangaande erosie definities.
Leuk onderwerp, grappig om te lezen van de HPC’er dat Fortran een nog steeds gebruike taal is, herinner me dat van de nummerieke wiskunde een lange tijd terug. En natuurlijk C, die miste ik al in het rijtje van Nico. Een aantal malen aan (near?) real time systemen gewerkt en dat altijd in C met soms een vleugje C++ gedaan. Hele fijne taal, C. Maar nu dus talen de Erlang, Scala en Go. Wat voegen die voor extra’s toe? Onderdeel van de taal is ook dat het aansluit bij het probleem wat je wilt oplossen dus benieuwd voor welke soort problemen deze talen passend zijn. Al is het wel, alleen de naam Erlang stuit me al tegen de borst, ongezien een nare ervaring mee!
Kan me wel voorstellen dat er een nieuwe trits van problemen is ontstaan die zich minder makkelijk in een datacentrum laten oplossen waarbij grote mate van gedistribueerdheid een rol speelt. HPC al rekbaar begrip? Is dat waar Map Reduce en Hadoop voor gebruikt worden? Ken beiden niet goed. Dat er steeds meer van de achterliggende systemen vereist wordt gevraagd (capaciteit, performance) is duidelijk. Nico, ben benieuwd waarom je denkt dat voor dit soort veeleisende systemen Java niet de omgeving is om dat in te maken. Ook weer wat nieuws geleerd, reactive programming.
Het is wel handig om op te merken dat het gaat om nieuwe fortran uitvoeringen en niet om de traditionele fortran omgevingen. Met name volgens mij vanwege het aanspreken van parallel processing. Met C++ lijkt het mij dat je meer control hebt over de hardware, met name als dit om commodity hardware gaat.
Naarmate de tijd vordert en de wet van Moore nog steeds geldt dal HPC verdwijnen, op een gegeven moment is alles snel en zal de software het verschil gaan uitmaken.
Bij HPC kan het gebruik van flash geheugen nog een grotere rol gaan spelen, je ziet dat de clusters nog zijn gebaseerd op SATA schijven en natuurlijk veel RAM geheugen. Met flash kan je versnellen.