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.
Grille informatiqueUne grille informatique (en anglais, grid) est une infrastructure virtuelle constituée d'un ensemble de ressources informatiques potentiellement partagées, distribuées, hétérogènes, délocalisées et autonomes. Une grille est en effet une infrastructure, c'est-à-dire des équipements techniques d'ordres matériel et logiciel. Cette infrastructure est qualifiée de virtuelle car les relations entre les entités qui la composent n'existent pas sur le plan matériel mais d'un point de vue logique.
Programmation orientée objetLa programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
Task parallelismTask parallelism (also known as function parallelism and control parallelism) is a form of parallelization of computer code across multiple processors in parallel computing environments. Task parallelism focuses on distributing tasks—concurrently performed by processes or threads—across different processors. In contrast to data parallelism which involves running the same task on different components of data, task parallelism is distinguished by running many different tasks at the same time on the same data.
Paradigme (programmation)vignette|Schéma simple à 3 blocs, avec des connexions étiquetées Le paradigme de programmation est la façon (parmi d'autres) d'approcher la programmation informatique et de formuler les solutions aux problèmes et leur formalisation dans un langage de programmation approprié. Ce n'est pas de la méthodologie contenant une méthode ; cette dernière organise le traitement des problèmes reconnus dans l'écosystème concerné pour aboutir à la solution conceptuelle et programme exécutable.
Méthode d'analyse et de conception d'applications orientées objetLa méthode d'analyse et de conception d'applications orientées objet (dite MACAO) est fondée sur une démarche participative par prototypage incrémental (processus itératif) permettant aux utilisateurs d'intervenir très tôt dans le processus de développement du logiciel. MACAO utilise la notation UML afin de définir la structure du logiciel en termes de classes et de composants ainsi que pour modéliser sa dynamique à l'aide de diagrammes d'interactions ou d'états/transitions.
Decomposition (computer science)Decomposition in computer science, also known as factoring, is breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain. There are different types of decomposition defined in computer sciences: In structured programming, algorithmic decomposition breaks a process down into well-defined steps. Structured analysis breaks down a software system from the system context level to system functions and data entities as described by Tom DeMarco.Tom DeMarco (1978).
Langage de programmation de bas niveauvignette|Language de programmation Un langage de programmation de bas niveau ne fournit que peu d'abstraction par rapport au jeu d'instructions du processeur de la machine. Les langages de bas niveau sont à opposer aux langages de haut niveau, qui permettent de créer un programme sans tenir compte des caractéristiques particulières (registres, etc) de l'ordinateur censé exécuter le programme. Le langage machine et le langage d'assemblage sont les archétypes de langages de bas niveau, puisqu'ils permettent de manipuler explicitement des registres, des adresses mémoires, des instructions machines.
Superordinateurvignette|redresse=1.2|Le supercalculateur IBM Blue Gene/P de l'Argonne National Laboratory fonctionne avec utilisant un système de refroidissement standard par air, groupé dans et interconnectés par un réseau de fibre optique à haute vitesse (2007). vignette|redresse=1.2|Le superordinateur Columbia du centre de recherche Ames Research Center de la NASA, composé de Intel Itanium 2, regroupés en de , et exécutant un système d'exploitation Linux (2006).
Reconfigurable computingReconfigurable computing is a computer architecture combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like field-programmable gate arrays (FPGAs). The principal difference when compared to using ordinary microprocessors is the ability to make substantial changes to the datapath itself in addition to the control flow. On the other hand, the main difference from custom hardware, i.e.
Décomposition QREn algèbre linéaire, la décomposition QR (appelée aussi, factorisation QR ou décomposition QU) d'une matrice A est une décomposition de la forme où Q est une matrice orthogonale (QQ=I), et R une matrice triangulaire supérieure. Ce type de décomposition est souvent utilisé pour le calcul de solutions de systèmes linéaires non carrés, notamment pour déterminer la pseudo-inverse d'une matrice. En effet, les systèmes linéaires AX = Y peuvent alors s'écrire : QRX = Y ou RX = QY.
Langage de programmation de haut niveauEn programmation informatique, un langage de programmation à haut niveau d'abstraction généralement appelé langage de haut niveau est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l'anglais) et des symboles mathématiques familiers. Un langage de haut niveau fait abstraction des caractéristiques techniques du matériel utilisé pour exécuter le programme, tels que les registres et les drapeaux du processeur.
Problème de satisfaction de contraintesLes problèmes de satisfaction de contraintes ou CSP (Constraint Satisfaction Problem) sont des problèmes mathématiques où l'on cherche des états ou des objets satisfaisant un certain nombre de contraintes ou de critères. Les CSP font l'objet de recherches intenses à la fois en intelligence artificielle et en recherche opérationnelle. De nombreux CSP nécessitent la combinaison d'heuristiques et de méthodes d'optimisation combinatoire pour être résolus en un temps raisonnable.
Pays en développementDans la typologie la plus courante, les pays en développement ou pays du Sud sont des pays moins développés économiquement que les pays développés (parfois appelés pays du Nord). L'expression « pays en développement » remplace des dénominations antérieures, jugées inadéquates, obsolètes ou incorrectes : les pays du tiers monde, les pays sous-développés. Elle s'est substituée à « pays en voie de développement ».
Programmation par contraintesLa programmation par contraintes (PPC, ou CP pour constraint programming en anglais) est un paradigme de programmation apparu dans les années 1970 et 1980 permettant de résoudre des problèmes combinatoires de grande taille tels que les problèmes de planification et d'ordonnancement. En programmation par contraintes, on sépare la partie modélisation à l'aide de problèmes de satisfaction de contraintes (ou CSP pour Constraint Satisfaction Problem), de la partie résolution dont la particularité réside dans l'utilisation active des contraintes du problème pour réduire la taille de l'espace des solutions à parcourir (on parle de propagation de contraintes).
Parallel programming modelIn computing, a parallel programming model is an abstraction of parallel computer architecture, with which it is convenient to express algorithms and their composition in programs. The value of a programming model can be judged on its generality: how well a range of different problems can be expressed for a variety of different architectures, and its performance: how efficiently the compiled programs can execute. The implementation of a parallel programming model can take the form of a library invoked from a sequential language, as an extension to an existing language, or as an entirely new language.
Décomposition LUEn algèbre linéaire, la décomposition LU est une méthode de décomposition d'une matrice comme produit d'une matrice triangulaire inférieure (comme lower, inférieure en anglais) par une matrice triangulaire supérieure (comme upper, supérieure). Cette décomposition est utilisée en analyse numérique pour résoudre des systèmes d'équations linéaires. Soit une matrice carrée. On dit que admet une décomposition LU s'il existe une matrice triangulaire inférieure formée de 1 sur la diagonale, notée , et une matrice triangulaire supérieure, notée , qui vérifient l'égalité Il n'est pas toujours vrai qu'une matrice admette une décomposition LU.
Abstraction (informatique)En informatique, le concept d'abstraction identifie et regroupe des caractéristiques et traitements communs applicables à des entités ou concepts variés ; une représentation abstraite commune de tels objets permet d'en simplifier et d'en unifier la manipulation. thumb|upright=1.4|Différentes couches de logiciel, partant d'en bas, le matériel est programmé en langage binaire, via un firmware, qui permet une abstraction pour le noyau, puis lui même pour le système d'exploitation, qui a son tour permet une abstraction pour les applications.
Programmation purement fonctionnelleEn informatique, la programmation purement fonctionnelle est un paradigme de programmation qui considère toutes les opérations comme l'évaluation de fonctions mathématiques. L'état et les objets immuables sont généralement modélisés à l'aide d'une logique temporelle, en tant que variables explicites représentant l'état du programme à chaque étape de son exécution : l'état d'une variable est transmis en tant que paramètre d'entrée d'une fonction de transformation d'état, qui renvoie l'état mis à jour en tant que partie de sa valeur de retour.
Object modelIn computing, object model has two related but distinct meanings: The properties of objects in general in a specific computer programming language, technology, notation or methodology that uses them. Examples are the object models of Java, the Component Object Model (COM), or Object-Modeling Technique (OMT). Such object models are usually defined using concepts such as class, generic function, message, inheritance, polymorphism, and encapsulation.