next up previous contents
Next: Summation in Zwischenspeicher Up: Speicherorganisation und Programmierung Previous: Hierarchische Speicherorganisation

Branching

Vorsicht bei der Verwendung von if's (Branching). Möglicherweise wird in if-- else auf sehr verschiedene Bereiche im Speicher zugegriffen, so daß ein Cache--Miss auftritt. Branching verzögert eventuell die Programmausführung mehr als nötig. Oft ist die Progammierung ohne if möglich:

falsch:

                                  
      DO 10 i=1,l                  
        DO 20 j=1,l              
          IF(j.eq.l)THEN           
            SUB1                 
          ELSE                     
            SUB2                   
          END IF                   
20      CONTINUE        
           
10    CONTINUE

richtig:

                            
      DO 10 i=1,l     
        DO 20 j=1,(l-1)
          SUB2        
20      CONTINUE      
        j=l         
        SUB1          
10    CONTINUE

Bei Vektorrechnern hängt die Performance bei der Verwendung von ifs von Hersteller, Modell und Compilerversion ab. Unbedingt die Manuals konsultieren.



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