Vectorisation (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

La vectorisation (dans le cadre du calcul parallèle), est un cas particulier de la parallélisation, dans lequel des logiciels qui effectuent par défaut une seule opération à la fois sur un seul thread sont modifiés pour effectuer plusieurs opérations simultanément.

La vectorisation est le processus de conversion d'un programme informatique à partir d'une implémentation scalaire, qui traite une seule paire d'opérandes à la fois, à une implémentation vectorielle qui traite une opération sur plusieurs paires d'opérandes à la fois. Le terme vient de la convention de mettre les opérandes dans des vecteurs ou des matrices.

Le calcul vectoriel est une caractéristique majeure concernant à la fois les ordinateurs classiques et les superordinateurs modernes.

La vectorisation automatique est un sujet de recherche majeur en informatique ; cela consiste à rechercher des méthodes qui permettent à un compilateur de convertir (sans assistance humaine) des programmes scalaires en programmes vectorisés.

Contexte[modifier | modifier le code]

Les premiers ordinateurs avaient généralement une unité logique qui exécutait séquentiellement une instruction sur une paire d'opérandes à la fois. Les programmes informatiques et les langages de programmation ont donc été conçus pour exécuter des instructions de façon séquentielle. Les ordinateurs modernes peuvent faire beaucoup de choses à la fois. Un grand nombre de compilateurs optimisants réalisent une vectorisation automatique du code : c'est une fonctionnalité du compilateur qui permet à certaines parties des programmes séquentiels d'être transformés en programmes parallèles équivalents afin de produire du code qui sera bien utilisé par un processeur vectoriel.

Garanties[modifier | modifier le code]

Dépendances de données[modifier | modifier le code]

Précision des données[modifier | modifier le code]

Théorie[modifier | modifier le code]

Construire le graphe de dépendance[modifier | modifier le code]

Clustering[modifier | modifier le code]

Détection des idiomes[modifier | modifier le code]

Cadre général[modifier | modifier le code]

Runtime vs compilation[modifier | modifier le code]

Techniques[modifier | modifier le code]

Vectorisation automatique au niveau boucle[modifier | modifier le code]

Vectorisation automatique au niveau bloc de base[modifier | modifier le code]

En présence de flux de contrôle[modifier | modifier le code]

Réduction du surcoût de la vectorisation en présence de flux de contrôle[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

Erreur de référence : La balise <ref> définie dans <references> a un groupe attribué «  » qui ne figure pas dans le texte précédent.