Optimizarea Buclelor Program

Referat
7/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 3 în total
Cuvinte : 1035
Mărime: 6.92KB (arhivat)
Publicat de: Filomela Kiss
Puncte necesare: 5
Profesor îndrumător / Prezentat Profesorului: Pop Ovidiu

Extras din referat

Când optimizăm performanţele programului cel mai bun beneficiu va veni de la optimizarea regiunilor din program care solicită cel mai mult timp - regiunile repetitive din program. Acestea corespund sau iteraţiilor buclelor ori procedurilor recursive. Aici ne concentrăm pe un pachet de şiretlicuri pe care le vom utiliza pentru optimizarea buclei. Pentru cea mai mare parte ne vom concentra pe bucle numărabile, unde o numărare corectă poate fi determinată fără execuţia buclei, opuse buclei while.

Multe prezentări ale metodelor restructurării buclei se bazează pe legalitate şi beneficiu al performanţelor transformării ori optimizării. Beneficiile transformării nu pot fi determinate până când arhitectura computerului ţintă(computerul pentru care se va optimiza) este cunoscută; vom discuta beneficiile transformărilor pentru felurite arhitecturi. De asemenea, legalitatea transformării depinde de semantica maşinii şi a limbajului ţintă. Multe maşini au în componenţă unul sau mai multe procesoare secvenţiale conectate într-un anumit mod; din acest motiv, ne vom concentra pe compilarea pentru colecţia de maşini secvenţiale.

Regula noastră generală pentru o transformare corectă este simplă. Dacă vom avea succes în capturarea totală a relaţiilor de dependenţă esenţiale din program în graf-urle dependente de datele şi dependenţă a controlului programului, atunci vom putea aplica orice transformare atât timp cât programul transformat păstrează fiecare relaţie de dependenţă. Pe un uniprocesor secvenţial, o relaţie de dependenţă este păstrată prin executarea sursei de dependenţă înainte de dependenţa ţintă. Pe un multiprocesor, există mai multe căi pentru a păstra relaţia de dependenţă, atât prin sheduling ori una din formele variate ale sincronizării. În timp ce programul original (prin definiţie) satisface toate relaţiile dependente, asta nu înseamnă că programul poate fi întotdeauna compilat fără transformare. Ne aducem aminte că chiar şi o sursă secvenţială de limbaj (ca FORTRAN 90) poate include construcţii paralele (ca atribuirea de tabluouri, sau intrucţiunea forall). Executarea acestor construcţii pe o maţină secvenţială necesită analiză şi poate transformare pentru a satisface toate relaţiile de dependentă .

A)Transformari simple

1. Reordonarea instrucţiuniilor

Prima transformare prezentată aici este reordonarea instrucţiuniilor. Reordonarea poate fi făcută la orice granulaţie, operaţie maşină, intrucţiune, secvenţă de instrucţiuni, ş.a.m.d. Aici considerăm reordonarea la nivelul instrucţiuniilor şi a granulaţiei buclei cu un graf de control a fluxului aciclic(CFG=Control Flow Graph); un nod în CFG sau în graful de dependenţă este sau o simpla intrucţiune sau o buclă întreagă. Pentru că CFG este aciclic, graful de dependenţa este de asemenea aciclic. Reordonarea poate fi aplicată recursiv înăuntrul corpului unei buclei interioare, tratând fiecare instrucţiune simplă sau buclă interioară ca şi un nod. Reamintim că o transformare este legală atât timp cât relaţiile de dependentă sunt păstrate, orice fel de topologie a graf-ului de dependenţe este o ordonare corectă de instrucţiuni.

Preview document

Optimizarea Buclelor Program - Pagina 1
Optimizarea Buclelor Program - Pagina 2
Optimizarea Buclelor Program - Pagina 3

Conținut arhivă zip

  • Optimizarea Buclelor Program.doc

Te-ar putea interesa și

Dispozitiv sudare elicoidală a conductelor magistrale

1.1 Generalităţi Conductele magistrale sunt elemente funcţionând sub presiune ale sistemelor pentru transportul fluidelor de diverse naturi. Gaze,...

Securitatea Informațiilor la Dispozitive Mobile

INTRODUCERE În ziua de azi, a fi informat reprezintă o caracteristică a celor care ies învingători în orice domeniu. Informaţiile sunt foarte...

Procesarea Imaginilor în Sisteme Embedded

CAPITOLUL 1 - INTRODUCERE Proiectul de faţă îşi propune să investigheze posibilitatea de implementare a unor operaţii de prelucrare a imaginilor...

Microprocesorul Intel Pentium II

I. Introducere în Pentium II În 1968, Robert Noyce, inventatorul circuitului integrat de siliciu, Gordon Moore, faimos datorită legii lui Moore şi...

Sisteme de acționare electrică

1. Generalităţi Problema alegerii motorului electric apare fie în cadrul proiectului unui obiectiv nou, fie în cadrul modernizării unui obiectiv...

Estimarea fluxului rotoric, vitezei și rezistenței rotorice în sistemele de acționare elctrică inteligente, performante energetic, cu motoare de inducție, pentru automobile electrice

1. INTRODUCERE Tema propusa are ca obiectiv principal aplicarea actionarilor electrice cu motoare de inductie fara senzori mecanici la...

Caiet de Practică în Tricotaje

CAPTOLUL 1 PROCESE DE FABRICAŢIE IN INDUSTRIA DE TRICOTAJE 1.1 Elemente generale Structurile tricotate au cunoscut o dezvoltare deosebită și...

Înregistrare și Redare Sunet cu Stocare pe Card SD cu Atmega 16

1. INTRODUCERE Documentul de faţă descrie pe scurt ideea de a realiza un reportofon digital. Pe langă faptul că un astfel de aparat este destul de...

Ai nevoie de altceva?