Home >Documents >Arhitectura Sistemelor de Calcul Curs 13andrei.clubcisco.ro/cursuri/f/f-sym/3asc/ASC - 13... ·...

Arhitectura Sistemelor de Calcul Curs 13andrei.clubcisco.ro/cursuri/f/f-sym/3asc/ASC - 13... ·...

Date post:17-Jan-2020
Category:
View:12 times
Download:0 times
Share this document with a friend
Transcript:
  • 1

    Arhitectura Sistemelor de Calcul – Curs 13

    Universitatea Politehnica Bucuresti

    Facultatea de Automatica si Calculatoare

    cs.pub.ro

    curs.cs.pub.ro

    2

    Cuprins

    • Benchmarking – nevoia de a compara sisteme de calcul

    • Benchmark-uri pentru masini seriale

    • HPCC: HPC Challenge Benchmark

    – Motivatie

    – Prezentarea componentelor software

    – Grafice & Date

  • 2

    3

    Motivatie

    • Lectura specificatiilor unor sisteme de calcul nu este suficienta pentru a ne oferi o imagine completa asupra performantelor acestuia

    • Asadar, a fost necesara crearea unor teste (benchmark-uri) care sa permita compararea performantelor intre sisteme/arhitecturi diverse

    • Testele constau din seturi de programe care sunt menite sa scoata in evidenta performantele diverselor componente ale unui SC:

    – Floating Point CPU Performance

    – Caracteristici de interconectare (Bandwidth/Latenta)

    – Memorii externe (Hard-Drives)

    4

    Caracteristici & Probleme

    • Sunt create pentru a “simula” comportamentul aplicatiilor reale (sintetice)

    • Cele mai bune benchmark-uri sunt aplicatiile utilizator in sine…

    • Asadar, trebuie sa fim intotdeauna circumspecti cand utilizam benchmark-uri!

    • Cateva probleme:

    – Producatorii HW fac “tuning”

    – Performantele masinilor se degradeaza cand load-ul depaseste o valoare de prag

    – Securitatea, disponibilitatea, fiabilitatea, serviceabilitatea sau scalabilitatea NU sunt obiectul unui benchmark

  • 3

    5

    Tipuri de Benchmark-uri

    1. Aplicatii reale: procesoare de text, aplicatii utilizator

    2. Kernel: contine doar parti esentiale dintr-o varietate de programe (i.e. Linpack), cu rezultate in MFlops

    3. Micro-benchmark-uri: dezvoltate de utilizatori pentru a testa componente ale sistemului

    4. Sintetice: se strang date statistice asupra operatiilor efectuate de aplicatii si se construiesc programe care sa respecte proportia aflata astfel (Whetstone/Dhrystone)

    5. Pentru sisteme I/O

    6. Pentru sisteme paralele

    6

    Cuprins

    • Benchmarking – nevoia de a compara sisteme de calcul

    • Benchmark-uri pentru masini seriale

    • HPCC: HPC Challenge Benchmark

    – Motivatie

    – Prezentarea componentelor software

    – Grafice & Date

  • 4

    7

    SPEC

    • SPEC (Standard Performance Evaluation Corporation) realizeaza benchmark-uri pentru sisteme de calcul si le publica pe web

    • Incearca sa simuleze situatii reale:

    – SPECweb testeaza performantele unui server de web pentru diferite tipuri de cereri HTTP paralele

    – SPEC CPU testeaza CPU-ul ruland

    • SPEC sunt scrise in C sau Fortran (compilatoarele pot avea optimizari pentru acest tip de aplicatie)

    • Se distribuie cu o licenta

    • Exista un conflict cu GPL (foloseste cod GPL)…

    • http://www.spec.org/

    8

    TPC & BAPCo & Sandra

    • TPC (Transaction Processing Performance Council) a definit benchmark-uri pentru procesarea tranzactiilor si a bazelor de date: – http://www.tpc.org/

    • Consortiul BAPCo (Business Application Performance Corporation) este format din Intel, AMD, Dell, HP, NVidia, Apple & Microsoft, etc: – WEBmark, SYSmark 2004SE, si MobileMark

    – http://www.bapco.com/

    • SiSoftware Sandra (System ANalyser, Diagnostic and Reporting Assistant) este un program de testare si diagnoza: – http://www.sisoftware.net/

    http://www.spec.org/http://www.tpc.org/http://www.bapco.com/http://www.sisoftware.net/

  • 5

    9

    Cuprins

    • Benchmarking – nevoia de a compara sisteme de calcul

    • Benchmark-uri pentru masini seriale

    • HPCC: HPC Challenge Benchmark

    – Motivatie

    – Prezentarea componentelor software

    – Grafice & Date

    10

    The LINPACK Benchmark

    • Avantaje – Ofera ca rezultat un singur numar Rmax = performanta maxima

    realizata; Rpeak = performanta maxima teoretica de varf (estimata) – Usor de definit si usor de clasificat pe baza lui – Permite modificarea dimensiunii problemei – Ocupa sistemul testat cu un job de lunga durata

    • Dezavantaje – Scoate in evidenta doar viteza “peak” si numarul de procesoare – Nu evidentiaza rata de transfer locala (bandwidth) – Nu evidentiaza reteaua de comutare – Nu testeaza mecanisme de tipul gather/scatter – Ignora legea lui Amdahl – permite doar scalare “slaba”

    • Un singur numar nu poate caracteriza performanta totala a unui sistem de calcul!

    • In mod evident, ceva mai complex decat LINPACK este necesar…

  • 6

    11

    Relevanta LINPACK

    • Daca luam in considerare anii 70’-80’, poate ca LINPACK era cel mai potrivit benchmark

    • Atunci, “zidul” memoriei era mai mult o “treapta”

    • Memoria era mult mai

    “apropiata” de CPU:

    – n ciclii pentru a executa

    o instructiune si n ciclii

    pentru a aduce un cuvant

    din memorie

    • LINPACK arata de asemenea gradul de optimizare al compilatoarelor

    12

    Schimbari ale Sistemelor de Calcul

    • In ultimii 40 de ani s-au schimbat foarte multe in hardware-ul sistemelor de calcul:

    – Arhitecturi vectoriale, superscalare, distribuite, cu memorie partajata, sisteme multicore, etc

    • Cu toate ca LINPACK a fost modificat, nu toate

    modificarile reflecta

    progresele hardware

    • Ierarhia memoriilor

    este mult mai complexa

    acum

  • 7

    13

    HPC Challenge Benchmark

    • Un Benchmark ce evidentiaza – Procesoarele

    – Memoria

    – Reteaua de interconectare

    • Avantajul major al HPCC – arhitecturile pot fi descrise cu mult mai multe metrici decat FLOPS-urile LINPACK

    • Scopuri ale HPCC – Sa fie complementar cu TOP 500

    – Sa ofere benchmark-uri care exprima performata aplicatiilor ca o functie a caracteristilor accesului la memoria sistemului (ca localitate spatiala si temporala)

    – Sa permita optimizari • Sa inregistreze efortul necesar pentru tuning-ul aplicatiilor

    • Rularea necesita MPI si BLAS

    – Rezultatele obtinute sa poata fi verificate

    – Sa arhiveze rezultatele

    HPCS = High Productivity Computing Systems

    DARPA = Defense Advanced Research Projects Agency

    14

    Testarea unui singur Procesor si a unui intreg Sistem de Calcul

    • Local: un singur procesor participa la calculele dorite

    • Embarrasingly Parallel: fiecare procesor din sistem participa la calcule, insa ele nu comunica explicit intre ele

    • Global: toate procesoarele din sistem participa la calcule si comunica explicit intre ele

  • 8

    15

    HPC Challenge Benchmark

    • HPCC e format din 7 benchmark-uri diferite si este

    de fapt un framework pentru adaugarea de

    benchmark-uri relevante:

    1. HPL (LINPACK) – MPI Global (Ax=b)

    2. STREAM – Local

    *STREAM – EP

    3. PTRANS – MPI Global (A ← A + BT)

    4. RandomAccess – Local, MPI Global

    *RandomAccess – EP

    5. BW and Latency – MPI

    6. FFT – Local, Global & EP

    7. Matrix Multiply – Local & EP

    Local

    EP

    Global

    16

    Scopul HPCC

    • HPCS incearca prin HPCC sa: – Uniformizeze diferentele existente in ierarhia de memorie

    – Imbunatateasca performantele aplicatiilor reale

    – Usureze programarea sistemelor (paralele) de calcul

  • 9

    17

    Functionarea HPCC

    • Benchmark-ul functioneaza ca un program de sine statator

    • Similar ca fisier de intrare/specificare cu HPL

    • HPCC este format dintr-un “Base Run”, urmat de eventuale “Optimization Runs”: – Base Run este rularea Benchmark-ului “out of the box” – Utilizatorul trebuie sa instaleze pe masinile de test MPI si BLAS – In Optimized Runs se pot inlocui anumite subrutine, pentru a creste

    performantele unei anume componente

    • Rezultatele se upload-eaza pe web la: http://icl.cs.utk.edu/hpcc/

    • Se pot genera apoi tabele html sau Excel cu rezultatele obtinute: – In mod intentionat nu se va oferi un singur criteriu de evaluare – Astfel NU se vor obtine clasificari generale!

    • Scopul declarat al HPCC: sa NU necesite mai mult de dublul unei rulari HPL

    18

    Resurse vs HPCC

    • Din ce sunt formate componentele HPCC?

    http://icl.cs.utk.edu/hpcc/

  • 10

    19

    Rezultate HPCC

    20

    Diagrame Kiviat

    • HPL, STREAM, DGEMM: tehnologia de interconectarea NU conteaza; HPL scaleaza bine iar STREAM si DGEMM nu comunica (sunt locale)

    • RandomRing Bandwidth: Cray-ul are cel mai mare bandwidth

    • RandomRing Latency: Cray-ul are si cea mai mica latenta

    • Random Access: Tehnologia de interconectare conteaza mult – senzitivitate la latenta

    • PTRANS & FFTE: Tehnologia de interconectare conteaza mult – senzitivitate la bandwidth

  • 11

    21

    HPL & HPCC Benchmarks

    • On February 22nd 2009 we broke the 1TFlops barrier

    with 28 of our 32 IBM HS21 blades (2xQuad-Core)

    • HPL performance:

    1003 GFlops from

    1792 GFlops peak

    • System dimension:

    230.000 (Ax=b)

    22

    Further Performance Improvements

    • Employ the IBM XL C/C++ Compiler Suite

    • Employ the Intel Cluster Toolkit Compiler Suite

    • Use optimized MKL,

    MASS libraries

    • Use the QS22 Cell

    Xi Blades together

    with the extra HS21

    Blades → 256 Xeon

    Cores & 64 SPUs

  • 12

    23

    Dezvoltarea Viitoare a HPCC

    • Proiectul doreste crearea unui cadru pentru dezvoltearea de benchmark-uri

    • Se doreste dezvoltarea unor “semnaturi” ale fiecarei masini

    • In viitor, colectia de benchmark-uri trebuie marita

    – De exemplu pentru operatii cu matrici rare

    • Portarea HPCC pe cat mai multe sisteme

    • Implementarea diversa a HPCC

    – In noi limbaje (Fortran, UPC, Co-Array)

    – In noi medii

    – In noi paradigme

    24

    Suggested Hands-On!

    • SPEC/TPC/BAPCo/Sandra

    • Hai sa vedem cum arata pe clusterul nostru un Base Run HPCC

    • Fisierul de intrare: hpccinf.txt

    • Fisierul de iesire: hpccout.txt

    • Cateva cuvinte despre configurare/instalare:

    – MPI (mpich)

    – BLAS (Atlas)

    – Compilatoare & optimizari

Click here to load reader

Reader Image
Embed Size (px)
Recommended