Ce n'est pas ce que la boucle vectorisation pour moi. Pour moi, la phrase signifie que le compilateur va générer du code qui peut tirer parti de toutes les capacités de calcul vectoriel du matériel. Sur simple Intel Xeon cela pourrait vouloir dire générer des instructions SSE4 pour manipuler simultanément quelques éléments de tableau adjacents, sur un Cray il peut y avoir beaucoup plus disponible en termes d'exécution simultanée de la même opération sur les registres vectoriels.
Comment pensez-vous que toutes les expressions sont RHS «calculées au début? Je ne suis pas sûr de ce que vous voulez dire par là. Pourriez-vous poster du code pour expliquer? Si vous voulez dire que le nombre de déplacements dans la boucle est calculé à l'entrée de la première itération, alors c'est correct. C'est une fonctionnalité très utile quand il s'agit d'optimiser le code et pas la plupart des programmes Fortran auraient intérêt à éviter.
Si vous écrivez des boucles DO en Fortran mettre à jour la variable d'itération est interdite par la norme, et a toujours été si je me souviens bien. Votre compilateur pourrait vous laisser partir mais je ne ferais pas confiance à un programme Fortran dans lequel cela est arrivé.
Je ne suis pas sûr que votre commentaire deux questions connexes est vous aider à obtenir une réponse claire à votre question sous-jacente. Cela me déroute! –
Mes excuses. J'ai pensé ouvrir la question à un cas général et un public général pourrait être une bonne chose et que garder les détails spécifiques à FORTRAN dans l'autre thread pour FORTRANnies pourrait aussi être bon. Cependant, je vais faire une référence croisée à ce fil d'en bas. –
Parlez-vous du déroulement de la boucle? – ja72