maandag 31 augustus 2015

High Performance Computing: Het kan ook betaalbaar

Als u gebruik wilt maken van HPC om grote vraagtsukken op te lossen, dan kunt u daar een HPC cluster van een groot merk voor aanschaffen. Dit klinkt interessant, maar is voor veel bedrijven financieel gezien verre van haalbaar en niet altijd de beste keuze.
Zoals eerder besproken is het ook mogelijk om uw computercapaciteit tegen een prijs per tijdseenheid in te huren bij partijen als Amazon en Google, en op die manier uw HPC activiteiten in de cloud plaats te laten vinden. Toch is dat misschien geen geschikte oplossing, bijvoorbeeld als u dat om veiligheidsredenen geen prettig idee vindt, of omdat u vaker dan eens een HPC kwestie wilt aanpakken en outsourcen dan toch niet de meest gunstige keuze lijkt.

Eigen HPC cluster creëren
Maar er bestaat nog een manier om HPC toe te passen; zelf een HPC cluster creëren. Dit lijkt gigantisch ingewikkeld en het zal inderdaad wat uitzoekwerk kosten. Toch is het zeker een optie en wellicht enorm de moeite waard, omdat het u zeer veel geld kan besparen en het u een bepaalde vorm van vrijheid geeft doordat u het op zo'n manier kan samenstellen of aanpassen dat het voor u het beste is.

Maar ik ben geen HPC specialist
Om een eigen cluster te creëren hoeft u het wiel niet zelf uit te vinden. Naast dat er bedrijven ontwikkelen aan HPC, zijn overheidsinstellingen zoals universiteiten ook bezig met onderzoeken op dit gebied en het ontwikkelen van software ervoor. Die instellingen maken gebruik van al beschikbare kennis uit een open source community voor HPC, en dragen zelf ook bij aan deze community door hun eigen vondsten te delen.
Op deze manier kunt u kosteloos hele waardevolle kennis benutten om uw eigen cluster te bouwen. U kunt op zoek gaan naar software die geschikt is voor uw omgeving en vraagstuk. Mogelijk moet u wat stukken software combineren of aanpassen om het geheel passend voor uw situatie te maken. Natuurlijk kunt u ook zelf bijdragen aan de community door de problemen waar u tegenaan loopt of eigen ontdekkingen te delen.

Computers beter benutten of opkopen
Naast software heeft u natuurlijk computerkracht nodig voor uw HPC cluster. Het zou kunnen dat u eigenlijk al heel veel computerkracht tot uw beschikking heeft, doordat het bedrijf een groot aantal PC's heeft die niet volledig worden benut. Veel computers worden maar voor een zeer laag percentage gebruikt, waardoor ze nog heel veel middelen over hebben die voor een andere taak ingezet kunnen worden. Dan is het een optie om die computers aan elkaar te koppelen voor uw HPC cluster en bepaart dat u de aanschaf of huur van rekenkracht.

Als u nog niet genoeg computerkracht heeft, kunt u dit aanschaffen. Waarschijnlijk heeft u een groot aantal computers nodig, dus dit zou aardig in de kosten kunnen gaan lopen. Hoewel, hier kunt u een creatieve oplossing voor bedenken. Sommige bedrijven willen elke drie jaar nieuwe computers. Die 'verouderde' computers, die vaak nog wel even mee kunnen, kunt u opkopen tegen een lage prijs en samenvoegen tot een cluster.

Waar begin ik?
Bij het zelf creëren van een HPC cluster is het slim eerst deze optie te vergelijken met de aanschaf van een cluster en met HPC in de cloud. Om te kijken welke optie het beste bij uw situatie past kunt u zichzelf bijv. de volgende vragen stellen:

- Hoe vaak heb ik HPC nodig?
- Binnen welke termijn moeten mijn vraagstukken opgelost worden?
- Hoeveel financiële middelen heb ik tot mijn beschikking?
- Hoeveel computerkracht heb ik al in huis?
- Heb ik een software engineer die mij hierbij kan helpen?

