Metode de evaluare a caracteristicilor de calcul ale problemelor de domeniu și ale platformelor hardware suportate ale acestora. Agenția Federală pentru Educație. Capacitatea hard diskului și viteza discului

Comparația computerelor între ele începe de obicei cu o evaluare a performanței lor. Aceasta a necesitat introducerea unor unități adecvate de măsurare a productivității și dezvoltarea unor metode standard de evaluare a acesteia.

Metodele de evaluare a performanței sistemelor de calcul trebuie să îndeplinească anumite cerințe. În primul rând, trebuie să fie recunoscute universal, să evalueze sistemele de calcul cât mai complet posibil și să corespundă sarcinilor utilizatorului. Disponibilitatea lor pentru autoexaminare și independentă ar trebui să fie asigurată.

Timpul stă la baza metodelor utilizate în prezent pentru evaluarea și compararea performanței sistemelor de calcul.

„Buclele Livermore” sunt un set tipic de fragmente de program FORTRAN. [ , ] Aceste programe implementează diferiți algoritmi de calcul:

  • grilă;
  • val;
  • consistent.

Alegerea lor s-a bazat pe experiența bogată în crearea de supercalculatoare și efectuarea celor mai complexe calcule științifice și de inginerie la Laboratorul Național Livermore. E. Lawrence (Lawrence Livermore National Laboratory, LLNL) Departamentul de Energie al SUA

La testare, se folosește fie un set mic (14 cicluri), fie un set mare (24 de cicluri).

Coeficientul de paralelizare al algoritmilor aplicați este în intervalul de la 0 la 1. Acest lucru face posibilă utilizarea „ciclurilor Livermore” pentru a evalua performanța sistemelor de calcul cu arhitecturi diferite. Testul practic nu este folosit.

Testele LINPACK sunt programe pentru rezolvarea sistemelor de ecuații algebrice liniare de mare dimensiune. Sunt scrise în limbajul de programare FORTRAN [

Viteza procesorului este una dintre cele mai importante caracteristici ale sale, care determină eficiența întregului sistem de microprocesoare în ansamblu. Performanța procesorului depinde de mulți factori, ceea ce face dificilă compararea performanței chiar și a diferitelor procesoare din cadrul aceleiași familii, ca să nu mai vorbim de procesoare de la diferiți producători și pentru diferite scopuri.

Să evidențiem cei mai importanți factori care afectează viteza procesorului.

În primul rând, viteza depinde de frecvența de ceas a procesorului. Toate operațiunile din interiorul procesorului sunt efectuate sincron, tactate de un singur semnal de ceas. Este clar că cu cât frecvența de ceas este mai mare, cu atât procesorul este mai rapid și, de exemplu, o creștere de două ori a frecvenței de ceas a unui procesor reduce timpul de execuție a comenzilor de către acest procesor la jumătate.

Cu toate acestea, trebuie luat în considerare faptul că diferite procesoare execută aceleași instrucțiuni pentru un număr diferit de cicluri, iar numărul de cicluri petrecute pe o instrucțiune poate varia de la un ciclu la zeci sau chiar sute. În unele procesoare, datorită paralelizării micro-operațiilor, chiar mai puțin de un ciclu este cheltuit pe instrucțiune.

Numărul de cicluri necesare executării unei instrucțiuni depinde de complexitatea instrucțiunii și de metodele de adresare a operanzilor. De exemplu, cel mai rapid număr mai mic cicluri) sunt executate comenzi pentru a transfera date între registrele interne ale procesorului. Cele mai lente (pentru un număr mare de cicluri) sunt instrucțiuni aritmetice complexe în virgulă mobilă, ai căror operanzi sunt stocați în memorie.

Inițial, pentru cuantificarea performanței procesoarelor s-a folosit unitatea de măsură MIPS (Mega Instruction Per Second), care corespundea numărului de milioane de instrucțiuni (comenzi) executate pe secundă. Desigur, producătorii de microprocesoare au încercat să se concentreze pe cele mai rapide instrucțiuni. Este clar că un astfel de indicator nu are prea mult succes. Pentru a măsura performanța la efectuarea calculelor cu virgulă mobilă (virgulă), unitatea FLOPS (Floating point Operations Per Second) a fost propusă puțin mai târziu, dar prin definiție este foarte specializată, deoarece în unele sisteme operațiile în virgulă mobilă pur și simplu nu sunt utilizate.

Un alt indicator similar al vitezei procesorului este timpul necesar pentru a efectua operațiuni scurte (rapide). Ca exemplu, Tabelul 3.1 arată performanța mai multor procesoare pe 8 și 16 biți. În prezent, acest indicator practic nu este utilizat, ca MIPS.

Timpul de executare a comenzii este un factor important, dar departe de singurul care determină performanța. Structura setului de instrucțiuni procesor este, de asemenea, de mare importanță. De exemplu, unele procesoare vor avea nevoie de o instrucțiune pentru a efectua o operațiune, în timp ce alte procesoare vor avea nevoie de mai multe instrucțiuni. Unele procesoare au un sistem de comandă care vă permite să rezolvați rapid probleme de un tip, iar unele - sarcini de alt tip. De asemenea, importante sunt metodele de adresare permise în procesor dat, precum și prezența segmentării memoriei și modul în care procesorul interacționează cu dispozitivele I/O etc.


Afectează în mod semnificativ performanța sistemului în ansamblu și modul în care procesorul „comunică” cu memoria de instrucțiuni și memoria de date, indiferent dacă selectarea instrucțiunilor din memorie este combinată cu execuția instrucțiunilor selectate anterior.

Performanța este cea mai importantă caracteristică a unui computer. Performanța este capacitatea unui computer de a îndeplini anumite sarcini într-un anumit interval de timp.

Un computer care face aceeași cantitate de muncă în mai puțin timp este mai rapid. Timpul de execuție al oricărui program este măsurat în secunde. Performanța este adesea măsurată ca rata de apariție a unui anumit număr de evenimente pe secundă, astfel încât mai puțin timp înseamnă mai multă performanță.

Totuși, în funcție de ceea ce gândim, timpul poate fi definit în diferite moduri. Cel mai simplu mod de a determina timpul se numește timp astronomic, timp de răspuns (timp de răspuns), timp de execuție (timp de execuție) sau timp scurs (timp scurs). Aceasta este latența unei sarcini, incluzând literalmente totul: procesor, acces la disc, acces la memorie, I/O și suprasarcina sistemului de operare. Cu toate acestea, atunci când funcționează în modul multiprogram în timp ce se așteaptă I/O pentru un program, procesorul poate executa un alt program și sistemul nu va minimiza neapărat timpul de execuție al acelui program particular.

Pentru a măsura timpul procesorului pe un program dat, se folosește un parametru special - timpul CPU, care nu include timpul de așteptare I/O sau timpul de execuție al unui alt program. În mod evident, timpul de răspuns văzut de utilizator este timpul total de execuție a programului, nu timpul CPU. Timpul CPU poate fi împărțit în continuare în timpul petrecut de CPU executând direct programul utilizatorului, numit timp CPU utilizator, și timpul CPU petrecut de sistemul de operare executând sarcini solicitate de program, numit timp CPU al sistemului.

În unele cazuri, timpul de sistem al procesorului este ignorat din cauza posibilei inexactități a măsurătorilor efectuate de sistemul de operare însuși, precum și din cauza problemelor asociate cu compararea performanței mașinilor cu sisteme de operare diferite. Pe de altă parte, codul de sistem pe unele mașini este cod de utilizator pe altele și, în plus, practic niciun program nu poate rula fără un sistem de operare. Prin urmare, atunci când se măsoară performanța procesorului, este adesea folosită suma timpului CPU al utilizatorului și al sistemului.

