- Am combinat functiile
rescale_image
,sample_grid
simarch
intr-o functiefunc
, de tip void*, care este apelata pe fiecare thread. - Argumentele necesare functiei sunt transmise printr-un element al vectorului de tip
arg_func_wrapper
, care contine id-ul threadului curent si un pointer catreargs
(de tiparg_func
).args
contine toate argumentele necesare functiilor initiale, bariera si numarul de threaduri.
- Pentru fiecare
for
au fost impartite calculele la numarul de threaduri, prin calcularea unuistart
siend
unic fiecarui thread. - Pentru instructiunile ce trebuie repetate o singura data (alocarile si eliberarile de memorie), am folosit threadul cu id-ul 0, urmate de o bariera.
- Am folosit
bariera
unde era necesara terminarea operatiilor anterioare pentru a continua.
Important
in_6.ppm
si in_7.ppm
au dimensiuni prea mari. Se gasesc in arhiva!