Att skriva bärbara program som fungerar bra på flera plattformar eller för olika indatastorlekar och typer kan vara mycket svårt eftersom prestanda ofta är känslig för systemarkitekturen, körtidens miljö, och inmatningsdata egenskaper. Detta är ännu mer utmanande för parallella och distribuerade system på grund av det stora utbudet av systemarkitekturer. Ett sätt att ta itu med detta problem är att adaptivt välja den bästa parallella algoritmen för nuvarande indata och system från en uppsättning funktionellt likvärdiga algoritmiska alternativ. Mot detta mål har vi utvecklat en allmän ram för adaptiv algoritmval för användning i Standard Mall Adaptive Parallel Library (STAPL). Vårt ramverk använder maskininlärning tekniker för att analysera data som samlats in av STAPL installationsriktmärken och för att bestämma tester som kommer att välja bland algoritmiska alternativ vid körtid. Vi tillämpar en prototypimplementering av vårt ramverk för två viktiga parallella operationer, sortering och matrismultiplikation, på flera plattformar och visar att ramverket bestämmer run-time tester som korrekt väljer den bäst presterande algoritmen bland flera konkurrerande algoritmiska alternativ i 86-100% av de undersökta fallen, beroende på operation och system.
I Thomas m.fl. REF, författarna utvecklat en allmän ram för adaptiv algoritm val för användning i Standard Mall Adaptive Parallel Library (STAPL).
A framework for adaptive algorithm selection in STAPL
{'venue': "PPoPP '05", 'journal': None, 'mag_field_of_study': ['Computer Science']}