Produkter NOBLE
Prestanda
NOBLE Professional Edition
är designad med användande av de allra
senaste icke-blockerande teknikerna för att
uppnå bästa möjliga prestanda och
skalbarhet. Den faktiska prestandan i reella
applikationer beror naturligtvis på den
specifika körningsmiljön och
applikationsdesign. Därför innehåller
NOBLE Professional Edition flera olika
versioner av varje datastruktur så att
utvecklaren kan välja den bästa versionen
för de specifika betingelserna.
Enkla
icke-blockerande tekniker har använts i ett
brett område i kommersiella applikationer
sedan flera år. Dessa applikationer spänner
från affärs och handelsapplikationer, musik
och synthesizerapplikationer till även
kärnor i operativsystem. Dock har inte mer
avancerade datastrukturer som använder
icke-blockerande teknologi varit
tillgängliga för utvecklare förrän nu. Med
hjälp av NOBLE Professional
Edition kan utvecklare nu använda
icke-blockerande versioner av en stor och
rik mängd av datastrukturer baserade på
algoritmiska lösningar inom frontlinjen.
Riktmärken
Här följer några
exempel på stresstester på faktiska
plattformar, m.a.o. användande av Pentium D-processorn från Intel innehållande
två processorkärnor som uppträder som två
logiska processorer, därmed stödjande riktig
parallellism. Som kan ses nedan har de olika
implementationerna av en viss komponent
ganska distinkta prestandakarakteristikiska
beroende på interna så väl som kontextuella
egenskaper, därmed illustrerande nyttan av
att lätt kunna stödja val av faktiskt
implementation under run-time så som erbjuds
av NOBLE Professional
Edition.
Den övre grafen
visar ett experiment med de olika
versionerna av en Queue abstrakt datatyp som
för närvarande ingår i NOBLE Professional
Edition. Trådarna gör åtkomst till
Queue'n med en medelstor belastning; mellan
varje operation på Queue'n görs 400
aritmetiska flyttalsberäkningar.
Den övre grafen
visar ett experiment där trådarna gör
åtkomst till Queue'n med en maximal
belastning; m.a.o. trådarna gör endast
operationer på Queue'n.
Den övre grafen
visar ett experiment med flera olika
versioner av Priority Queue abstrakta
datatypen, körandes med en medelstorlek på
1000 element. Trådarna gör åtkpmst till
Priority Queue'n med en medelstor
belastning; mellan varje operation på
Priority Queue'n görs 400 aritmetiska
flyttalsberäkningar.
Den övre grafen
visar ett experiment där trådarna gör
åtkomst till Priority Queue'n med en maximal
belastning; m.a.o. trådarna gör endast
operationer på Priority Queue'n.
För mera relevanta
riktmärken som visar fördelarna i prestanda
för icke-blockerande tekniker jämför med
traditionella tekniker (t.ex. låsbaserad med
användande av mutexar eller semaforer), se
våra artiklar i sektioner för tekniska
dokument. Vänligen notera att förutom ökad
parallellism, så erbjuder icke-blockerande
teknologi också andra mycket viktiga
egenskaper såsom ökad stabilitet och
exekveringsgarantier; t.ex. kan trådar
stoppas till och med mitt under en operation
på en datastruktur utan att påverka
stabiliteten på de övriga trådarna.
Notera att
skillnaderna i prestanda och skalbarhet
mellan icke-blockerande synkronisering och
traditionella tekniker blir ännu mer
signifikanta med ökande antal processorer
och parallellism.
|