NBänk

NBench , förkortning för Native mode Benchmark och senare känt som BYTEmark , är ett syntetiskt benchmarkprogram för datorer som utvecklats i mitten av 1990-talet av den nu nedlagda BYTE-tidningen avsett att mäta en dators CPU , FPU och Memory System- hastighet.

Historia

NBench är i huvudsak release 2 av BYTE Magazines BYTEmark benchmark-program (tidigare känt som BYTEs Native Mode Benchmarks), publicerat omkring 1995, vilket var bara några år innan tidningen upphörde att publiceras. NBench är skrivet i C och var initialt fokuserat på datorer som körde Microsoft Windows operativsystem. Oberoende av BYTE, 1996 portades NBench till Linux och andra varianter av Unix av Uwe F. Mayer. Mer nyligen förberedde Ludovic Drolez en NBench-app för Android -operativsystemet för mobila enheter. NBench ska inte förväxlas med den liknande namngivna men orelaterade AMD N-bänken.

Design

Algoritmsviten NBench består av tio olika uppgifter:

  • Numerisk sortering - Sorterar en matris med långa heltal.
  • Strängsortering - Sorterar en array av strängar av godtycklig längd.
  • Bitfält - Utför en mängd olika bitmanipuleringsfunktioner.
  • Emulated floating-point - Ett litet mjukvarupaket med flyttal .
  • Fourierkoefficienter - En numerisk analysrutin för att beräkna serieapproximationer av vågformer.
  • Tilldelningsalgoritm - En välkänd uppgiftsallokeringsalgoritm.
  • Huffman-komprimering - En välkänd algoritm för komprimering av text och grafik.
  • IDEA-kryptering - En relativt ny blockchifferalgoritm.
  • Neural Net - En liten men funktionell nätverkssimulator för bakåtpropagation.
  • LU Decomposition - En robust algoritm för att lösa linjära ekvationer.

En körning av benchmark-sviten består i huvudsak av två faser för var och en av testerna. Först körs en kalibreringsslinga för att fastställa storleken på problemet som systemet kan hantera inom rimlig tid, för att anpassa sig till den allt snabbare datorhårdvara som finns tillgänglig. För det andra körs själva testet upprepade gånger flera gånger för att få ett statistiskt meningsfullt resultat.

Ursprungligen producerade NBench och BYTEmark två övergripande indextal: Heltalsindex och Flyttalsindex. Heltalsindexet är det geometriska medelvärdet av de tester som endast involverar heltalsbearbetning – numerisk sortering, strängsortering, bitfält, emulerad flyttal, tilldelning, Huffman och IDEA – medan Flyttalsindex är det geometriska medelvärdet av de tester som kräver flyttals-samprocessorn - Fourier, neuralt nät och LU-nedbrytning. Indexsiffrorna var relativa poäng för att få en allmän känsla för prestandan hos maskinen som testas jämfört med ett baslinjesystem baserat på en 90 MHz Pentium Intel CPU.

Linux/Unix-porten har en andra baslinjemaskin, det är en AMD K6/233 med 32 MB RAM och 512 KB L2-cache som kör Linux 2.0.32 och använder GNU gcc version 2.7.2.3 och libc-5.4.38. Det ursprungliga heltalsindexet delades upp i ett heltalsoperation och ett minnesoperationsindex, som föreslagits av Andrew D. Balsa, vilket återspeglar insikten att minneshantering är viktig i CPU-design. De ursprungliga testerna har lämnats ifred, men det geometriska medelvärdet av testerna numerisk sortering, flyttalsemulering, IDEA, och Huffman utgör nu det heltals-aritmetiska fokuserade benchmarkindexet, medan det geometriska medelvärdet av testets strängsort, bitfält, och tilldelningen utgör det nya minnesindexet. Flyttalsindexet har lämnats ifred, det är fortfarande det geometriska medelvärdet av fourier-, neuralnät- och LU-nedbrytning.

Använda sig av

Benchmark-sviten har använts konsekvent sedan mitten av 1990-talet av persondatorer, på datorer och andra enheter som kör olika varianter av UNIX, inklusive Linux eller BSD , eller kör Windows (vanligtvis i kombination med Cygwin ), och även på Mac-datorer ( den är särskilt tillgänglig som en Darwin- hamn). En resultatsida från körningar på många olika hårdvarukonfigurationer, från kraftfulla multi-CPU-servrar ner till lågeffektsnätverksväxlar, underhålls av den ursprungliga portern.

Brister

Att använda NBench som riktmärke har fallgropar:

  • Dessa riktmärken är avsedda att exponera den teoretiska övre gränsen för ett systems CPU, FPU och minnesarkitektur. De kan inte mäta video-, disk- eller nätverksgenomströmning (dessa är domänerna för en annan uppsättning riktmärken).
  • NBench är enkelgängad. För närvarande använder varje benchmarktest endast en enda exekveringstråd. De flesta moderna operativsystem har dock någon multitasking-komponent. Hur ett system "skalar" när fler uppgifter körs samtidigt är en effekt som NBench inte utforskar.

Se även

externa länkar