Hoogwaardige computing: de bottleneck

High Performance Computing (HPC) heeft zich gevestigd als een fundamentele pijler in het technologische veld, door problemen van grote schaal en snelheid aan te pakken die onbereikbaar zijn via traditionele computermethoden. Toch brengt deze geavanceerde capaciteit zijn eigen uitdagingen met zich mee, in het bijzonder het verschijnen van knelpunten in het gegevensverwerkingsproces.

Het probleem doet zich in eerste instantie voor bij de verwerking van grote hoeveelheden gegevens. Het verwerken van een tekstgegevensset van 1 TB kan eenvoudig zijn, maar het scenario verandert radicaal wanneer de hoeveelheid gegevens toeneemt tot 1 PB of meer en de complexiteit van de betrokken wiskundige problemen intensiveert.

Een aanvankelijke oplossing zou kunnen zijn om de gegevens serieel in de computergeheugen te laden voor verwerking. Echter, hier duikt de eerste grote hindernis op: de snelheid van opslag in vergelijking met het geheugen en de CPU. Dit snelheidsverschil tussen componenten impliceert dat de systeemprestaties zullen worden beperkt door het langzaamste component.

Om deze uitdaging aan te pakken, is een alternatief het verdelen van de gegevensset in kleinere delen en deze te distribueren over verschillende computers voor analyse en parallelle oplossing. Dit benadering veronderstelt echter dat gegevens kunnen worden gedeeld zonder betekenis te verliezen en dat uitvoering parallel kan plaatsvinden zonder het eindresultaat te wijzigen. Daarnaast vereist het de integratie van een tool die zowel de gegevensverdeling als het simultane beheer van meerdere computers orkestreert.

Een andere uitdaging ontstaat met de noodzaak van fysieke en logische interconnectie tussen meerdere computers om de werklast te beheren. Het netwerk introduceert extra betrouwbaarheid en prestatieproblemen. Bijvoorbeeld, het verlies of vertraging van gegevens op het netwerk kan de parallelle uitvoering ernstig beïnvloeden.

In scenario’s waarbij grote gegevenssets structurele afhankelijkheden bevatten, neemt de complexiteit toe. Het verwerken van gegevens vereist een slimme gouverneur om ze optimaal te beheren en te ordenen. Zonder dit, zelfs met voldoende opslag- en computerbronnen, is het mogelijk dat deze niet efficiënt of correct worden gebruikt.

Parallel aan deze gegevens- en netwerkproblemen zijn er fysieke uitdagingen inherent aan individuele computers die zijn ontworpen voor hoogwaardige operaties. De warmteproductie in de CPU en de beperkingen in de grootte van de fysieke geheugenmodules en de lokale opslagsystemen spelen een cruciale rol in het bepalen van hoe grote gegevenssets kunnen worden verwerkt.

Een alternatieve aanpak zou het gebruik van meerdere computers kunnen zijn, maar door ze te behandelen als één enkele entiteit. Dit introduceert echter het concept van Mean Time Between Failures (MTBF), een kritieke waarde in HPC vanwege de parallelle aard. De mogelijkheid van falen in een gecombineerd computersysteem is aanzienlijk groter dan bij individuele machines. Bijvoorbeeld, het falen van één harde schijf in een cluster kan een kritieke storing in het hele systeem veroorzaken. Dit risico neemt toe met de grootte en de hoeveelheid gegevens die in kleine delen moeten worden geanalyseerd in talrijke instanties van parallelle computing.

Met supercomputerclusters kan de MTBF zo laag zijn als enkele minuten. Als de benodigde uitvoeringstijd om de taken op te lossen deze waarde overschrijdt, moeten mechanismen worden opgenomen die ervoor zorgen dat het potentiële verlies van individuele componenten het systeem als geheel niet beïnvloedt. Elk toegevoegd veiligheidsmechanisme introduceert echter een extra kostenpost en een mogelijke prestatiepenalty.

Hoewel parallelle uitvoering misschien te complex lijkt, is het in de praktijk de enige haalbare methode om sommige wiskundige problemen op grote schaal op te lossen. De fysieke grenzen van individuele processoren en koelingsoverwegingen worden kritische factoren, die bepalen welke prestaties een enkele processor kan bereiken.

Ten slotte kan de optimale oplossing het gebruik zijn van meerdere computers behandeld als één verenigde entiteit, maar dit brengt zijn eigen unieke uitdagingen met zich mee. De behoefte aan een gegevensprogrammeur wordt essentieel. Deze moet snel genoeg zijn om geen prestatiepenalty’s te introduceren, zich bewust zijn van de topologie van de infrastructuur waarin hij werkt, en in staat zijn te schalen indien nodig.

Samengevat, er zijn geen snelkoppelingen in High Performance Computing. Elke HPC-opstelling is uniek en vereist een andere benadering. Bij Canonical begrijpen we de enorme uitdagingen waarmee HPC-professionals worden geconfronteerd en willen we helpen sommige van de kernproblemen in de wereld van HPC te vereenvoudigen, door HPC-software en -tools toegankelijker, gebruiksvriendelijker en onderhoudsvriendelijker te maken. Ons doel is om de werklast van HPC-klanten te optimaliseren en hun kosten te verlagen, zowel in hardware als in elektriciteitsrekeningen, door gebruik te maken van open-source applicaties en hulpmiddelen van de HPC-gemeenschap en van onze eigen software.

Scroll naar boven