Slide 1

Documente similare
Slide 1

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Diapositive 1

Examenul de bacalaureat 2012

PowerPoint Presentation

PROGRAMA CONCURSULUI NAŢIONAL

Ecuatii si sisteme de ecuatii neliniare 1 Metoda lui Newton Algorithm 1 Metoda lui Newton pentru ecuaţia f(x) = 0. Date de intrare: - Funcţia f - Apro

Teoria Grafurilor şi Combinatorică recapitulare Principii de numărare Reţineţi că: P (n, r) este numărul de şiruri (sau r-permutări) de forma A 1,...,

4. Creşterea vitezei de execuţie a algoritmilor intensiv computaţio-nali cu ajutorul coprocesoarelor ataşate, bazate pe structuri logice reconfigurabi

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

OPERATII DE PRELUCRAREA IMAGINILOR 1

Microsoft Word - probleme_analiza_numerica_ses_ian09.rtf

Microsoft Word - D_ MT1_II_001.doc

CONCURSUL NAŢIONAL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI Etapa locală, 24 februarie 2017 PROFIL TEHNIC ŞI SERVICII, RESURSE NATURALE, PROTECŢIA MEDIU

Microsoft Word - TIC5

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

PPSD

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Examenul de bacalaureat 2012

Examenul de bacalaureat 2012

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

FIŞA DISCIPLINEI

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

E_d_Informatica_sp_MI_2015_bar_02_LRO

Laborator Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere b

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Grafuri neorinetate Aplicatii 1 Care este numărul maxim de componente conexe pe care le poate avea un graf neorientat cu 20 noduri şi 12 muchii? a. 6

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Kein Folientitel

Spatii vectoriale

Microsoft PowerPoint - Prezentarea_programelor_de_studii_de_licenta_2019

Microsoft Word - intro_msp430.doc

Şcoala ………

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode]

Grafuri - Concepte de baza. Tipuri de grafuri. Modalitati de reprezentare

Microsoft Word - 5_ _Eval_ ETC_master_ESI_AnI-II_completat.doc

METODE NUMERICE ÎN INGINERIE

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Microsoft Word - Capitolul_07

Microsoft Word - 11_Evaluare ETC_master_Master_ESI.doc

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

CRIPTOSISTEME SIMETRICE I

Microsoft Word - cap1p4.doc

2.1.Tipul tablou unidimensional

Cuprins

Microsoft Word - C05_Traductoare de deplasare de tip transformator

Calcul Numeric

Laborator 4 Modele sistemice liniare. Reprezentare numerică. Conversii. Conexiuni 4.1 Tema Formarea deprinderilor de utilizare a convenţiilor MATLAB d

E_d_Informatica_sp_SN_2014_bar_10_LRO

Microsoft Word - Algoritmi genetici.docx

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

Algebra si Geometri pentru Computer Science

PowerPoint-Präsentation

Noțiuni de bază ale criptografiei

Analiză statică Analiza fluxului de date 23 octombrie 2014

PowerPoint Presentation

kapenekas.doc

Subiectul 1

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

Microsoft Word - 2 Filtre neliniare.doc

1

Analiză de flux de date 29 octombrie 2012

PROCESOARE NUMERICE DE SEMNAL

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

FIŞA DISCIPLINEI ARHITECTURA SISTEMELOR DE CALCUL 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea POLITEHNICA din Bucureşti

CONCURSUL DE MATEMATICĂ APLICATĂ "ADOLF HAIMOVICI" ETAPA JUDEȚEANĂ 18 martie 2017 Filiera Tehnologică : profilul Tehnic Clasa a IX -a Problema 1. 2 Se

Controlerul LCD

gaussx.dvi

programa_olimpiada_matematica_IX-XII_

Lucrarea 10

CONCURSUL NAŢIONAL DE MATEMATICA PANAITOPOL EDIŢIA a X-a, TULCEA, 21 aprilie 2018 Clasa a VII - a 1. Se consideră numerele reale x, y şi z, cel puţin

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

PowerPoint Presentation

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

Sisteme de calcul în timp real

Probleme rezolvate de fizică traducere de Nicolae Coman după lucrarea

