1 / 18

Realizarea Panoramelor

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

hada
Download Presentation

Realizarea Panoramelor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Realizarea Panoramelor George Pasatoiu Zafiu Andrei 343C1

  2. Cuprins • Informatii generale panorame • Notiuni teoretice • Algoritmi folositi • Exemple • Concluzii • Intrebari

  3. 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 aleEdinburghului.

  4. 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

  5. Notiuni teoretice 2 • Pasi de urmat : • Inlaturarea eventualelor aberatii geometrice • Identificarea modului in care fotografiile se potrivesc cel mai bine • Alipirea propriu-zisa a imaginilor

  6. Complexitate 2 CalculCoefLatice AlocareMemLatice “FOR” principal Pas 1 Pas 2 ……………. Pas N_LOOPS Calcule Calcule ……………. Calcule

  7. Paralelizare OPENMP1 • Rezultate Obtinute: • Abordare: • S-au paralelizatsectunile de alocarememorie date initiale • S-au folositoperatiipebiti in structurile de decizie

  8. Paralelizare 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; }

  9. Paralelizare PTHREADS1 • Rezultate Obtinute: • Abordare: • S-a ales o variantasimpla de paralelizare (nu a fostnevoie de sincronizari) • S-au creatthreadurisi s-a alocatfiecaruia un numaregal de iteratii din totalul de N_LOOPS

  10. 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]); }

  11. Performante1 • S-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

  12. Performante2 • Grafic Latice 5x5

  13. Performante3 • Grafic Latice 6x5

  14. Observatii • Rezultatele 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));

  15. Concluzii • Metoda 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)

  16. BIBLIOGRAFIE • http://ku1k.sourceforge.net/index.html • http://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)

  17. Intrebari

  18. Multumim • Dimitris Skipis Orestis Vantzos

More Related