Professional Documents
Culture Documents
Laborator nr. 5
Algoritmi si Limbaje pentru Calcul Paralel 2008 2. Calculul prefixelor (Scan) Realizai o implementare a calculului prefixelor folosind urmtorii algoritmi: Operatia admite element simetric
Laborator nr. 5
proc prefix_comp(A,B,) begin for k m -1 down to 0 do for each j : 2k j 2k +1 -1 par do A[j] A[2 j] A[2 j +1]; B[1]A[1]; for k 1 to m do for each j : 2k j 2k +1 -1 par do if bit0(j) = 1 then B [ j ] B [ j 1 / 2 ] else end; Rezultatul calculelor va fi memorarea valorilor A[n] A[n+j], cu j=0, ,n-1 n locaiile B[n+j] ale tabloului B[1..2n-1].
j B [ j ] B [ ] A [ j 1 ] ; 2
Laborator nr. 5
Operatia nu admite element simetric proc calcul_prefixe_gen(A,B, ) begin for k = m-1 down to 0 do for all j:2k j 2k+1 -1 par do A[j]=A[2j]A[2j+1]; for k = 0 to m do for all j:2k j 2k+1 -1 par do if j = 2k then B[j]=A[j] else if bit0(j) = 1 then B[j]=B[[(j-1)/2]] else B[j]=B[[(j-2)/2]] A[j]; end