Verder kan het heel leerzaam zijn om op internet cases vergelijkbaar met uw situatie op te zoeken. Ontdek welke software zij hebben gebruikt, tegen welke problemen zij aanliepen en hoe ze die hebben opgelost. Er is tegenwoordig zoveel kennis beschikbaar, niet alleen in de vorm van tekst, maar ook in de vorm van filmpjes. Als u een krap budget heeft hoeft dat niet te betekenen dat u de voordelen van HPC niet kunt benutten. Slim zoeken, creativiteit en inzet kunnen u heel ver brengen..




maandag 24 augustus 2015

High Performance Computing: De juiste storage voor maximale performance

Geschikte storage maakt HPC compleet
Als HPC wordt ingezet, is er blijkbaar vraag naar hoge performance. Computing activiteiten kunnen d.m.v. HPC in principe zeer snel worden uitgevoerd. Echter, dat wil niet zeggen dat de maximale performance van het systeem wordt behaald. Hoewel parallellisme de meerderheid van verwerkings flessenhalzen overwint, verplaatst het de performance flessenhalzen naar het storage I/O systeem.
Een systeem is zo snel als de zwakste schakel. Het is belangrijk de juiste storage te gebruiken om een HPC systeem optimaal te benutten.

HPC en storage
HPC wordt gebruikt om grote vraagstukken op te lossen. Deze worden opgedeeld in kleine berekeningen die bij elkaar het totaal antwoord vormen. Sommige berekeningen kunnen tegelijkertijd plaatsvinden, maar er zijn ook berekeningen die pas na andere uitgevoerd kunnen worden, omdat deze de output van voorgaande berekeningen nodig hebben als input. De tussentijdse uitkomsten moeten dus (tijdelijk) worden opgeslagen, om later gebruikt te kunnen worden. Als je dit tussentijds opslaan van data doet met traditionele storage, ben je aan het fietsen op een racefiets terwijl je de rem erop houdt.

Parallel storage
Belangrijk is dus dat het lezen en schrijven van data zeer snel gebeurt (dat de rem er af gaat). Dit kan op verschillende manieren bereikt worden. Zo kan er met snellere netwerken en schijven gewerkt worden, of kan er slim gebruik gemaakt worden van caching. Hoewel dat een hoop snelheidswinst kan opleveren, is parallel storage DE manier om HPC goed tot zijn recht te laten komen.

Bij HPC gebeuren berekeningen parallel omdat dit een zeer hoge snelheid oplevert. Als het opslaan van de tussentijdse uitkomsten sequentieel (na elkaar) gebeurt, dan ontstaan er opstoppingen. Pas als het ene bestand is geschreven kan er worden begonnen met het schrijven van het volgende bestand. De nieuwe opdrachten die al klaar staan om hun berekeningen uit te voeren moeten dan in verhouding erg lang wachten op de resultaten die zij nodig hebben om hun taak te vervullen. Dit kan een enorme vertraging opleveren.

Die vertraging kan worden weggenomen door met parallel storage te werken. Parallel storage houdt in dat het hardware technisch mogelijk is om parallel op te slaan (dus dat er zeg maar meerdere poortjes zijn), en dat er een parallel file systeem is dat regelt dat de bestanden ook daadwerkelijk parallel wordt opgeslagen door ze te verdelen over de 'poortjes'. Dit kan bijv. inhouden dat grote bestanden worden opgeknipt in stukjes, zodat de stukjes in parallel opgeslagen kunnen worden i.p.v. dat het grote bestand door één 'poortje' gaat.
Sommige parallele file systemen halen ook nog de meta data server weg uit het data pad tussen de computer en de storage, om nog meer snelheidswinst te behalen.

Voor meer informatie over parallel storage, zoals voordelen naast performance, zie mijn andere posts:
pNFS: Parallel is snel, en dat niet alleen...
PanFS RAID 6+ architectuur: Enorme groei in betrouwbaarheid
PanFS RAID 6+ architectuur: Performance en continuiteit




maandag 17 augustus 2015

High Performance Computing: Meer dan het samenvoegen van rekenkracht

Bij High Performance Computing wordt rekenkracht samengevoegd op zo'n manier dat het een zeer hoge performance kan leveren, zodat complexe rekenproblemen binnen afzienbare tijd kunnen worden opgelost.