Discipline aferente competenţelor Facultate: Facultatea de Electronică şi Telecomunicaţii Universitate: UNIVERSITATEA POLITEHNICA DIN TIMIȘOARA Domeni

FIŞA DISCIPLINEI ANEXA nr. 3 la metodologie 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Politehnica din Bucureşti 1.2 F

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Sisteme cu FPGA şi Soft Processors

G.I.S. Curs 3

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Pachete de lecţii disponibile pentru platforma AeL

Examenul de bacalaureat 2012

Microsoft Word - Curs1.docx

Slide 1

Guardian2012_RO3

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

20 SUBIECTE DE EXAMEN - De fapt, în pofida acestor probleme, până la urmă tot vom logaritma, căci aceasta este tehnica naturală în context. Trebuie do

A TANTÁRGY ADATLAPJA

Examenul de bacalaureat 2012

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Slide 1

Microsoft Word - Cap09_AutoorganizareSiEmergentaInSistemeleAdaptiveComplexe_grile.doc

Tiberiu Trif Analiză matematică 2 Calcul diferențial și integral în R n

Elemente de aritmetica

SSC-Impartire

Transcriere:

Arhitectura Sistemelor de Calcul Curs 8 Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare cs.pub.ro curs.cs.pub.ro Structura SIMD Cuprins Probleme de Comunicatii intre Procesoarele unui Sistem SIMD Deplasarea Ciclica a Datelor intre Procesoare Intercalarea Perfecta Shuffle Conectarea Inversa Inverse Shuffle Permutari Elementare

Structura SIMD Probleme Arhitecturile SIMD adecvate prelucrarilor vectoriale. Cresterea vitezei masinii SIMD: Datele trebuiesc plasate in module distincte de memorie. Utilizarea eficienta a procesoarelor: Datele trebuiesc permutate pt a furniza operanzi pentru calcule Pt rezolvarea celor doua probleme: necesare RC P-P si P-M Sistem I/O FD P M UCmd FI FD P M Switch P-P P-M P n FD n M n Retele de Comutatie Retelele de comutatie (RC) P-P sunt implementate la nivelul procesoarelor Retelele de comutatie P-M pot fi implementate facil cu switch-uri Cross-Bar Pt. n procesoare sunt necesare n(n-)/ SP costul devine prohibitiv (k Procs Mrd Switches) Sunt necesare RC adecvate fiecarei aplicatii (masini dedicate); aceste RC ofera: Fiabilitate Costuri reduse Viteza mare de comutatie/transfer Facilitati de intretinere The Trade-off Reduced Parallelism!

Structura SIMD Cuprins Probleme de Comunicatii intre Procesoarele unui Sistem SIMD Deplasarea Ciclica a Datelor intre Procesoare Intercalarea Perfecta Shuffle Conectarea Inversa Inverse Shuffle Permutari Elementare Interconexiunea Circulara Deplasarea ciclica a datelor intre procesoare Conexiunile sunt permise numai cu vecinii Nu exista conexiuni directe intre i si j Sunt maxim [(i-j-)% n] noduri intermediare P n P P P i- P i P i Exemple de domenii de aplicatie: Adecvate rezolvarii ecuatiilor diferentiale de ordinul : x[i] = x[i-] x[i] x[i] Propagarea caldurii printr-o bara Aplicatii meteo prognoza vremii in diferite puncte ale globului se face in paralel cu aceleasi date

Interconexiunea Matriceala Asigura comunicarea cu patru procs vecine Daca dependenta este de felul: x[i,j] = x[i,j] x[i-,j] x[i,j] x[i,j-] x[i,j] de ex: evoluatia temperaturii in volumul unui material ILLIAC primul SIMD ( procs) 9% la fel si acum i,j- i,j i,j i-,j i,j Structura SIMD Cuprins Probleme de Comunicatii intre Procesoarele unui Sistem SIMD Deplasarea Ciclica a Datelor intre Procesoare Intercalarea Perfecta Shuffle Conectarea Inversa Inverse Shuffle Permutari Elementare 8

Intercalarea Perfecta Shuffle Este adecvata pentru: Transformata Fourier (FFT Fast Fourier Transformation) Algoritmi de sortare Transpuneri de matrice Asigura conectarea intre procesoarele unei structuri SIMD de n procesoare cu: n- comunicatii simultane dupa log n iteratii datele ajung pe procesorul sursa 9 P P n Switch log n times P P n Shuffle 8 Procesoare P P P P P P P P P P P P P P P P P P P P P t t