În majoritatea procesoarelor moderne, viteza proceselor de interacțiune între unitățile funcționale interne nu este determinată de întârzierile naturale ale acestor dispozitive, ci este stabilită de un singur sistem de semnale de ceas generate de un generator de impulsuri de ceas, care funcționează de obicei la o viteză constantă. Evenimentele de timp discrete se numesc tick-uri de ceas, doar ticuri, perioade de ceas, cicluri sau cicluri de ceas. Designerii de calculatoare vorbesc de obicei despre o perioadă de ceas, care este definită fie de durata acesteia (de ex. 10 nanosecunde) fie de frecvența acesteia (de ex. 100 MHz). Durata perioadei de sincronizare este reciproca frecvenței de sincronizare.

Astfel, timpul CPU pentru un program dat poate fi exprimat în două moduri: numărul de cicluri de ceas pentru un program dat înmulțit cu durata ciclului de ceas sau numărul de cicluri de ceas pentru un program dat împărțit la frecvența de ceas.

O caracteristică importantă publicată adesea în rapoartele despre procesoare este numărul mediu de cicluri de ceas per instrucțiune - CPI (cicluri de ceas per instrucțiune). Cu un număr cunoscut de instrucțiuni executate într-un program, această opțiune vă permite să estimați rapid timpul CPU pentru un anumit program.

Astfel, performanța CPU depinde de trei parametri: ciclul de ceas (sau frecvența) de sincronizare, numărul mediu de cicluri pe instrucțiune și numărul de instrucțiuni executate. Este imposibil să se schimbe oricare dintre acești parametri izolat de celălalt, deoarece tehnologiile de bază folosite pentru a modifica fiecare dintre acești parametri sunt interdependente: frecvența ceasului este determinată de tehnologia hardware și de organizarea funcțională a procesorului; numărul mediu de cicluri pe instrucție depinde de organizarea funcțională și de arhitectura sistemului de instruire; iar numărul de instrucțiuni executate în program este determinat de arhitectura sistemului de instrucțiuni și tehnologia compilatorului. Când se compară două mașini, toate cele trei componente trebuie luate în considerare pentru a înțelege performanța relativă.

În procesul de căutare a unei unități de măsură standard pentru performanța computerului, au fost adoptate mai multe unități de măsură populare. Ele sunt discutate în detaliu în primul capitol.

1. Revizuirea metodelor și instrumentelor de evaluare a performanței sistemelor de calcul. Formularea problemei.

1.1 Indicatori pentru evaluarea performanței sistemelor de calcul

MIPS

O măsură alternativă a performanței procesorului (în raport cu timpul de execuție) este MIPS - (milioane de instrucțiuni pe secundă). Există mai multe interpretări diferite ale definiției MIPS.

În cazul general, MIPS este rata operațiunilor pe unitatea de timp, adică. pentru orice program MIPS dat, există pur și simplu raportul dintre numărul de instrucțiuni din program și timpul de execuție al acestuia. Astfel, performanța poate fi definită ca fiind reciproca timpului de rulare, mașinile mai rapide având un rating MIPS mai mare.

Aspecte pozitive MIPS este că această caracteristică este ușor de înțeles, în special pentru client, și că o mașină mai rapidă are un număr mai mare de MIPS, ceea ce este în concordanță cu ideile noastre intuitive. Cu toate acestea, utilizarea MIPS ca măsură de comparație are trei probleme. În primul rând, MIPS depinde de setul de instrucțiuni al procesorului, ceea ce face dificilă compararea MIPS între computere cu seturi de instrucțiuni diferite. În al doilea rând, MIPS chiar și pe același computer variază de la program la program. În al treilea rând, MIPS se poate schimba în raport cu performanța în direcția opusă.

Exemplul clasic pentru cel din urmă caz ​​este evaluarea MIPS pentru o mașină care include un coprocesor în virgulă mobilă. Deoarece, în general, fiecare instrucțiune în virgulă mobilă necesită mai multe cicluri de sincronizare decât o instrucțiune cu numere întregi, programele care folosesc un coprocesor în virgulă mobilă în loc de subrutinele corespunzătoare din compoziție software, rulează în mai puțin timp, dar au un rating MIPS mai scăzut. În absența unui coprocesor, operațiile în virgulă mobilă sunt implementate folosind subrutine folosind instrucțiuni aritmetice întregi mai simple și, ca urmare, astfel de mașini au un rating MIPS mai mare, dar execută atât de multe instrucțiuni încât timpul total de execuție crește semnificativ. Anomalii similare se observă și la utilizarea compilatoarelor de optimizare, când, ca urmare a optimizării, numărul de instrucțiuni executate în program este redus, ratingul MIPS scade și performanța crește.

O altă definiție a MIPS este asociată cu computerul odată foarte popular DEC VAX 11/780. Acest computer a fost adoptat ca punct de referință pentru compararea performanței diferitelor mașini. Se credea că performanța VAX 11/780 este egală cu 1MIPS (un milion de instrucțiuni pe secundă).

La acea vreme, a fost utilizat pe scară largă testul sintetic D hrystone, ceea ce a făcut posibilă evaluarea eficienței procesoarelor și compilatoarelor din limbajul C pentru programele de procesare nenumerică. A fost un mix de testare de 53% declarații de atribuire, 32% instrucțiuni de control și 15% apeluri de funcție. Acesta a fost un test foarte scurt: numărul total de instrucțiuni a fost 100. Viteza de execuție a programului a acestor 100 de instrucțiuni a fost măsurată în Dhrystone pe secundă. VAX 11/780 a atins 1757 Dhrystones pe secundă la acest test sintetic. Deci 1 MIPS este egal cu 1757 Dhrystone pe secundă.

A treia definiție a MIPS este legată de IBM RS/6000 MIPS. Faptul este că un număr de producători și utilizatori (adepți ai IBM) preferă să compare performanța computerelor lor cu performanța calculatoare moderne IBM, nu cu vechea mașină DEC. Relația dintre VAX MIPS și RS/6000 MIPS nu a fost niciodată publicată pe scară largă, dar 1 RS/6000 MIPS este aproximativ egal cu 1,6 VAX 11/780 MIPS.

MFLOPS

Măsurarea performanței computerelor în rezolvarea problemelor științifice și tehnice care folosesc în mod semnificativ aritmetica în virgulă mobilă a fost întotdeauna de interes deosebit. Pentru astfel de calcule a apărut prima dată problema măsurării performanței, iar rezultatele obținute au fost adesea folosite pentru a trage concluzii despre nivelul general de dezvoltare a computerului. De obicei, pentru probleme științifice și tehnice, performanța procesorului este măsurată în MFLOPS (milioane de calcule în virgulă mobilă pe secundă sau milioane de operații aritmetice elementare în virgulă mobilă efectuate pe secundă).

Ca unitate de măsură, MFLOPS este destinat să evalueze numai performanța operațiunilor cu virgulă mobilă și, prin urmare, nu este aplicabil în afara acestei zone limitate. De exemplu, programele de compilare au o evaluare MFLOPS aproape de zero, indiferent cât de rapidă este mașina, deoarece compilatoarele folosesc rar aritmetica în virgulă mobilă.

MFLOPS se bazează pe numărul de operații efectuate, nu pe numărul de comenzi executate. În opinia multor programatori, același program care rulează pe computere diferite va executa un număr diferit de instrucțiuni, dar același număr de operații în virgulă mobilă. De aceea, evaluarea MFLOPS a fost menită să ofere o comparație corectă a diferitelor mașini între ele.

1.2. Teste standard de măsurare a performanței

Această secțiune discută cele mai comune teste standard de control și evaluare - Whetstone, Dhrystone, Linpack. Linpack și Whetstone caracterizează procesarea numerelor reale, în timp ce Dhrystone caracterizează procesarea numerelor întregi. Testele SPEC mai moderne sunt, de fapt, un set de loturi pentru obținerea unui set de estimări de performanță de procesare a loturilor și, prin urmare, sunt descrise separat.

1.2.1. Whetstone (descriere generală)

