next up previous contents
Next: Algorithmen und Big--O Up: Speicherorganisation und Programmierung Previous: Branching

Summation in Zwischenspeicher

Beispiel: (Matrix-Vektor-Produkt)

Schlecht für RISC,PC:

      DO 10 i=1,l
        c(i)=0.0
        DO 20 j+1,m
          c(i)=c(i)+a(j,i)*b(j)
20      CONTINUE
10    CONTINUE

besser:

      DO 10 i=1,l
        d=0.0
        DO 20 j=1,m
          d=d+a(j,i)*b(j)
20      CONTINUE
        c(i)=d
10    CONTINUE

Durch die Verwendung eines indexlosen Zwischenspeichers spart man sich zwei von 5 Indexberechnungen, manchmal werden bei hoher Optimierungsstufe diese Ersetzungen auch automatisch ausgeführt. Für manche Vektorrechner ist aus nicht--trivialen Gründen eventuell das linke Modell günstiger. Vor Benutzung von Vektorrechnern Leute fragen, die sich auskennen.



Web Master
Tue Mar 12 15:25:06 MET 1996