Het samenvoegen kan door computers te verbinden over een netwerk (bijv. internet), waarbij de computers wat van hun tijd of al hun tijd besteden aan het oplossen van een gemeenschappelijk probleem (mier methode). Elke individuele computer krijgt veel kleine taken en lost deze op. Alle resultaten worden gerappoteerd aan een centrale server, die alle resultaten integreert en tot een totaal oplossing komt.

Het samenvoegen kan ook door processoren heel dicht bij elkaar te brengen in een groot computer cluster (olifant methode), waarbij tijd wordt gespaard doordat de data niet verplaatst hoeft te worden en waarbij de processoren kunnen samenwerken.

Hoewel dit redelijk simpel klinkt, komt er veel meer bij kijken dan wat kabels leggen voor de verbindingen.

HPC is geavanceerde logistiek
Een groep mensen bij elkaar in een ruimte maakt nog geen team. Zo maakt een groep processoren nog geen High Performance Computing. Als een complexe taak moet worden opgelost door krachten te bundelen, moeten die krachten wel op een slimme manier gebundeld worden, om bijv. te voorkomen dat taken dubbel of in onlogische volgorde worden uitgevoerd, waardoor het proces zeer inefficiënt verloopt.

Parallellisatie
High Performance Computing heeft een belangrijke eigenschap die voor enorme snelheidswinst zorgt; parallellisatie. Normaal gesproken gebeuren berekeningen door computers sequentieel, dus na elkaar. Bij parallellisatie gebeuren berekeningen tegelijkertijd.

Logistiek manager
Daarbij is er bij High performance Computing een applicatie welke zeg maar de logistiek manager is. Deze moet ervoor zorgen dat het totaal proces voor het oplossen van het complexe probleem zo snel mogelijk gebeurt. Er moet een plan gemaakt worden om het probleem aan te pakken, het probleem moet eventueel opgedeeld worden in kleine stukken en er moet een taakverdeling gemaakt worden zodat de deel-problemen door de meest geschikte rekeneenheden worden opgelost. Ook dient er goed gepland te worden welke taak wanneer wordt uitgevoerd en is communicatie tussen de rekeneenheden belangrijk. Sommige taken hebben namelijk bijv. de resultaten van andere taken nodig als input voor hun berekeningen. Als die resultaten niet op tijd klaar staan, komt er vertraging.

Toegewijde chips
Er worden allerlei chips ontwikkeld die goed zijn in het uitvoeren van één bepaalde taak. Als een groot probleem wordt verdeeld in kleinere taken, dan zou zo'n toegewijde chip zich volledig kunnen richten op de taak waar hij goed in is en dit super snel doen. Als het taken betreft die voorheen een belangrijke bottleneck waren, dan kan er met deze chips alleen al een enorme snelheidswinst gerealiseerd worden.

Metafoor: verhuizing
Om het wat 'tastbaarder' te maken gebruik ik als metafoor even een verhuizing. Als er maar één verhuizer is zal het verhuizen grof gezegd ongeveer twee keer zo langzaam gaan als dat er twee verhuizers zijn en ongeveer drie keer zo langzaam als wanneer er drie verhuizers zijn. Dit is een voorbeeld van het voordeel van parallellisatie, maar alleen als de verhuizers niet teveel met elkaar gaan lopen kletsen ;-)

Er moet wel een plan van aanpak gemaakt worden voor het verhuizen om het proces zo snel mogelijk af te ronden. Het is handig om dat door iemand met logistiek inzicht te laten doen (logistiek manager). Als bijv. de spullen niet goed worden ingedeeld, kost dit veel ruimte en moet er extra gereden worden, wat een verspilling van tijd is. Verder moeten de verhuizers goed overleggen wie welke spullen inlaadt. Zo is het bijv. handig dat de sterkste de zwaarste spullen tilt (toegewijde chips).

Hopelijk geeft deze post u wat meer inzicht in de onderliggende techniek en logistiek van HPC.

maandag 10 augustus 2015

High Performance Computing: Hoe u ermee kan scoren