În 1976, H.J.Curnow și B.A.Wichmann de la British National Physical Laboratory au prezentat un set de programe de măsurare a productivității scrise în limbajul Algol-60. Aceasta a fost prima dată când au fost publicate benchmark-uri și este cu atât mai remarcabil că pachetul Whetstone este compus din teste sintetice dezvoltate folosind statisticile de distribuție a instrucțiunilor de nivel intermediar (Whetstone instructions) ale compilatorului Whetstone Algol (de la care numele acestui pachetul de măsurare vine) colectat pe baza unui număr mare de sarcini de calcul. O descriere mai detaliată a acestui pachet de testare este dată în capitolul următor.

1.2.2. Dhrystone (descriere generală)

Testele Dhrystone se bazează pe o distribuție tipică a constructelor de limbaj. Dhrystone include 12 module reprezentând diferite moduri tipice de procesare. Testele Dhrystone sunt concepute pentru a evalua performanța legată de funcționarea unor tipuri specifice de sisteme și aplicații software (sisteme de operare, compilatoare, editori etc.). O descriere mai detaliată a acestui pachet de testare este dată în capitolul următor.

1.2.3. Linpack (descriere generală)

Linpack este o colecție de funcții de algebră liniară. Programele pachet procesează matrici bidimensionale, a căror dimensiune este principalul parametru de testare (matricele cele mai frecvent utilizate sunt 100x100 sau 1000x1000): cu cât sunt mai multe elemente în matrice, cu atât este mai mare paralelismul operațiilor în timpul testării performanței. Acest parametru este de o importanță deosebită pentru calculatoarele cu arhitectură vectorială (în acest caz caracterizează lungimea vectorilor care sunt procesați), dar ar fi o mare greșeală să nu se țină cont de el la testarea sistemelor din alte clase. Faptul este că aproape toate computerele moderne folosesc pe scară largă facilități de procesare paralelă (aritmetică pipeline și/sau superscalară, arhitectura procesorului VLIW, organizarea sistemului MPP etc.), astfel încât evaluarea performanței la diferite adâncimi de paralelism software este foarte indicativă pentru orice sistem modern.

Interpretarea rezultatelor:

  • Nota linpack caracterizează în principal performanța prelucrării numerelor în virgulă mobilă; când este specificată o dimensiune mare a matricelor (1000x1000), influența operațiilor întregi și a comenzilor de control (operatori de tip IF) asupra acestei estimări este mică.
  • Operatorul de formă Y[i]=Y[i]+a*X[i] reprezentat de procedura de testare SAXPY/DAXPY (SAXPY - precizie simplă; DAXPY - precizie dublă) are cea mai mare pondere în evaluarea performanței rezultată. Potrivit lui Weiker, această procedură ocupă peste 75% din timpul de execuție al tuturor testelor Linpack, iar Dongarra oferă o cifră și mai mare - 90%. Prin urmare, evaluarea Linpack nu este reprezentativă pentru întregul set de operații în virgulă mobilă, ci în principal pentru instrucțiunile de adunare și înmulțire.
  • Cantitatea mică de cod executabil Linpack (aproximativ 4,5 KB) și un număr nesemnificativ de operațiuni de salt nu creează nicio încărcare semnificativă asupra facilităților de buffering de comenzi din procesor: majoritatea modulelor pachetului sunt amplasate în întregime în memoria cache de instrucțiuni și nu necesită paginarea dinamică a comenzilor în timpul execuției (de exemplu, cea mai „greută” procedură SAXPY / DAXPY este reprezentată de doar 234 de octeți de cod). Cu toate acestea, sarcina pe calea de interacțiune procesor-memorie este destul de mare: testele cu precizie unică cu matrici de 100x100 procesează 40 KB de date, iar testele cu precizie dublă - 80 KB. Desigur, pentru majoritatea computerelor moderne, întreaga cantitate de date Linpack este probabil să fie localizată în memoria cache secundară și, cu toate acestea, rezultatele testului, în special pentru matrice de dimensiunea 1000x1000, sunt mai în concordanță cu conceptul „ performanta sistemului procesare batch” decât scorurile obținute cu Whetstone și Dhrystone, care reflectă în principal performanța procesorului.
  • Absența referințelor la funcțiile bibliotecii în testele Linpack exclude posibilitatea de optimizare a rezultatelor de către furnizorii de computere și ne permite să interpretăm scorurile obținute aproape ca o caracteristică „pură” a performanței sistemului.
  • Tehnica Linpack necesită publicarea obligatorie a numelui compilatorului care a tradus codul sursă (în timpul acestei proceduri, orice intervenție manuală în acțiunile compilatorului este interzisă, nici măcar nu este permisă eliminarea comentariilor din textul programului) și sistemul de operare sub care a fost efectuată testarea. Absența acestor date, precum și informațiile despre atributele de testare setate (Single/Dublu, Laminat/Unrolled, Coded BLAS/Fortran BLAS) și dimensiunea matricelor, ar trebui să servească drept avertisment cu privire la o posibilă încălcare a condițiilor standard. pentru măsurarea performanței folosind metoda Linpack. .

1.3 Pachete de teste de bază SPEC

1.3.1. SPECint92, SPECfp92

Importanța creării de pachete de testare bazate pe programe de aplicații reale ale unei game largi de utilizatori și de a oferi o evaluare eficientă a performanței procesorului a fost recunoscută de majoritatea celor mai mari producători de echipamente informatice, care în 1988 au înființat corporația non-profit SPEC (Standard Performance Evaluation Corporation). ). Scopul principal al acestei organizații este de a dezvolta și menține un set standardizat de programe de testare special selectate pentru evaluarea performanței. cele mai noi generații calculatoare de înaltă performanță. Orice organizație care a plătit o taxă de intrare poate deveni membru SPEC.

Principalele activități ale SPEC sunt: ​​dezvoltarea și publicarea de suite de testare concepute pentru a măsura performanța computerelor. Înainte de publicare, codurile obiect ale acestor seturi, împreună cu textele și instrumentele sursă, sunt verificate intens pentru posibilitatea de import pe diferite platforme. Sunt disponibile pentru o gamă largă de utilizatori contra unei taxe care acoperă costurile de dezvoltare și administrative. Un acord de licență special reglementează efectuarea testării și publicarea rezultatelor în conformitate cu documentația pentru fiecare caz de testare. SPEC publică un raport trimestrial despre știrile și rezultatele testelor SPEC: „Buletinul informativ SPEC”, care oferă o sursă centralizată de informații pentru rezultatele testelor SPEC.

Ieșirea principală a SPEC sunt suitele de testare. Aceste kituri sunt dezvoltate de SPEC folosind coduri care provin de la surse diferite. SPEC lucrează la importul acestor coduri pe platforme, precum și la construirea de instrumente pentru a construi sarcini de lucru semnificative din codul selectat ca teste. Prin urmare, testele SPEC sunt diferite de software-ul liber. Deși pot exista sub nume similare sau aceleași, timpul lor de execuție va fi în general diferit.

În prezent, există două seturi de bază de teste SPEC care se concentrează pe calcule intensive și măsoară performanța procesorului, a sistemului de memorie și eficiența generării codului de către compilator. De regulă, aceste teste sunt concentrate pe funcționare sistem UNIX, dar sunt importate și pe alte platforme. Procentul de timp petrecut cu sistemul de operare și funcțiile I/O este în general neglijabil.

Suita de teste CINT92, care măsoară performanța procesorului la procesarea numerelor întregi, constă din șase programe scrise în limbajul C și selectate din diverse domenii de aplicație: teoria circuitelor, interpretul limbajului Lisp, proiectarea circuitelor logice, ambalarea fișierelor text, foile de calcul și compilarea programelor.

Suita de teste CFP92, care măsoară performanța procesorului în procesarea numerelor în virgulă mobilă, constă din 14 programe, selectate și din diverse domenii de aplicație: dezvoltare circuite analogice, simulare Monte Carlo, chimie cuantică, optică, robotică, fizică cuantică, astrofizică, prognoză meteo și alte sarcini științifice și de inginerie. Două programe din acest set sunt scrise în C, iar restul de 12 sunt în Fortran. Cinci programe folosesc precizie simplă, iar restul precizie dublă.

Rezultatele rulării fiecărui test individual din aceste două seturi sunt exprimate ca raport dintre timpul necesar pentru a rula o copie a testului pe mașina testată și timpul pe care îl rulează pe mașina de referință. Mașina de referință este un VAX 11/780. SPEC publică rezultatele fiecărei teste individuale, precum și două scoruri compuse: SPECint92, media geometrică a celor 6 rezultate individuale ale testelor din setul CINT92 și SPECfp92, media geometrică a celor 14 rezultate ale testelor individuale din setul CFP92.

Trebuie remarcat faptul că rezultatele testării pe suitele CINT92 și CFT92 depind puternic de calitatea compilatoarelor de optimizare utilizate. De la mijlocul anului 1994, SPEC a introdus două scoruri compuse suplimentare, SPECbase_int92 și SPECbase_fp92, pentru a elucida mai precis capabilitățile hardware, care impun anumite restricții asupra compilatoarelor utilizate de furnizorii de computere.

în timpul testării.

1.3.2. SPECrate_int92, SPECrate_fp92

Scorurile compozite SPECint92 și SPECfp92 caracterizează destul de bine performanța procesorului și a sistemului de memorie în modul single-tasking, dar sunt complet nepotrivite pentru evaluarea performanței sistemelor multiprocesor și cu un singur procesor care funcționează în modul multitasking. Aceasta necesită o estimare a debitului sistemului sau a capacității acestuia, care să arate numărul de lucrări pe care sistemul le poate efectua într-o anumită perioadă de timp. Debitul sistemului este determinat în primul rând de cantitatea de resurse (numărul de procesoare, capacitatea memoriei RAM și a memoriei cache, lățimea de bandă a magistralei) pe care sistemul le poate furniza utilizatorului la un moment dat. Acesta este scorul, numit SPECrate, care a înlocuit SPECthruput89 anterior, pe care SPEC l-a propus ca măsură a performanței sistemului multiprocesor.

Totodată, s-a ales pentru măsurare metoda capacității omogene, care constă în faptul că se execută simultan mai multe copii ale aceluiași program de testare. Rezultatele acestor teste arată câte sarcini de un anumit tip pot fi executate într-un timp specificat și valorile medii geometrice ale acestora (SPECrate_int92 - pe un set de teste care măsoară performanța operațiilor cu numere întregi și SPECrate_fp92 - pe un set de teste care măsoară performanța operațiilor în virgulă mobilă) reflectă clar debitului configurații uniprocesor și multiprocesor atunci când lucrați în modul multitasking în sisteme partajate. Aceleași seturi de CINT92 și CFT92 au fost alese ca programe de testare pentru testarea debitului.

Când rulați un pachet de testare, se fac măsurători independente pentru fiecare test individual. De obicei, un astfel de parametru precum numărul de copii ale fiecărui test individual de rulat este ales pe baza considerațiilor privind utilizarea optimă a resurselor, care depinde de caracteristicile arhitecturale ale unui anumit sistem. O posibilitate evidentă este de a seta acest parametru egal cu numărul de procesoare din sistem. În acest caz, toate copiile unui anumit program de testare sunt lansate simultan și se înregistrează timpul de finalizare a ultimului dintre toate programele care rulează.

1.3.3. TPC

Pe măsură ce utilizarea computerelor în procesarea tranzacțiilor comerciale crește, devine din ce în ce mai important să se poată compara în mod corect sistemele între ele. În acest scop, Transaction Processing Performance Council (TPC) a fost înființat în 1988 ca organizație non-profit. Orice companie sau organizație poate deveni membru al TPC la plata unei taxe corespunzătoare. Astăzi, membrii TPC sunt aproape toți producători importanți de platforme hardware și software pentru automatizarea afacerilor. Până în prezent, TPC a creat trei suite de testare pentru a oferi o comparație imparțială a diferitelor sisteme de procesare a tranzacțiilor și intenționează să creeze noi repere.

În industria calculatoarelor, termenul de tranzacție poate însemna aproape orice fel de interacțiune sau schimb de informații. Cu toate acestea, în lumea afacerilor, „tranzacția” are un sens foarte specific: schimbul comercial de bunuri, servicii sau bani. În zilele noastre, aproape toate tranzacțiile comerciale sunt efectuate folosind computere. Cele mai tipice exemple de sisteme de procesare a tranzacțiilor sunt sistemele de gestiune contabilă, sistemele de rezervare a companiilor aeriene și sistemele bancare. Astfel, nevoia de standarde și pachete de testare pentru evaluarea unor astfel de sisteme este în creștere.

Înainte de 1988, nu exista un acord general cu privire la modul de evaluare a sistemelor de procesare a tranzacțiilor. Două pachete de testare au fost utilizate pe scară largă: Debit/Credit și TPI. Aceste pachete nu au permis însă o evaluare adecvată a sistemelor: nu aveau specificații complete, solide; nu a oferit rezultate obiective, verificabile; nu conținea o descriere completă a configurației sistemului, a costului acestuia și a metodologiei de testare; nu a oferit o comparație obiectivă și imparțială a unui sistem cu altul.

Pentru a rezolva aceste probleme, a fost creată organizația TPC, a cărei sarcină principală este definirea cu precizie a pachetelor de teste pentru evaluarea sistemelor de procesare a tranzacțiilor și a bazelor de date, precum și pentru diseminarea datelor obiective, verificabile în industrie.

TPC publică specificațiile pachetului de teste care guvernează modul în care funcționează testele. Aceste specificații asigură că cumpărătorii au date obiective pentru a compara performanța diferitelor sisteme de calcul. Deși implementarea specificațiilor testului de evaluare este lăsată în seama sponsorilor individuali de testare, sponsorii înșiși, atunci când anunță rezultatele TPC, trebuie să trimită rapoarte detaliate către TPC care să documenteze conformitatea cu toate specificațiile. Aceste rapoarte includ în mod specific configurația sistemului, metodologia de stabilire a prețurilor, diagramele valorii performanței și documentația care arată că testul îndeplinește cerințele de atomicitate, consistență, izolare și durabilitate (ACID) care asigură că toate tranzacțiile din testul de evaluare sunt procesate corect.

TPC definește și gestionează formatul mai multor teste de performanță OLTP (On-Line Transaction Processing), inclusiv testele TPC-A, TPC-B și TPC-C. După cum sa menționat, crearea unui test de evaluare este responsabilitatea organizației care administrează testul. TPC cere doar îndeplinirea anumitor condiții atunci când se creează un test de evaluare. În timp ce testele TPC menționate nu sunt teste specifice de performanță a bazelor de date, sistemele de baze de date relaționale sunt componente cheie ale oricărui sistem de procesare a tranzacțiilor.

Trebuie remarcat faptul că, ca orice alt test, nici un test TPC nu poate măsura performanța unui sistem care este aplicabil tuturor mediilor posibile de procesare a tranzacțiilor, dar aceste teste pot ajuta cu adevărat utilizatorul să compare în mod corect sisteme similare. Cu toate acestea, atunci când un utilizator face o achiziție sau plănuiește o decizie de cumpărare, el trebuie să înțeleagă că niciun test nu poate înlocui aplicația sa particulară.

1.3.3.1. Test TPC-A

Lansat în noiembrie 1989, testul TCP-A a fost conceput pentru a evalua performanța sistemelor care rulează într-un mediu bazat de date, tipic aplicațiilor de procesare a datelor on-line (OLDP). Acest mediu se caracterizează prin:

  • multe sesiuni de terminal în modul on-line
  • o cantitate semnificativă de I/O atunci când lucrați cu discuri
  • Timp de funcționare moderat al sistemului și al aplicației
  • integritatea tranzacției.

