En haute performance, on utilise pas la vérification automatique de dépassement de taille de tableau, car le seul moyen de le faire correctement, c'est de vérifier les bornes pour chaque accès (et ça coûte énormément en temps CPU). C'est un des cas où l'utilisation de Fortran, C ou C++ a plus d'intérêt que Java par exemple:
C te force à tout penser, et puisque de toute manière on parle de calcul haute-perf, ça « va de soi » (et c'est bibi qui doit optimiser le tout ensuite...)
Fortran propose tout un tas de constructions de relativement haut niveau concernant le calcul scientifique. Par exemple, si A et B sont des tableaux de même taille, je peux faire A=A+B et le compilateur va automatiquement générer le bon type de code: SSE pour x86/x86_64, Altivec pour PowerPC, etc.
C++ n'est pas qu'un langage orienté objet. Comme le dirait S.Meyers (Efficient C++), il s'agit de plusieurs « langages » (ou dialectes) en un: C, C-avec-classes, templates, et STL. En HPC, on a tendance à utiliser C++ en tant que C + templates + surcharge des opérateurs (pour pouvoir reproduire ce que Fortran permet de faire nativement, et étendre le tout à de nouvelles structures données).
[^] # Re: Chacun son style
Posté par lasher . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 3.
En haute performance, on utilise pas la vérification automatique de dépassement de taille de tableau, car le seul moyen de le faire correctement, c'est de vérifier les bornes pour chaque accès (et ça coûte énormément en temps CPU). C'est un des cas où l'utilisation de Fortran, C ou C++ a plus d'intérêt que Java par exemple: