High Performance Computing
Experts in High Performance Computing
Als u grote berekeningen doet, komt u al snel aan de grenzen van rekensnelheid en geheugen van een computer. We kunnen u helpen bij het optimaliseren van uw programmatuur voor de beschikbare hardware. Bijvoorbeeld voor multicore architecturen of GPU‘s. We halen het maximale uit de hardware door een combinatie van handig programmeren en het gebruik van tools als OpenMP, CUDA, OpenCL en OCCA. Ook kunnen we uw software geschikt maken voor heel krachtige rekensystemen zoals rekenclusters en cloud-oplossingen. Daarbij gaat het dan vaak om het paralleliseren van programmatuur, bijvoorbeld met MPI.
Hieronder leest u wat we te bieden hebben op het gebied van High Performance Computing. We hebben ook een whitepaper waarin staat wat er allemaal mogelijk is om een hogere performance te bereiken.
De voordelen van High Performance Computing
High Performance Computing biedt u de volgende voordelen.
Sneller resultaten
Voor veel operationele programmatuur is het belangrijk dat resultaten van een simulatie binnen een bepaalde tijd beschikbaar zijn. Maar los daarvan leidt een korte doorlooptijd ook tot efficiënter werken omdat het wachttijden vermindert.
Hogere nauwkeurigheid
Binnen dezelfde tijd kunt u een meer gedetailleerde berekening doen. Bijvoorbeeld door een fijner rekenrooster te gebruiken, door meer iteraties door te rekenen of (bij Monte Carlo berekeningen) meer steekproeven uit een kansverdeling te evalueren.
Betere modellen
Door optimalisatie vermindert de rekentijd en kunt u meer aspecten in een model meenemen. Dat vergroot de de betrouwbaarheid van de simulatie omdat er minder aannames en vereenvoudigingen nodig zijn.
Meer alternatieven
Binnen dezelfde tijd kunt u meer varianten van een ontwerp doorrekenen. Het definitieve ontwerp zal dan beter zijn. En u zult een beter beeld hebben van de foutmarges.
De drie stappen naar High Performance Computing
1. Gebruik efficiëntere rekenmethoden
Vaak kan veel rekentijd bespaard worden door een slimmer algoritme te gebruiken. Dit vereist kennis van numeriek wiskundige methoden en algoritmen.
2. Onderzoek optimalisaties
Analyseer de rekentijd en maak een onderbouwd plan voor het versnellen van de software. Overweeg low-level optimalisaties (geheugengebruik optimaliseren, beter cache-gebruik, vectorisatie, inzet van geoptimaliseerde bibliotheken zoals de MKL) maar ook verbeteringen op hoger niveau (parallellisatie of de inzet van GPU’s).
3. Implementeer optimalisaties
Verbeter de code op basis van het plan. Dat kan variëren van enkele regels performance-kritische code aanpassen tot een nieuwe softwarearchitectuur. Hierbij is het van belang dat de programmatuur inzichtelijk en onderhoudbaar blijft.
Onze diensten voor High Performance Computing
We bieden u een reeks diensten op basis van onze uitgebreide ervaring op het gebied van HPC, scientific software development en wiskundige modellering.
De Modelscan
Onze modelscan biedt een complete analyse van uw code en een advies over de beste strategie voor verbetering, inclusief ontwikkelplan en een schatting van de kosten en baten.
Software ontwikkeling voor High Performance Computing
We implementeren code-verbeteringen voor de gekozen HPC-optimalisatie. Daarbij kunnen we uw programmatuur ook tunen voor een specifiek platform.
High Performance Computing advies
We leveren advies met betrekking tot de HPC-vereisten voor uw applicatie.
Training
We bieden cursussen op het gebied van scientific software engineering en performance-aware programming.
Wilt u meer weten?
VORtech heeft een Engelstalige brochure beschikbaar over HPC. Daarnaast publiceren we regelmatig blog posts over HPC. Neem gerust contact met ons op als u vragen heeft of als u eens vrijblijvend wilt weten wat we voor u zouden kunnen doen.