În practică, atunci când se efectuează testul, este emulat un mediu de calcul tipic bancar, incluzând un server de baze de date, terminale și linii de comunicație. Acest test folosește tranzacții simple și simple care actualizează baza de date în mod intensiv. O singură tranzacție (similară cu o operațiune normală de actualizare a contului clientului) oferă o unitate de lucru simplă, repetabilă, care verifică componentele cheie ale unui sistem OLTP.

Benchmark-ul TPC-A măsoară debitul unui sistem, măsurat prin numărul de tranzacții pe secundă (tps A) pe care un sistem le poate finaliza atunci când operează cu mai multe terminale. Deși specificația TPC-A nu definește numărul exact de terminale, furnizorii de sisteme trebuie să crească sau să scadă numărul de terminale în funcție de rata de transfer. Testul TPC-A poate fi efectuat pe rețele locale sau regionale. În acest caz, rezultatele sale determină fie debitul „local” (debitul TPC-A-local), fie debitul „regional” (debitul lat TPC-A). Evident, aceste două repere nu pot fi comparate direct. Specificația de testare TPC-A cere tuturor companiilor să dezvăluie complet detaliile funcționării lor de testare, configurația sistemului și costul acestuia (presupunând o perioadă de întreținere de cinci ani). Acest lucru vă permite să determinați costul normalizat al sistemului ($/tpsA).

1.3.3.2. Testul TPC-B

În august 1990, TPC a aprobat TPC-B, un test intensiv de bază de date caracterizat prin următoarele elemente:

  • cantitate semnificativă de I/O pe disc
  • Timp de funcționare moderat al sistemului și al aplicației
  • integritatea tranzacției.

TPC-B măsoară debitul sistemului în tranzacții pe secundă (tpsB). Deoarece există diferențe semnificative între cele două teste TPC-A și TPC-B (în special, TPC-B nu emulează terminale și linii de comunicație), acestea nu pot fi comparate direct.

1.3.3.2. Testul TPC-C

Suita de teste TPC-C simulează o aplicație de procesare a comenzilor. Modelează un sistem OLTP destul de complex care trebuie să gestioneze preluarea comenzilor, gestionarea stocurilor și distribuția de bunuri și servicii. Testul TPC-C testează toate componentele majore ale sistemului: terminale, legături, CPU, I/O pe disc și baza de date.

TPC-C cere să aibă loc cinci tipuri de tranzacții:

  • o nouă comandă introdusă folosind un formular de ecran complex
  • actualizare simplă a bazei de date referitoare la plată
  • actualizare simplă a bazei de date referitoare la livrare
  • informații despre starea comenzii

certificat de contabilitate a mărfurilor

Dintre aceste cinci tipuri de tranzacții, cel puțin 43% trebuie să fie plăți. Tranzacțiile legate de certificatele privind starea comenzilor, starea de livrare și contabilitate ar trebui să fie de 4% fiecare. Apoi măsoară rata tranzacțiilor noilor comenzi procesate împreună cu un amestec de alte tranzacții care rulează în fundal.

Baza de date TPC-C se bazează pe un model de furnizori angro cu zone periferice și depozite. Baza de date conține nouă tabele: Depozite, District, Client, Comandă, Comandă de comandă, Comandă nouă, Articol de factură, Inventar și Istoric.

De obicei sunt publicate două rezultate. Una dintre ele, tpm-C, reprezintă rata de vârf a tranzacțiilor (exprimată în tranzacții pe minut). Al doilea rezultat, $/tpm-C, este costul normalizat al sistemului. Costul sistemului include tot hardware-ul și software-ul utilizat în test, plus costul de întreținere timp de cinci ani.

Nuezele sintetice și benchmark-urile naturale nu pot servi ca adevărate suite de testare pentru evaluarea sistemului: nu pot modela cu acuratețe mediul utilizatorului final și nu pot evalua performanța tuturor componentelor relevante ale sistemului. Fără o astfel de garanție, rezultatele măsurării performanței rămân sub semnul întrebării.

1.4. Configurații de bază moderne ale computerului

Alegerea unei configurații de computer pe baza costurilor materiale estimate pentru achiziție și/sau a listei de sarcini care vor fi rezolvate pe aceasta este ceea ce este obligat să facă aproape orice persoană care decide să achiziționeze un computer. Pentru a face alegerea corectă, trebuie să luați în considerare criteriile după care se face:

Performanţă

Limitarea performanței PC-ului „de sus”, în principiu, nu are sens: „dacă poți fi de 100 de ori mai rapid decât toți ceilalți, dar pentru aceiași bani, atunci de ce nu?”. Dar limita inferioară se datorează, în primul rând, cerințelor celor mai comune în acest momentîn mediul utilizator al software-ului. De exemplu, standardul de facto pentru un computer de birou în acest moment este un sistem de operare al familiei Microsoft Windows nu mai tânăr decât Windows 98SE, așa că, în consecință, un computer de birou care nu poate rula acest sistem de operare este puțin probabil să satisfacă cumpărătorul, chiar dacă costă 100 de ruble. Acest lucru implică faptul că utilizatorul va avea posibilitatea nu numai de a observa clepsidra, ci și de a efectua acțiuni utile semnificative.

Fiabilitate

Tehnologii moderne Hardware-ul computerului avansează cu zece mile, dar atunci când configurați un PC pentru o gamă largă de utilizatori, nu este rezonabil să includeți produse vechi de câteva săptămâni. Da, acest tip de dispozitiv poate părea culmea perfecțiunii. Da, până acum recenziile sunt cele mai pozitive și nimeni nu a observat probleme. Până la urmă, da, poate că nu va fi deloc! Sau poate că vor... Pur și simplu nu se știe. Acordați atenție produselor mărcilor importante din Vest - HP, Dell, IBM. La început, poate părea că gama lor de computere este oarecum conservatoare. Cu toate acestea, tocmai de aceea utilizatorii care își cumpără computerele pot fi siguri că componentele instalate acolo nu vor fi „aruncate în coșul de gunoi al istoriei” în șase luni, nu vor rămâne fără suport tehnicși actualizări de drivere etc.

Upgradabilitate

Din păcate, suportul unei configurații hardware de computer pentru o creștere suplimentară a puterii prin înlocuirea unei părți (și nu a tuturor) componentelor principale este încă o mulțime de modele destul de scumpe. Acestea. pentru posibilitatea unei upgrade ulterioare, trebuie să plătiți imediat după cumpărare. În consecință, cele mai „modernizate” sunt modelele din gama de prețuri medii și superioare. Cu toate acestea, orice, chiar și cel mai ieftin PC, trebuie să aibă o capacitate minimă de upgrade. Cel puțin, de exemplu, permiteți instalarea unui procesor cu o viteză de ceas de o dată și jumătate până la două ori mai mare și dublarea (de preferință triplă) cantității de memorie.

Tabelul 1.1. este oferită o descriere a configurațiilor computerelor moderne, indicând în ce domenii ale vieții sunt utilizate.

Tabelul 1.1.

Descrierea configurațiilor moderne ale computerelor

Configurația minimă, care se formează conform principiului „principalul este prețul, vom suporta cumva orice altceva”. În consecință, o placă de bază este utilizată chiar și fără un slot AGP, adică posibilitățile de upgrade ulterioare ale sistemului sunt limitate de fapt doar prin instalarea unui procesor mai puternic și creșterea cantității de memorie. În același timp, un astfel de computer este destul de capabil să ruleze un set limitat de aplicații de birou - editor de text, foaie de calcul, browser de internet și client de mail. Odată cu creșterea cantității de memorie RAM, munca devine mai confortabilă, dar în cele mai multe cazuri puteți face fără ea. Windows 2000 (și cu atât mai mult Windows XP) este „categoric contraindicat” pentru o astfel de mașină, la fel ca ultima generație de suite office.

office-end-end

