Wetenschap
Accelerometer-geschatte versnelling voor belangrijke overheadkosten geïdentificeerd door de onderzoekers. Krediet:Universiteit van Michigan
Grootschalige softwareservices bestrijden de efficiëntieslag op twee fronten:efficiënte software die flexibel is voor veranderende consumenteneisen, en efficiënte hardware die ervoor kan zorgen dat deze enorme services snel blijven werken, zelfs bij afnemende opbrengsten van CPU's. Samen, deze factoren bepalen zowel de kwaliteit van de gebruikerservaring als de prestaties, kosten, en energie-efficiëntie van moderne datacenters.
Een verandering aan het ene front vraagt om aanpassingen aan het andere, en een nieuwe software-architectuur die steeds populairder wordt, vormt een uitdaging voor de hardware-oplossingen die in de meeste datacenters aanwezig zijn. Microservices genoemd, deze modulaire benadering van het ontwerpen van software voor grote ondernemingen heeft te wensen overgelaten in de interactie met een andere belangrijke opkomende kracht in de efficiëntie van datacenters, hardware versnellers.
Om deze twee veelbelovende technologieën beter samen te brengen, CSE Ph.D. student Akshitha Sriraman, werken met onderzoekers van Facebook, heeft een manier ontworpen om precies te meten hoeveel een hardwareversneller een datacenter zou versnellen. Met de toepasselijke naam Accelerometer, het analytische model kan in de vroege stadia van het ontwerp van een versneller worden toegepast om de effectiviteit ervan te voorspellen voordat het ooit wordt geïnstalleerd.
Nog steeds een enigszins nieuwe technologie in algemeen computergebruik, de effectiviteit van hardwareversnellers is niet zo eenvoudig te voorspellen als CPU's, die tientallen jaren ervaring achter zich hebben. Investeren in dit soort diverse aangepaste hardware vormt een risico op grote schaal, omdat het misschien niet aan zijn verwachtingen voldoet.
Maar het potentieel voor een grote impact is er. Ontworpen om één type functie extreem snel uit te voeren, versnellers zouden theoretisch kunnen worden gebruikt voor alle overtollige, repetitieve taken die vaak worden gebruikt door grotere applicaties.
Daar horen microservices bij. Deze software-architectuurbenadering vat een grotere applicatie op als een verzameling modulaire, taakspecifieke services die elk afzonderlijk kunnen worden verbeterd. Dit maakt het mogelijk om wijzigingen aan te brengen in de grotere applicatie zonder één grote, centrale codebasis. Het zorgt er ook voor dat meer diensten gemakkelijker kunnen worden toegevoegd.
Sriraman toonde aan dat slechts 18% van de CPU-cycli van de meeste microservices wordt besteed aan het uitvoeren van instructies die essentieel zijn voor hun functionaliteit. De overige 82% wordt besteed aan gemeenschappelijke operaties die rijp zijn voor versnelling.
"Het versnellen van deze overheadkosten die we hebben geïdentificeerd, kan de snelheid inderdaad aanzienlijk verbeteren, " zegt Sriraman. Voorbij snelheid, het zou alle functies van het datacenter goedkoper en energiezuiniger maken. "Versnelling zal ons in staat stellen meer werk in te pakken voor dezelfde stroombeperkingen en het gebruik van hulpbronnen op grote schaal te verbeteren, dus de energie- en kostenbesparingen van datacenters zullen aanzienlijk verbeteren."
Het probleem met microservices is dat hun ontwerpen nogal kunnen verschillen, vooral met betrekking tot hoe ze omgaan met hardware. Bijvoorbeeld, een microservice kan communiceren met een versneller terwijl andere instructies op een CPU worden uitgevoerd, of het kan al zijn functies tot stilstand brengen terwijl het naar het gaspedaal wordt gelost. Beide gevallen hebben te maken met verschillende "offload-overheads" (de tijd die wordt besteed aan het verzenden van een taak van de ene processor naar de andere), wat verloren tijd voor het datacenter wordt als er geen rekening mee wordt gehouden.
"Elk van deze software-ontwerpkeuzes kan resulteren in verschillende overheadkosten die de algehele versnelling door acceleratie beïnvloeden, ", zegt Sriraman. Deze overhead is in eerder werk buiten beeld gelaten, ze vervolgt, evenals de impact van de verschillende microservice-ontwerpen op de prestaties.
Aanvullend, versnellers zelf moeten oordeelkundig worden gebruikt om een netto positief effect te hebben.
"Een gaspedaal naar elk probleem gooien is belachelijk omdat het veel tijd kost, kosten, en moeite om te bouwen, toets, en zet ze allemaal in, " concludeert ze. "Er is een echte behoefte om precies te begrijpen wat en hoe te versnellen."
Accelerometer is een analytisch model dat precies meet hoeveel prestaties zouden worden verbeterd door een bepaalde processor te installeren, als al, rekening houdend met al deze nuances. Dat betekent dat het zowel het positieve effect van versnelling meet als het negatieve effect van tijd besteden aan het heen en weer schuiven van instructies tussen computercomponenten. En de mogelijkheden zijn niet beperkt tot nieuwe versnellers:het model kan worden toegepast op elk soort hardware, variërend van een eenvoudige CPU-optimalisatie tot een uiterst gespecialiseerde externe ASIC.
De tool is gevalideerd in de productieomgeving van Facebook met behulp van drie retrospectieve casestudies, wat aantoont dat de echte versnellingsschattingen een fout van minder dan 3,7% hebben.
Het model is voldoende nauwkeurig om al in gebruik te worden genomen door Facebook, met vroege interesse van andere bedrijven.
"We hebben vernomen dat verschillende grote cloudspelers Accelerometer zijn gaan gebruiken om snel slechte acceleratorkeuzes te negeren en de goede te identificeren. om goed geïnformeerde hardware-investeringen te doen, " zegt Sriraman. Facebook gebruikt het model om nieuwe versnellers te verkennen, door het op te nemen als een eerste stap om snel goede en slechte hardwarekeuzes te maken.
Dit project, getiteld "Accelerometer:inzicht in versnellingsmogelijkheden voor datacenteroverheads op hyperscale, " werd geaccepteerd door de 2020 Architectural Support for Programming Languages and Operating Systems (ASPLOS) Conference en virtueel gepresenteerd.
Wetenschap © https://nl.scienceaq.com