Perforacja pętelkowa

Perforacja pętli jest przybliżoną techniką obliczeniową , która pozwala regularnie pomijać niektóre iteracje pętli.

Opiera się na jednym parametrze : szybkości perforacji . Szybkość perforacji można interpretować jako liczbę iteracji do pominięcia za każdym razem lub liczbę iteracji do wykonania przed pominięciem jednej.

Warianty perforacji pętli obejmują te, które pomijają iteracje deterministycznie w regularnych odstępach czasu, te, które pomijają iteracje na początku lub na końcu pętli, oraz te, które pomijają losową próbkę iteracji. Kompilator może wybrać wariant perforacji w czasie kompilacji lub uwzględnić oprzyrządowanie, które umożliwia systemowi wykonawczemu adaptacyjne dostosowanie strategii perforacji i szybkości perforacji, aby spełnić cel dokładności od końca do końca.

Techniki perforacji pętli zostały po raz pierwszy opracowane przez starszych naukowców z MIT, Martina C. Rinarda i Steliosa Sidiroglou.

Przykłady kodu

Poniższe przykłady przedstawiają wynik perforacji pętli zastosowanej w tym kodzie źródłowym podobnym do C

    0     
    
 for  (  int  i  =  ;  i  <  N  ;  i  ++  )  {  // rób rzeczy  } 

Pomiń n iteracji za każdym razem

    0     
    
        
 for  (  int  i  =  ;  i  <  N  ;  i  ++  )  {  // rób rzeczy  i  =  i  +  pomiń_czynnik  ;  } 

Pomiń jedną iterację po n

   0
    0     
        
          0
      
        
         
    
 int  liczba  =  ;  for  (  int  i  =  ;  ja  <  N  ;  i  ++  )  {  if  (  liczba  ==  współczynnik_pominięcia  )  {  liczba  =  ;  }  else  {  // czy rzeczy  się liczą  ++  ;  }  } 

Zobacz też