Uw concurrentiepositie in gevaar?
Er wordt enorm veel data gegenereerd en tot veel van deze data hebben wij beschikking of kunnen wij beschikking krijgen. Maar wat doet u ermee? Het zijn zulke grote hoeveelheden en het is misschien een ongeordende bende. U heeft misschien het gevoel dat er wel interessante informatie uit die data te halen valt, maar dat het ordenen van de data en het analyseren ervan zoveel tijd, energie en geld kost, dat het niet rendabel is. Dat het zoeken naar een speld in een hooiberg is. Mooie redenen om die data links te laten liggen.
Toch zijn er nog mooiere redenen om de data wel te benutten. Het is inderdaad wel zoeken naar een speld in een hooiberg, maar tegenwoordig hebben we het geluk dat het gebruik van HPC binnen ons bereik ligt. Nu kunnen we genoeg rekenkracht genereren om die grote volumes aan data binnen beperkte tijd en tegen acceptabele kosten te analyseren en de speld (of meerdere spelden) te vinden. Er is ook allerlei behulpzame software om ons te helpen met simulaties.

Nou kunt u denken: 'Dat heb ik helemaal niet nodig. Mijn bedrijf functioneert al jaren prima zonder die grote data analyses, simulaties en HPC'. Echter, andere bedrijven gaan er langzaamaan de voordelen van inzien en deze concepten oppakken, waardoor uw concurrentiepositie ineens ernstig in gevaar kan komen. Namelijk, als andere bedrijven wel HPC gebruiken om hun grote datasets te analyseren of simulaties te doen, dan zouden zij hele waardevolle informatie kunnen ontwikkelen, waardoor zij o.a. kunnen innoveren, een niche markt kunnen ontdekken, kunnen ontdekken onder welke voorwaarden hun sales omhoog gaan, en de kwaliteit van voorspellingen en hun dienstverlening verhogen. Hoogstwaarschijnlijk is HPC dus nu een must aan het worden om nog voldoende toegevoegde waarde te kunnen leveren en uw concurrentiepositie te behouden.

Enkele voorbeelden van toepassingssituaties voor HPC
HPC kan voor zeer uiteenlopende doeleinden gebruikt worden. Denk bijvoorbeeld eens aan marketing. Een marketingplan kan gebaseerd worden op gevoel, maar een marketingplan kan ook gebaseerd worden op onderzoeksresultaten. Onderzoeksresultaten zijn in dit geval waarschijnlijk specifieker en betrouwbaarder, zodat u veel meer waar krijgt voor het geld dat u investeert in de marketingactiviteiten en het u dus een hogere ROI oplevert.

Toen ik vroeger bij een krantenbedrijf werkte en adverteerders in de kranten wilden adverteren, konden we m.b.v. een programma de doelgroep van de advertentie heel duidelijk definiëren. Op basis van onderzoeken kwam er dan als resultaat uit het programma welke kranten die doelgroep het meest lazen. Zo konden wij de adverteerder adviseren m.b.t. de beslissing in welke kranten te adverteren, zodat er een zo hoog mogelijk bereik werd behaald. Wij gebruikten daar geen HPC voor, omdat de dataset te overzien was. Nu worden datasets steeds groter. Het is raadzaam om deze te benutten, omdat de antwoorden op onze vragen daardoor steeds kwalitatiever kunnen zijn, maar dan is er wel meer rekenkracht en dus HPC nodig.

Dit principe kan in heel veel branches worden toegepast. Zo kan er ook gebruik gemaakt worden van een dataset over de vaardigheden en kennis van service desk medewerkers, om vragen van klanten direct te kunnen doorverwijzen naar de medewerker met de geschikte kwalificaties, zodat klantvragen sneller en beter beantwoord kunnen worden. Het resultaat is dat er efficiënter wordt gewerkt en de klanttevredenheid omhoog gaat.

Verder wordt HPC gebruikt om weersvoorspellingen accurater te maken, voor crash simulaties met auto's, voor het analyseren van gegevens over bijvoorbeeld tumoren om medicijnen te ontwikkelen, etcetera.

