18
Realizarea Panoramelor Realizarea Panoramelor George Pasatoiu Zafiu Andrei 343C1

Realizarea Panoramelor

  • Upload
    hada

  • View
    31

  • Download
    0

Embed Size (px)

DESCRIPTION

Realizarea Panoramelor. George Pasatoiu Zafiu Andrei 343C1. Cuprins. Informatii generale panorame Notiuni teoretice Algoritmi folositi Exemple Concluzii Intrebari. Informatii generale panorame. Panorama: - PowerPoint PPT Presentation

Citation preview

Page 1: Realizarea Panoramelor

Realizarea PanoramelorRealizarea Panoramelor

George Pasatoiu

Zafiu Andrei

343C1

Page 2: Realizarea Panoramelor

CuprinsCuprinsInformatii generale panorameNotiuni teoreticeAlgoritmi folositiExempleConcluziiIntrebari

Page 3: Realizarea Panoramelor

Informatii generale panorame Panorama:

Imagine de dimensiuni mari , de obicei o priveliste din natura cu orizont larg , vazuta de departe

Termen format din 2 cuvinte grecesti (πᾶν "all" + ὅραμα "sight" )

Notiunea a fost folosita prima oara de pictorul Robert Barker , pentru a-si descrie describe picturile panoramice ale Edinburghului.

Page 4: Realizarea Panoramelor

Notiuni teoretice 1

Imaginile panoramice se pot obtine :

folosind lentile de distanta focala foarte mica,eventual in conjunctie cu oglinzi

alta abordare - realizarea unui set de poze si alipirea lor ulterioara in vederea realizarii unei imagini mari

Page 5: Realizarea Panoramelor

Notiuni teoretice 2Pasi de urmat :

Inlaturarea eventualelor aberatii geometrice

Identificarea modului in care fotografiile se potrivesc cel mai bine

Alipirea propriu-zisa a imaginilor

Page 6: Realizarea Panoramelor

Complexitate 2Complexitate 2

Page 7: Realizarea Panoramelor

Paralelizare OPENMP1 Paralelizare OPENMP1 Rezultate Obtinute:

Abordare:• S-au paralelizat sectunile de alocare

memorie date initiale• S-au folosit operatii pe biti in

structurile de decizie

Page 8: Realizarea Panoramelor

Paralelizare OPENMP2Paralelizare OPENMP2#pragma omp parallel for shared (adjLoops,N_LOOPS,alr)

private(i,j)

for(i=0;i<N_LOOPS;i++)

{

alr = (int*)calloc(4, sizeof(int));

for(j=0;j<4;j++)

alr[j] = 0;

adjLoops[i] = alr;

}

#pragma omp parallel for shared(adjLoops,N_LOOPS) private(i)

for(i=0;i<N_LOOPS;i++)

{

adjLoops[I][0] = 1;

}

Page 9: Realizarea Panoramelor

Paralelizare PTHREADS1 Paralelizare PTHREADS1 Rezultate Obtinute:

Abordare:• S-a ales o varianta simpla de paralelizare (nu

a fost nevoie de sincronizari)• S-au creat threaduri si s-a alocat fiecaruia un

numar egal de iteratii din totalul de N_LOOPS

Page 10: Realizarea Panoramelor

Paralelizare PTHREADS2 Paralelizare PTHREADS2 void* algoritm(void *params) //functie executata de fiecare thread

{

struct parametri* p = (struct parametri*) params;

for(i=p->start;i<=p->stop;i++)

… calcule intensive…

}

for (i = 0; i < nrThreads; i++) //creare threaduri

{

param[i].start=i*N_LOOPS/nrThreads;

if (i!=nrThreads-1)

param[i].stop=(i+1)*N_LOOPS/nrThreads-1;

else param[i].stop=N_LOOPS-1;

pthread_create(&t[i], NULL, &algoritm, &param[i]);

}

Page 11: Realizarea Panoramelor

Performante1Performante1S-au obtinut rezultate mai bune fata de

codul initial (solutia MPI nu s-a dovedit viabila)

Din cele 2 tabele se observa faptul ca threadurile POSIX obtin rezultate semnificativ mai bune decat threadurile OPENMP

Prin metoda de paralelizare cu POSIX s-a obtinut o imbunatatire de aproximativ 10% fata de varianta paralela cu OPENMP

Page 12: Realizarea Panoramelor

Performante2Performante2 Grafic Latice 5x5

Page 13: Realizarea Panoramelor

Performante3Performante3 Grafic Latice 6x5

Page 14: Realizarea Panoramelor

ObservatiiObservatiiRezultatele indica faptul ca timpul obtinut depinde si

de compilatorul folosit (gcc e mai eficient decat SunCC)

Tentativele de a elimina/inlocui structurile de decizie din cadrul “for-ului” intensiv s-au dovedit a fi neviabile (inlocuirea cu o formula matematica consuma mai multe resurse)

Formula matematica substitut:p1m=p1m+(m-p1m)*(1/abs2(2*p1n+1))*(int)(1.5*p1n*p1n/

(p1n*p1n+0.1));

p2n=p2n+(n-p2n)*(int)(abs2(p1n+1)/(abs2(p1n+1)-0.001));

p2m=p2m+(m-p2m)*(int)(abs2(p1n+1)/(abs2(p1n+1)-0.001));

p1n=p1n+(n-p1n)*(1/abs2(2*p1n+1))*(int)(1.5*p1n*p1n/(p1n*p1n+0.1));

Page 15: Realizarea Panoramelor

ConcluziiConcluziiMetoda POSIX s-a dovedit a fi cea mai

eficienta deoarece exista o repartizare egala pentru fiecare thread (load balancing eficient)

Se mai pot incerca diverse variante de paralelizare cu OPENMP prin folosirea unor directive alternative (#pragma omp section, #pragma omp atomic)

Page 16: Realizarea Panoramelor

BIBLIOGRAFIEBIBLIOGRAFIEhttp://ku1k.sourceforge.net/index.htmlhttp://people.unt.edu/ov0006/http://numod.ins.uni-bonn.de/people/

vantzos/index.html Investigation of the Evolution and Breakup of

Electrically Charged Drops (S. I. Betel , M. A. Fontelos , U. Kindelán and O. Vantzos)

Page 17: Realizarea Panoramelor

IntrebariIntrebari

Page 18: Realizarea Panoramelor

MultumimMultumimDimitris Skipis Orestis

Vantzos