O mașină de lucru cu drepturi depline, echipată cu un procesor puternic și RAM suficientă, poate satisface nevoile aproape oricărui angajat de birou. Pe lângă faptul că este folosit ca o „mașină de scris electronică”, un astfel de computer poate deveni un loc de muncă destul de convenabil atât pentru un contabil, cât și pentru un „designer intern” care lucrează cu grafică de afaceri simplă. Din fericire, placa video de la ATI oferă calitate excelenta imagini chiar și la rezoluții foarte mari.

Prezența a 128 MB de RAM, în principiu, vă permite să instalați chiar și Windows 2000 pe un astfel de computer, deși nu este rezonabil să recomandați acest sistem de operare pentru un computer obișnuit de birou. Cel mai bun mod de a crește performanța este să instalați mai multă memorie - un procesor de 800 MHz care funcționează pe o magistrală de 100 MHz este puțin probabil să fie „nu suficient” pentru munca de birou pentru cel puțin încă un an și jumătate.

Aceste configurații au intrat în categoria de birou doar din motivul că nu este practic să se introducă împărțirea unui PC în mai mult de două grupuri. Este greu de imaginat o secretară care lucrează cu documente electronice și în același timp se confruntă cu o nevoie urgentă de un Pentium 4 1.5 GHz. Adică, dacă primele două configurații au fost de natură pur de birou - managementul documentelor, contabilitate și lucru pe Web, atunci „biroul high-end” este la locul de muncă un „utilizator avansat”, care se află și la birou, dar se ocupă nu numai cu compilarea și vizualizarea documentelor, ci și cu aspectul, proiectarea, lucrul cu sunet sau video sau, de exemplu, scrierea de programe simple „pentru uz intern” . În acest caz procesor puternicși va fi necesară o cantitate mare de RAM. În plus, aceste PC-uri au indicatori de upgrade excelenți - suportul pentru procesoare moderne de înaltă frecvență și memorie DDR (în cazul platformei AMD) va permite acestor sisteme să fie „terminate” fără o reluare radicală pentru o perioadă destul de lungă de timp.

divertisment low-end

Adesea, un computer este folosit nu numai (și adesea nici chiar atât de mult) pentru serviciu: computerele de acasă sunt, de asemenea, foarte comune. Dar cerințele pentru aceste două soiuri ale aceluiași computer sunt complet diferite. Pentru utilizatorul unui astfel de sistem, scopul său principal este jocurile și divertismentul, care impune anumite restricții „de jos” asupra configurației hardware - sunetul AC „97 și un accelerator 3D slab în computer de acasă deja complet irelevant. Divertisment scăzut - dacă constrângerile financiare sunt foarte stricte, atunci vă va permite să obțineți un dispozitiv pentru o sumă modestă, de la care utilizatorul își va începe călătoria în lumea divertismentului pe computer. În plus, posibilitățile de modernizare ulterioară a acestui sistem sunt destul de largi, ceea ce, dacă există finanțare, dorință sau nevoie, îi va permite să-și mărească treptat capacitatea fără a recurge la costuri monetare mari, unice.

divertisment de sfârșit de mijloc

O configurație destul de puternică care vă permite să nu vă gândiți prea mult atunci când cumpărați un nou joc la întrebările: „Va avea PC-ul meu suficientă putere pentru asta? Se va transforma procesul de joc în contemplarea unui diapozitiv?” În plus, prezența unei plăci audio care acceptă sunet cu cinci canale va face posibilă organizarea pe baza acestui PC home theater sau un studio de sunet amator. În configurația de bază procesor AMD Duron 1GHz a instalat o placă de bază bazată pe chipset-ul VIA Apollo KT266A cu suport pentru memorie DDR, chiar dacă, conform rezultatelor testării Duron în combinație cu PC2100 DDR, nu există o creștere semnificativă a performanței în comparație cu PC133.

Proprietarul acestei configurații poate uita de toate posibilele inconveniente care apar în timpul jocurilor. „Totul la maximum” – acesta este setul optim de opțiuni pentru aproape orice joc care există astăzi, dacă rulează pe acest computer. Placa de sunet oferă o calitate excelentă a sunetului și suport pentru toate standardele audio 3D moderne. În prezența acusticii de înaltă calitate, acest sistem poate deveni un centru de divertisment acasă. Este complet lipsit de sens să vorbim despre aplicația sa de lucru, deoarece toată lumea știe de mult că cerințele aplicațiilor de jocuri pentru puterea PC-ului sunt cu un ordin de mărime mai mari decât cerințele aplicației software.

1.5. Calcularea funcțiilor recursive

Recursiunea este procesul de definire sau exprimare a unei funcții, proceduri, constructii de limbaj, rezolvarea unei probleme prin intermediul acestora.

Recursiunea în calcule este o situație în care aceeași valoare (funcție) calculată în alte condiții (argumente ale funcției) este utilizată pentru a calcula o anumită valoare a unei cantități (funcție). Proprietatea recursivă nu se limitează la probleme de calcul. Aceasta este o proprietate generală pe care o pot avea algoritmii și programele de orice natură.

Recursiunea într-un program (algoritm) este capacitatea unui program (procedură, algoritm) de a se referi la el însuși pentru a efectua același tip de secvență de operații în diferite condiții (parametri) externe. Un semn al prezenței recursiunii este construirea unui apel de program (procedură), care este prezent în textul acestui program.

Recursiunile în algoritmi și programe sunt instrumente de programare puternice și eficiente. Pe de o parte, ele reflectă natura internă a problemei și metoda de soluționare a acesteia, în care diferite părți ale algoritmului sunt similare cu el însuși. Putem spune că algoritmii recursivi sunt o manifestare algoritmică a proprietăților de egalitate și similaritate care există cu adevărat în lumea obiectelor. Pe de altă parte, recursiunile vă permit să profitați din plin de programarea procedurală - o procedură sau o funcție utilizează apelul propriilor operațiuni. Drept urmare, textul programului este cel mai compact și mai ușor de înțeles.

Fiecare procedură recursivă și apel de funcție utilizează o parte din memoria RAM a computerului, organizată într-un mod special - grămadă. Stiva stochează informațiile necesare pentru a reveni la execuția programului apelant. Deoarece dimensiunea stivei, ca orice memorie, este limitată, este și el un numar mare de structuri de apel în condiții reale este imposibil. Acest lucru este important de reținut când numărul așteptat de apeluri recursive (adâncimea recursiunii) poate fi de sute.

Cea mai cunoscută dintre funcțiile complet recursive este funcția Ackermann. Este recomandabil să verificați posibilitatea utilizării acestei funcții atunci când testați diferite configurații ale computerului.

1.6. Formularea problemei

Pe baza cerințelor generale prezentate în sarcina pentru proiectul de absolvire, vom formula o descriere mai detaliată a pachetului de programe de testare în curs de dezvoltare.

Este necesar să se dezvolte un algoritm pentru un program care calculează funcția Ackermann și să se implementeze un test de performanță al sistemelor de calcul folosind acest algoritm. Programul ar trebui să aibă o interfață de utilizator simplă și convenabilă: utilizatorul trebuie doar să selecteze testul necesar și să specifice parametrii acestuia. Folosind testul dezvoltat, este necesar să se compare secvențele de configurații ale computerului. Pentru ca comparația să fie corectă, aceleași configurații trebuie testate cu benchmark-uri standard. Rezultatele obținute ar trebui analizate și trebuie trase concluzii adecvate pe baza acestora.

Etapa finală de proiectare este pregătirea documentației programului, care include, pe lângă termenii de referință, textele programului, descrierea programului, precum și programul și metodologia de testare.

2. Proiectarea și dezvoltarea unui produs software

in dezvoltare software conține trei programe de testare: unul principal și două suplimentare. În plus, au fost alese teste standard pentru măsurarea performanței computerului: Whetstone și Dhrystone. Aceste programe caracterizează procesarea numerelor reale și, respectiv, prelucrarea datelor întregi. Testul principal este un program bazat pe calculul funcției Ackermann.

2.1. Descrierea testelor suplimentare