P P P P P P P P P P P P P P t RC Shuffle t RC F & G Shuffle 8 Procesoare F G F G F G F G Doua RC: Shuffle Adiacenta (pt F & G): F e pe Y i = pare G e pe Y i = impare log n iteratii for i = to log n shuffle[y] Y i = F[Y i,y i ] Y i = G[Y i,y i ] end i loop Utilizare: sortari, FFT, transpuneri, functii cu operatii recurente Pentru sortari: F calculeaza maximul celor doi operanzi G calculeaza minimul celor doi operanzi Pentru FFT: F produce suma ponderata G produce diferenta ponderata Ponderile sunt calculate dinamic la fiecare pas al iteratiei Pentru transpunerea matricelor: Organizarea directa a matricei F = Y i G = Y i Shuffle Aplicatii

Suma elementelor unui vector Daca vectorul e intr-o singura memorie secvential: sum = for i = to n- sum = a i end i loop O(n) Se poate reduce O(n) pe SIMD? Distribuim vectorul intre memorii Shuffle Aplicatii Iterative Probleme: Incarcarea neechilibrata a procs La fiecare pas trebuie schimbata RC in mod dinamic A A A A A A A A O(log n) SA i Shuffle Aplicatii Iterative (cont) Sunt necesare Comunicare liniara RC statica Reconfigurarea conexiunilor e mai simpla Dezavantaj: este in continuare necesara reconfigurarea la fiecare pas! Complexitate: O(log n) A A A A A A A A SA i Sume partiale

Structura SIMD Cuprins Probleme de Comunicatii intre Procesoarele unui Sistem SIMD Deplasarea Ciclica a Datelor intre Procesoare Intercalarea Perfecta Shuffle Conectarea Inversa Inverse Shuffle Permutari Elementare P P P P P P P P P P P P P P t t Inverse Shuffle Adecvat pentru operatii recurente, calculabile in log n pasi Suma elementelor unui vector: Y i = A i ( i n-) for j = to log n Y j = Y j Y j- invshuffle[y], MASK compute MASK end j loop Legatura identica pentru toate iteratiile: O legatura directa Un Inverse Shuffle 8

Inverse Shuffle Aplicatii Iterative Legatura (RC) identica pentru toate iteratiile: O legatura directa: Y j = Y j Y j- Un Inverse Shuffle Mastile se modifica si ele prin Inverse Shuffle la fiecare iteratie MASK = procesor inactiv MASK = procesor activ: (F & G = ) La anumite iteratii, unele procesoare pot fi inactivate de masti Notam j Y A( k) O(log n) ij k i A Y Inverse Shuffle RC MASK S IS MASK S IS MASK S IS Y Y Y Y 8 Y Y P A Y Y Y Y Y Y Y P A Y Y Y Y Y Y Y P A Y Y Y Y Y Y Y P A Y Y Y Y Y Y Y P A Y Y Y Y Y Y Y P A Y Y Y Y Y Y Y P A Y Y Y Y Y Y Y 9

Concluzii Structuri SIMD Probleme adecvate structurilor SIMD: Calculele trebuiesc descrise de iteratii de tip vector a.i. majoritatea timpului sa fie ocupat cu operatii cu caracter identic Operanzii (simultani) trebuiesc repartizati in module diferite de memorie Trebuiesc identificate conexiunile intre operanzi a.i. ele sa fie cat mai aproape de conexiunile fizice intre procesoare Clasa problemelor SIMD nu este universala doar probleme dedicate se preteaza! Algoritmii, sistemele de interconectare si structura datelor trebuiesc adaptate in consecinta 9 Structura SIMD Cuprins Probleme de Comunicatii intre Procesoarele unui Sistem SIMD Deplasarea Ciclica a Datelor intre Procesoare Intercalarea Perfecta Shuffle Conectarea Inversa Inverse Shuffle Permutari Elementare