Maar ik heb helemaal niet zoveel data
U hoeft niet perse zelf de data te genereren. Als het bijvoorbeeld specifiek gaat over uw bedrijf en het gedrag van uw medewerkers of klanten, dan is het waarschijnlijk wel handig om zelf datasets te creëren. Voor wat algemenere vraagstukken kunt u tegen een vergoeding gebruik maken van datasets die andere bedrijven (zoals Google en onderzoeksbedrijven) ontwikkelen. Dan heeft u al snel beschikking tot hele grote data volumes met zeer hoge potentie.

Waar kan mijn bedrijf HPC concreet voor gebruiken?
That's up to you! Omdat het voor zo gigantisch veel doeleinden ingezet kan worden is de toegevoegde waarde van de resultaten van de HPC analyses en simulaties voor een groot deel afhankelijk van uw creativiteit, inbeeldingsvermogen en strategisch inzicht. Denk buiten de gebaande paden. Er is zoveel data beschikbaar. Het is misschien eerder lastig te bedenken welk informatie niet gevonden kan worden dan welke informatie wel gevonden kan worden. Vraagt u zich eens af: Welke informatie is voor mijn bedrijf waardevol en welk doel wil ik ermee bereiken?

maandag 3 augustus 2015

High Performance Computing: Hoe u er gebruik van kunt maken

De behoefte aan HPC wordt steeds duidelijker. Data die organisaties gebruiken kunnen een belangrijke troef en cruciaal voor het bedrijf zijn. Big data analyse (de mogelijkheid om grote data volumes te verwerken en analyseren) is niet nieuw, maar de hoeveelheid data is op een significant hoger tempo gegroeid dan beschikbare computing capaciteiten. Om informatie uit die grote volumes data te halen is dus al snel HPC nodig. Als u denkt baat te kunnen hebben bij HPC, heeft u verschillende mogelijkheden om dit fenomeen voor u te laten werken.

In-house HPC
Hoe bedrijven HPC met name inzetten is door de aanschaf van een High Performance Computing cluster. Analyse van een grote hoeveelheid data doen zij dus in-house. Indien het systeem niet voldoende computing power meer heeft, kan het systeem worden opgeschaald. Veel organisaties die HPC hard nodig hebben, hebben de infrastructuur en expertise om het te beheren al in huis.

HPC in de cloud
Een andere optie is HPC in de cloud. U maakt uw data beschikbaar voor de cloudprovider (denk aan Amazon Web Services, Google Compute Engine en Microsoft Azure), welke de benodigde middelen om de data te analyseren inschakelt. U hoeft hierbij dus niet zelf de infrastructuur en benodigde expertise aan te schaffen. U betaalt bijvoorbeeld een prijs per tijdseenheid.

Welke optie kiest u?
Er zitten veel voordelen aan HPC in de cloud. U kunt het inschakelen wanneer u het nodig heeft, het is gigantisch schaalbaar, het is snel en het is niet duur. Daarbij is het ook efficiënter in termen van computer bezetting. De benodigde computing power wordt namelijk 'geleend' van computers die wat capaciteit over hebben omdat ze op een bepaald moment niet of slechts gedeeltelijk gebruik maken van hun capaciteit (een desktop wordt bijv. gemiddeld misschien slechts voor 3% benut). Dit maakt het ook een milieubewuste keuze en deze past helemaal in het plaatje van de mileubewuste innovaties van nu, zoals websites voor het hergebruiken en delen/lenen van spullen.
Toch zijn er voor veel bedrijven barrières om met hun HPC opdrachten naar de cloud te gaan. Naast dat ze misschien al investeringen hebben gedaan in HPC middelen, zijn sommigen ook bezorgd over de veiligheid van hun data in de cloud en zijn ze bang dat het verplaatsen van hun data naar de cloud een hoop vertraging oplevert.
De aard van uw HPC behoefte speelt een belangrijke rol in het maken van de keuze. Als een bedrijf regelmatig relatief kleinere problemen moet oplossen, dan zou in-house HPC financieel gezien een betere oplossing kunnen zijn. Als het bedrijf niet regelmatig, maar wel zeer grote problemen dient op te lossen, dan is HPC in de cloud mogelijk de betere optie. De twee vormen kunnen ook met elkaar worden gecombineerd. Een grondige behoeftebepaling is nodig om tot de juiste keuze te komen.