Auto-vectorisationL'auto-vectorisation est une technique de compilation de langage de programmation, permettant d'adapter automatiquement des boucles de fonctions traitant des vecteurs, ou, plus généralement, des matrices, à un processeur vectoriel ou bien un SIMD. On appelle plus généralement, le fait d'adapter des traitements à des processeurs vectoriels, de façon manuelle ou automatique, une vectorisation. Le compilateur Gnu GCC utilise des techniques d'auto-vectorisation basées en 2011 sur le framework tree-ssa pour la majorité des SIMD (3DNow!, SSE (et SSE2, SSE3), ARM NEON et l'équivalent d'ARM pour l'embarqué, MVE.
Espace de suites ℓpEn mathématiques, l'espace est un exemple d'espace vectoriel, constitué de suites à valeurs réelles ou complexes et qui possède, pour 1 ≤ p ≤ ∞, une structure d'espace de Banach. Considérons l'espace vectoriel réel R, c'est-à-dire l'espace des n-uplets de nombres réels. La norme euclidienne d'un vecteur est donnée par : Mais pour tout nombre réel p ≥ 1, on peut définir une autre norme sur R, appelée la p-norme, en posant : pour tout vecteur . Pour tout p ≥ 1, R muni de la p-norme est donc un espace vectoriel normé.
Graphe orienté acycliqueEn théorie des graphes, un graphe orienté acyclique (en anglais directed acyclic graph ou DAG), est un graphe orienté qui ne possède pas de circuit. Un tel graphe peut être vu comme une hiérarchie. Un graphe orienté acyclique est un graphe orienté qui ne possède pas de circuit. On peut toujours trouver un sous-graphe couvrant d’un graphe orienté acyclique qui soit un arbre (resp. une forêt). Dans un graphe orienté acyclique, la relation d'accessibilité R(u, v) définie par « il existe un chemin de u à v » est une relation d'ordre partielle.
Chimie numériqueLa chimie numérique ou chimie informatique, parfois aussi chimie computationnelle, est une branche de la chimie et de la physico-chimie qui utilise les lois de la chimie théorique exploitées dans des programmes informatiques spécifiques afin de calculer structures et propriétés d'objets chimiques tels que les molécules, les solides, les agrégats atomiques (ou clusters), les surfaces, etc., en appliquant autant que possible ces programmes à des problèmes chimiques réels.
Matériel librevignette|Zynthian, un projet de synthétiseur musical libre Le matériel libre, matériel ouvert ou matériel open source désigne, par analogie avec le logiciel libre et le logiciel open source, les technologies des matériels et produits physiques développés selon les principes des ressources libres de droits ou sous licence libre. . Chris Anderson, rédacteur en chef de Wired et auteur de la longue traîne, affirme que et évoque la voiture libre Rally Fighter, une des premières voitures de course open source (ses spécifications sont « libres »), développée de façon communautaire, par production participative.
Computational complexityIn computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) and memory storage requirements. The complexity of a problem is the complexity of the best algorithms that allow solving the problem. The study of the complexity of explicitly given algorithms is called analysis of algorithms, while the study of the complexity of problems is called computational complexity theory.
Parallélisme (informatique)vignette|upright=1|Un des éléments de Blue Gene L cabinet, un des supercalculateurs massivement parallèles les plus rapides des années 2000. En informatique, le parallélisme consiste à mettre en œuvre des architectures d'électronique numérique permettant de traiter des informations de manière simultanée, ainsi que les algorithmes spécialisés pour celles-ci. Ces techniques ont pour but de réaliser le plus grand nombre d'opérations en un temps le plus petit possible.
Sous-programmeEn informatique, un sous-programme est un sous-ensemble du programme dans sa hiérarchie fonctionnelle. Un sous-programme doit pouvoir mémoriser l'adresse du code appelant pour permettre, à l'aide d'une instruction spécifique, de charger le pointeur de programme avec cette adresse de retour. Cela correspond bien souvent à une routine. Cependant, la notion de sous-programme est un peu plus générale, car il ne possède pas nécessairement son propre espace de noms. C'est le cas par exemple des sous-programmes appelés par l'instruction en BASIC.
Ordinateur à programme enregistréUn ordinateur à programme enregistré (ou calculateur à programme enregistré; en anglais stored-program computer) est un ordinateur qui enregistre les instructions des programmes qu'il exécute dans sa mémoire vive. La définition précédente est souvent étendue pour exiger que le traitement des instructions et des données en mémoire doive être interchangeable et uniforme.
FV4034 Challenger 2Le FV4034 Challenger 2 est un char de combat britannique construit par Vickers Defence Systems (maintenant BAE Systems) et qui est en service depuis 1998 dans les armées du Royaume-Uni et d'Oman. Conçu pour remplacer le Chieftain, le Challenger 2 reprend une version modifiée du châssis du Challenger 1, alors en service, mais équipée d'une nouvelle tourelle. Cent-vingt-sept chars furent initialement commandés en juin 1991 mais, à la suite de la restructuration des régiments blindés de la British Army, il fut décidé d'en commander deux-cent cinquante-neuf autres en juillet 1994 pour remplacer également le Challenger 1.
Optimisation de boucleIn compiler theory, loop optimization is the process of increasing execution speed and reducing the overheads associated with loops. It plays an important role in improving cache performance and making effective use of parallel processing capabilities. Most execution time of a scientific program is spent on loops; as such, many compiler optimization techniques have been developed to make them faster. Since instructions inside loops can be executed repeatedly, it is frequently not possible to give a bound on the number of instruction executions that will be impacted by a loop optimization.
Data-flow analysisData-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. A program's control-flow graph (CFG) is used to determine those parts of a program to which a particular value assigned to a variable might propagate. The information gathered is often used by compilers when optimizing a program. A canonical example of a data-flow analysis is reaching definitions.