Permutari Elementare Specifica conexiunea intre n resurse ca o functie bijectiva pe o multime ordonata Se pot realiza in mai multe feluri:. Permutarea de baza Base Line Permutation. Permutarea cu intercalare perfecta Shuffle Permutation. Permutarea cu negare de bit Negate Bit Permutation. Permutarea fluture Butterfly Permutation. Permutarea cu ordine inversa Bit Reversal Permutation. Permutarea cu incrementare modulo Increment Permutation Definirea acestor permutari de poate face pe baza reprezentarii binare a adreselor resurselor din multime (Flanders): ADR = (a n a n- a a ) Base Line Permutation Bitul cel mai nesemnificativ devine cel mai semnificativ: P_base (a n a n- a a ) = (a a n a n- a ) Permutarea de baza este intercalarea perfecta inversa! Pentru 8 resurse avem P_base (a a a ) = (a a a ) Variante posibile sunt Permutarea de baza k inferioara: Cei mai nesemnificativi k biti din adresa P_b_kinf (a n a k a k- a a ) = (a n a k a a k- a ) Asigura conexiunea in submultimi de resurse Permutarea de baza k superioara: Cei mai semnificativi k biti din adresa P_b_ksup (a n a n-k a n-k a ) = (a n-k a n a n-k a n-k a ) Asigura conexiunea intre submultimi de resurse TA: Variantele p_base pentru 8 resurse

Shuffle Permutation Bitul cel mai semnificativ devine cel mai nesemnificativ: P_shuffle (a n a n- a a ) = (a n- a a a n ) Pentru 8 resurse avem P_shuffle (a a a ) = (a a a ) Variante posibile sunt Permutarea shuffle k inferioara: Cei mai nesemnificativi k biti din adresa P_shuffle_kinf (a n a k a k- a a ) = (a n a k a a a k- ) Utilizare posibila: conexiunea memoriilor adresa de baza a unui modul adresa in cadrul acelui modul Permutarea shuffle k superioara: Cei mai semnificativi k biti din adresa P_shuffle_ksup (a n a n-k a n-k a ) = (a n- a n-k a n a n-k a ) Permutarea shuffle q # c, intre q c resurse (nu putere a lui ): P_shuffle_q#c (ADR) = q V ADR mod (q c -) pentru V ADR < q c- P_shuffle_q#c (ADR) = V ADR pentru V ADR = q c- V ADR =,,, etc, n- succesiv Negate Bit Permutation Bitul cel mai nesemnificativ este negat P_neg_bit (a n a n- a a ) = (a n a n- a a ): P_neg_bit (a a a ) = (a a a ) Varianta posibila este negarea bitului k: P_neg_bit_k (a n a n- a k- a a ) = (a n a n- a k- a a ) P_neg_bit (a a a ) = (a a a )

Butterfly Permutation Se interschimba bitul cel mai semnificativ cu cel mai nesemnificativ: P_butterfly (a n a a ) = (a a n- a a n ) P_butterfly (a a a ) = (a a a ) Butterfly este o permutare simetrica Variante posibile sunt Permutarea butterfly k inferioara: P_butterfly_kinf (a n a k a k- a a ) = (a n a k a a a k- ) Ofera posibilitatea de conectare intre resursele clasei Permutarea butterfly k superioara: P_butterfly_ksup (a n a n-k a n-k a a ) = (a n-k a n- a n a n-k a ) Ofera posibilitatea de conectare intre clase Bit Reversal Permutation Se interschimba complet ordinea bitilor: P_reversal (a n a a ) = (a a a n ) P_reversal (a a a ) = (a a a ) Cu aceasta permutare se pot obtine echivalente Variante posibile sunt Permutarea reversal k inferioara: P_reversal_kinf (a n a k a k- a a ) = (a n a k a a a k- ) Permutarea reversal k superioara: P_reversal_ksup (a n a n-k a n-k a a ) = (a n-k a n a n-k a )

Increment Permutation Se incrementeaza valorile modulo n : P_increment (ADR) = (V ADR ) mod ( n ) Aceasta este o conexiune inelara intre module alaturate din (V ADR ), poate fi orice constanta Variante posibile sunt Permutarea increment k inferioara: Realizeaza conexiuni in cadrul submultimii de resurse Permutarea increment k superioara: Realizeaza conexiuni intre submultimile de resurse