2.1.1. Whetstone (descrierea procedurii)

Suita de teste Whetstone constă din mai multe module care simulează încărcarea programului în cele mai tipice moduri de executare a sarcinilor de calcul (aritmetică în virgulă mobilă, instrucțiuni de tip IF, apeluri de funcții etc.). Fiecare modul este executat de mai multe ori, conform statisticilor inițiale ale instrucțiunilor Whetstone (practic, acest lucru este implementat prin includerea modulelor în construcții ciclice cu un număr diferit de „viruri” ale buclei), iar performanța este calculată ca raport dintre numărul de instrucțiuni Wetstone la timpul total de execuție a tuturor modulelor din pachet. Acest rezultat este prezentat în KWIPS (Kilo Whetstone Instructions Per Second) sau MWIPS (Mega Whetstone Instructions Per Second). Un avantaj semnificativ al acestor estimări este că instrucțiunile Whetstone nu sunt legate de sistemul de comandă al niciunui computer, adică estimarea performanței în MWIPS este independentă de model.

Programul a fost adaptat în felul următor: a fost introdus suplimentar parametrul „timpul de execuție a testului” - acest parametru este setat de utilizator. Acest lucru s-a făcut astfel încât orice funcție Ackerman (cu orice parametri) să poată fi asociată cu numărul de treceri (numărul de bucle exterioare efectuate) ale testului Whetstone, ceea ce ne permite să estimam numărul de operații efectuate de procesor în timpul calculului. a funcţiei Ackerman date.

Conform descrierii de mai sus a testului, a fost întocmită o schemă generală a programului Whetstone, prezentată în Figura 2.1.

Fig.2.1. Schema generală a programului Whetstone

Logica principală a programului este inclusă în funcția Whets. Ca parte a acestei funcții, este implementată o încărcare software, care constă din opt module executate secvenţial:

  • calculul elementului de matrice
  • calculul elementelor de matrice (o matrice este dată ca parametru de funcție)
  • operațiuni de sucursală (dacă - altfel)
  • aritmetică întregi (opțiuni pentru scădere, adunare și înmulțire)
  • funcții trigonometrice (sin, cos, atan)
  • proceduri de apelare care operează pe pointeri
  • manipularea matricei de legături
  • apelarea funcțiilor standard (sqrt, log, exp)


schema algoritmului procedurii de testare este prezentată în Figura 2.2.


Orez. 2.2. Schema algoritmului procedurii de testare


Interpretarea rezultatelor

  • Pachetul Whetstone este axat pe evaluarea performanței numerelor în virgulă mobilă: aproape 70% din timpul de execuție este cheltuit pe aritmetica în virgulă mobilă și execuția funcțiilor matematice ale bibliotecii.
  • Numărul mare de apeluri către biblioteca de funcții matematice încorporate în testele Whetstone necesită o atenție deosebită la compararea rezultatelor obținute pentru diferite computere: producătorii au posibilitatea de a optimiza estimarea Whetstone făcând modificări în bibliotecă.
  • Deoarece modulele de testare Whetstone sunt reprezentate de un cod executabil foarte compact, pentru procesoarele moderne ele nu permit evaluarea eficacității mecanismului de schimbare dinamică a instrucțiunilor în cache-ul de instrucțiuni: orice modul Whetstone se află în întregime în memoria cache, chiar și de cea mai mică capacitate.
  • O caracteristică a testelor luate în considerare este absența aproape completă a variabilelor locale. Ca rezultat, scorurile Whetstone depind în mare măsură de eficiența resurselor computerului care oferă acces la memoria RAM și tamponarea datelor în procesor (inclusiv numărul de registre, capacitatea memoriei cache a datelor și mecanismul său de înlocuire). Cu toate acestea, aceeași circumstanță face ca testele Whitstone să fie practic insensibile la mijloacele de îmbunătățire a eficienței lucrului cu variabile locale.

2.1.2. Dhrystone (descrierea procedurii)

Descrierea algoritmului de testare

Testele Dhrystone sunt concepute pentru a evalua performanța unor tipuri specifice de sisteme și aplicații software (sisteme de operare, compilatoare, editori etc.). Acest lucru a lăsat o amprentă notabilă asupra structurii datelor și codului de execuție: testele Dhrystone nu se ocupă de numere în virgulă mobilă, dar operațiunile pe alte tipuri de date (caractere, șiruri de caractere, booleeni, pointeri etc.) prevalează. În plus, în comparație cu testele Whetstone, numărul de structuri în buclă este redus, sunt utilizate expresii de calcul mai simple, dar numărul de instrucțiuni IF și apeluri de proceduri a crescut.

Procedurile de testare Dhrystone sunt combinate într-un singur ciclu de măsurare, care conține 103 declarații în versiunea C. Acest ciclu global este luat ca unitate de lucru (un Dhrystone) și performanța este măsurată în numărul de cicluri de măsurare efectuate pe secundă (Dhrystones/s). Adevărat, în ultima perioadă, la publicarea estimărilor Dhrystone, s-au folosit și alte unități de măsură - MIPS VAX. O astfel de abatere de la regulile standard este dictată de două circumstanțe: în primul rând, unitățile de Dhrystones / e par prea exotice; în al doilea rând, scorul MIPS VAX coincide în sens cu unitățile convenționale ale testelor SPEC foarte comune care caracterizează performanța computerului în raport cu sistemul VAX 11/780 (de exemplu, 1,5 MIPS VAX înseamnă că sistemul testat funcționează de o dată și jumătate). mai rapid decât VAX 11/780).

2.2. Dezvoltarea unui test bazat pe funcția Ackerman

2.2.1 Utilizarea recursiunii pentru a evalua performanța aeronavei

Recursiunea exprimă proprietatea caracteristică a unui obiect, și anume că obiectul se referă la el însuși. În programare, termenul „recursiune” descrie o situație în care un program continuă să se numească până la unii condiție dată. Pentru a rezolva astfel de probleme, este necesar să se evalueze eficacitatea muncii sistem de calcul pe care se rezolvă această problemă la efectuarea recursiunii. Câteva situații tipice de utilizare a algoritmilor și a programelor recursive pentru rezolvarea problemelor reale sunt considerate mai jos.

Factorială

Luați în considerare o funcție definită după cum urmează:

F(n) = 1 * 2 * 3 * ... * n, unde n este un număr natural dat. Un astfel de produs al numerelor naturale de la 1 la n se numește în matematică factorialul numărului n și se notează astfel: „n!”. În general, valoarea lui "n!" este definită și pentru valoarea zero. Deci, definiția completă a factorialului unui număr nenegativ este:

2.n! = 1 * 2 * 3 * ... * n, pentru n > 0

Funcția "n!" are o mare importanţă în acele probleme de matematică care se ocupă de obţinerea şi explorarea diverselor opţiuni. Deci, de exemplu, numărul diferite căi aranjarea unui grup de n obiecte diferite este egală cu „n!”. Aici, proprietatea recursivă este că valoarea factorială a oricărui număr n poate fi obținută pe baza valorii factoriale pentru numărul precedent: (n-1).

Într-adevăr, este ușor de observat că:

4! = (1 * 2 * 3) * 4 = 3! * 4

Cu alte cuvinte, pentru a determina algoritmul de calcul factorial, puteți seta următoarele relații:

n! = (n-1)! * n, pentru n > 0 (2.2)

Să fim atenți la expresia numerotată 2.2. Atât în ​​partea dreaptă cât și în stânga expresiei există aceeași funcție calculată! Pentru a calcula factorialul lui n, trebuie să calculați (n-1)!, pentru a calcula (n-1)! trebuie să știi ce este (n-2)! etc.

Performanța sau viteza computerului este viteza cu care efectuează operațiuni. Performanța este o valoare complexă și depinde direct de componentele din care este asamblat computerul. De exemplu, două computere cu aceleași, dar cu volume diferite, vor avea performanțe diferite. Un computer cu 16 GB RAM va funcționa mai bine decât un computer cu 8 GB RAM. În timpul funcționării, computerul citește și scrie în mod constant date pe memoria RAM ultra-rapidă și cu cât are mai multe, cu atât poate stoca mai multe date în el pentru activitatea curentă, fără a apela la un hard disk lent.

Sau un alt exemplu: un computer cu un hard disk SSD rapid (hard disk) va fi mai productiv decât un computer cu unul obișnuit. Un hard disk SSD este un fel de unitate flash mare, unde vitezele de scriere și citire sunt de multe ori mai mari decât viteza unui hard disk obișnuit, datorită absenței pieselor mobile și tehnologiei avansate de citire/scriere.

Acelasi cu unități centrale de procesare PC: cu cât sunt mai multe nuclee de procesare în el și cu cât este mai mare frecvența muncii lor, cu atât computerul va fi mai productiv.

Confortul de a lucra cu acesta depinde de performanța computerului. Cu o cantitate mică de RAM, computerul poate încetini, mai ales dacă sunt deschise mai multe programe, iar un hard disk lent nu poate oferi încărcare rapidă a sistemului de operare și lansare rapidă a software-ului în comparație cu c unitate SSD. Cu toate acestea, trebuie să înțelegeți că, cu cât computerul este mai productiv, cu atât este mai scump. Acum să vedem cum să aflăm performanța computerului dvs.

Cum se verifică performanța computerului

Există multe metode de măsurare a performanței computerului, dar toate, într-un fel sau altul, calculează un anumit număr sau indice de performanță, care cu cât este mai mare, calculator mai rapid. Există un număr suficient de programe care calculează performanța PC-ului, numite benchmark-uri (din engleză benchmark - „landmark”, „standard”). Vom folosi standardul instrument Windows, care calculează indicele de performanță.

Indexul experienței Windows

Pentru a afla performanța computerului dvs., faceți următoarele:

De ceva timp, computerul va verifica performanța componentelor individuale, pe baza cărora va afișa separat o evaluare generală a computerului și a componentelor sale.

Viteza și performanța computerului.

Agenția Federală pentru Educație

GOU VPO ʼʼTver State Technical Universityʼʼ

Hardware pentru sisteme informatice.

Note de curs.

Tver 2012ᴦ.

Principalele caracteristici, domenii de aplicare ale calculatoarelor de diferite clase.

Istoria dezvoltării computerelor.

Primul calculator de operare a fost ENIAC (SUA, 1945-46). ENIAC conținea 18.000 de tuburi vidate și consuma 150 de kilowați de electricitate. În același timp, această mașină nu a folosit încă principiul unui program stocat. Matematicianul american John von Neumann a adus o mare contribuție la dezvoltarea computerelor. Unul dintre cele mai importante principii de proiectare a computerelor propuse de Neumann - principiul unui program stocat a fost implementat pentru prima dată în Anglia în 1949 în mașina EDSAC și este folosit și în calculatoarele moderne. Acest principiu presupune ca programul să fie introdus în memoria computerului în același mod în care sunt introduse datele în el.Primul computer casnic (MESM) a fost creat în 1951 ᴦ. sub conducerea S.A. Lebedev. La mijlocul anilor '60, a fost creată mașina BESM, care a fost mașina de bază în URSS în cercetarea științifică, de apărare și spațială. Dintre celelalte calculatoare, menționăm „Minsk”, „Ural”, „Mir”, etc., create sub conducerea I.S. Bruk, V.M. Glushkov și alții În istoria dezvoltării tehnologiei computerelor, se obișnuiește să se evidențieze generațiile de computere. Trecerea de la o generație la alta este asociată cu o schimbare a bazei de elemente pe care este construit computerul.
Găzduit pe ref.rf
Se disting următoarele patru generații de calculatoare:

Prima generație: 1946-1957; bază elementară - tuburi electronice de vid; memorie cu acces aleatoriu (RAM) - până la 100 de octeți; performanță - până la 10.000 de operații pe secundă;

a doua generație: 1958-1964; element de bază - tranzistoare; RAM - până la 1000 de octeți; performanță - până la 1 milion de operații pe secundă;

a treia generație: 1965-1975; element de bază - mici circuite integrate; RAM - până la 10 KB; viteza - până la 10 milioane de operații pe secundă;

a patra generație: 1976; element de bază - circuite integrate mari (LSI) și extra-mari (VLSI); RAM - de la 100 KB și peste; performanță - peste 10 milioane de operații pe secundă.

Trebuie remarcat faptul că granița dintre a treia și a patra generație de calculatoare pe baza bazei elementului este mai degrabă condiționată: a existat, mai degrabă, o schimbare cantitativă a parametrilor bazei elementului.

Principalele caracteristici ale calculatorului.

Viteza și performanța computerului.

În același timp, unitatea de măsură a vitezei computerului „operații pe secundă” este depășită. Nu reflectă cu exactitate performanța. Pentru calculatoarele din primele generații, o „operație” a fost adesea înțeleasă ca adăugarea a două numere întregi de o anumită lungime. Operația de înmulțire a fost efectuată de zece ori mai încet decât adunarea. Din acest motiv, pentru calculatoarele moderne, caracteristica - frecvența ceasului este mai des folosită. Frecvența ceasului - ϶ᴛᴏ numărul de impulsuri pe secundă (herți) generate de generatorul de ceas al unui computer. Frecvența ceasului este o unitate de măsură mai mică decât operațiile pe secundă. Producătorii de computere se străduiesc să reducă numărul de cicluri necesare pentru a efectua operațiuni de bază și, prin urmare, să mărească viteza computerelor. calculatoare personale caracterizată prin viteză peste 2 GHz și RAM – mai mult de 256 MB. Clasificarea calculatoarelor în funcție de performanță și funcționalitate este prezentată în Figura 1.1.

Orez. 1.1.Clasificarea calculatoarelor în funcție de performanță.

Determinarea caracteristicilor vitezei și performanței este o sarcină inginerească și științifică foarte complexă, care până acum nu are abordări și metode unificate de rezolvare.

S-ar părea că tehnologia de calcul mai rapidă ar trebui să ofere și performanțe mai mari. În același timp, practica de măsurare a valorilor acestor caracteristici pentru computere de diferite tipuri poate da rezultate contradictorii. Principalele dificultăți în rezolvarea acestei probleme constă în problema alegerii: ce și cum se măsoară. Să indicăm doar cele mai comune abordări.

Una dintre unitățile alternative de măsurare a performanței a fost și rămâne valoarea măsurată în MIPS (Million Instructions Per Second - milion de operații pe secundă). Ca și operațiuni aici, sunt de obicei luate în considerare cele mai scurte operații de tip adăugare. MIPS a fost utilizat pe scară largă pentru a evalua mașinile mari din a doua și a treia generație, dar este rareori folosit pentru a evalua computerele moderne din următoarele motive:

‣‣‣ Setul de instrucțiuni al microprocesoarelor moderne poate include sute de instrucțiuni care variază foarte mult în timpul de execuție;

‣‣‣ Valoarea exprimată în MIPS variază în funcție de caracteristicile programelor;

‣‣‣ Valoarea MIPS și valoarea performanței pot intra în conflict atunci când sunt evaluate diferite tipuri de computere (de exemplu, computere cu și fără coprocesor în virgulă mobilă).

La rezolvarea problemelor științifice și tehnice în programe, proporția operațiilor cu virgulă mobilă crește brusc. Din nou, pentru mașinile mari cu un singur procesor, în acest caz, a fost utilizată și continuă să fie utilizată caracteristica de performanță exprimată în MFPOPS (Million Floating Point Operations Per Second). Pentru computerele personale, acest indicator practic nu este utilizat din cauza particularităților sarcinilor rezolvate și a caracteristicilor structurale ale computerului.

Viteza și performanța computerului. - concept și tipuri. Clasificarea și caracteristicile categoriei „Viteza și productivitatea computerului”. 2017, 2018.