Parallélisme de donnéeLe parallélisme par distribution de donnée ou parallélisme de donnée (data parallelism en anglais) est un paradigme de la programmation parallèle. Autrement dit, c'est une manière particulière d'écrire des programmes pour des machines parallèles. Les algorithmes des programmes qui entrent dans cette catégorie cherchent à distribuer les données au sein des processus et à y opérer les mêmes opérations à l'instar des SIMD. Le paradigme opposé est celui du parallélisme de tâche. Catégorie:Programmation concurr
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.
Instruction-level parallelismInstruction-level parallelism (ILP) is the parallel or simultaneous execution of a sequence of instructions in a computer program. More specifically ILP refers to the average number of instructions run per step of this parallel execution. ILP must not be confused with concurrency. In ILP there is a single specific thread of execution of a process. On the other hand, concurrency involves the assignment of multiple threads to a CPU's core in a strict alternation, or in true parallelism if there are enough CPU cores, ideally one core for each runnable thread.
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.
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.
Granularity (parallel computing)In parallel computing, granularity (or grain size) of a task is a measure of the amount of work (or computation) which is performed by that task. Another definition of granularity takes into account the communication overhead between multiple processors or processing elements. It defines granularity as the ratio of computation time to communication time, wherein computation time is the time required to perform the computation of a task and communication time is the time required to exchange data between processors.
Produit matricielLe produit matriciel désigne la multiplication de matrices, initialement appelé la « composition des tableaux ». Il s'agit de la façon la plus fréquente de multiplier des matrices entre elles. En algèbre linéaire, une matrice A de dimensions m lignes et n colonnes (matrice m×n) représente une application linéaire ƒ d'un espace de dimension n vers un espace de dimension m. Une matrice colonne V de n lignes est une matrice n×1, et représente un vecteur v d'un espace vectoriel de dimension n. Le produit A×V représente ƒ(v).
Microprocesseur multi-cœurvignette|Un processeur quad-core AMD Opteron. vignette|L’Intel Core 2 Duo E6300 est un processeur double cœur. Un microprocesseur multi-cœur (multi-core en anglais) est un microprocesseur possédant plusieurs cœurs physiques fonctionnant simultanément. Il se distingue d'architectures plus anciennes (360/91) où un processeur unique commandait plusieurs circuits de calcul simultanés. Un cœur (en anglais, core) est un ensemble de circuits capables d’exécuter des programmes de façon autonome.
Matrix multiplication algorithmBecause matrix multiplication is such a central operation in many numerical algorithms, much work has been invested in making matrix multiplication algorithms efficient. Applications of matrix multiplication in computational problems are found in many fields including scientific computing and pattern recognition and in seemingly unrelated problems such as counting the paths through a graph. Many different algorithms have been designed for multiplying matrices on different types of hardware, including parallel and distributed systems, where the computational work is spread over multiple processors (perhaps over a network).
Matrice (mathématiques)thumb|upright=1.5 En mathématiques, les matrices sont des tableaux d'éléments (nombres, caractères) qui servent à interpréter en termes calculatoires, et donc opérationnels, les résultats théoriques de l'algèbre linéaire et même de l'algèbre bilinéaire. Toutes les disciplines étudiant des phénomènes linéaires utilisent les matrices. Quant aux phénomènes non linéaires, on en donne souvent des approximations linéaires, comme en optique géométrique avec les approximations de Gauss.
Matrice inversibleEn mathématiques et plus particulièrement en algèbre linéaire, une matrice inversible (ou régulière ou encore non singulière) est une matrice carrée A pour laquelle il existe une matrice B de même taille n avec laquelle les produits AB et BA sont égaux à la matrice identité. Dans ce cas la matrice B est unique, appelée matrice inverse de A et notée B = A. Cette définition correspond à celle d’élément inversible pour la multiplication dans l’anneau des matrices carrées associé.
Explicit parallelismIn computer programming, explicit parallelism is the representation of concurrent computations by means of primitives in the form of special-purpose directives or function calls. Most parallel primitives are related to process synchronization, communication or task partitioning. As they seldom contribute to actually carry out the intended computation of the program, their computational cost is often considered as parallelization overhead. The advantage of explicit parallel programming is the absolute programmer control over the parallel execution.
Matrice diagonaleEn algèbre linéaire, une matrice diagonale est une matrice carrée dont les coefficients en dehors de la diagonale principale sont nuls. Les coefficients de la diagonale peuvent être ou ne pas être nuls. Une matrice diagonale est une matrice qui correspond à la représentation d'un endomorphisme diagonalisable dans une base de vecteurs propres. La matrice d'un endomorphisme diagonalisable est semblable à une matrice diagonale. Toute matrice diagonale est symétrique, normale et triangulaire.
Embarrassingly parallelIn parallel computing, an embarrassingly parallel workload or problem (also called embarrassingly parallelizable, perfectly parallel, delightfully parallel or pleasingly parallel) is one where little or no effort is needed to separate the problem into a number of parallel tasks. This is often the case where there is little or no dependency or need for communication between those parallel tasks, or for results between them. Thus, these are different from distributed computing problems that need communication between tasks, especially communication of intermediate results.
Associativité des puissancesEn algèbre, l'associativité des puissances est une forme affaiblie de l'associativité. Un magma est dit associatif des puissances si le sous-magma engendré par n'importe quel élément est associatif. Concrètement, cela signifie que si une opération est effectuée plusieurs fois sur un même élément , l'ordre dans lequel sont effectuées ces opérations n'a pas d'importance ; ainsi, par exemple, . Tout magma associatif est évidemment associatif des puissances.
Traitement massivement parallèleEn informatique, le traitement massivement parallèle (en anglais, massively parallel processing ou massively parallel computing) est l'utilisation d'un grand nombre de processeurs (ou d'ordinateurs distincts) pour effectuer un ensemble de calculs coordonnés en parallèle (c'est-à-dire simultanément). Différentes approches ont été utilisées pour implanter le traitement massivement parallèle. Dans cette approche, la puissance de calcul d'un grand nombre d'ordinateurs distribués est utilisée de façon opportuniste chaque fois qu'un ordinateur est disponible.
AssociativitéEn mathématiques, et plus précisément en algèbre générale, une loi de composition interne ou loi interne sur un ensemble E est dite associative si pour tous x, y et z dans E : En notant , l'associativité se traduit par le diagramme commutatif suivant : Parmi les lois associatives, on peut citer les lois d'addition et de multiplication des nombres réels, des nombres complexes et des matrices carrées, l'addition des vecteurs, et l'intersection, la réunion d'ensembles.
Complexité de la multiplication de matricesEn informatique théorique, la complexité de la multiplication de matrices est le nombre d'opérations requises pour l'opération de produit matriciel. Les algorithmes de multiplication de matrices constituent un sujet central dans les algorithmes théoriques et numériques en algèbre linéaire numérique et en optimisation, donc déterminer la complexité en temps du produit est d'une importance pratique. L'application directe de la définition mathématique de la multiplication de matrices donne un algorithme qui nécessite opérations sur le corps de base pour multiplier deux matrices d'ordre .
Non-associative algebraA non-associative algebra (or distributive algebra) is an algebra over a field where the binary multiplication operation is not assumed to be associative. That is, an algebraic structure A is a non-associative algebra over a field K if it is a vector space over K and is equipped with a K-bilinear binary multiplication operation A × A → A which may or may not be associative. Examples include Lie algebras, Jordan algebras, the octonions, and three-dimensional Euclidean space equipped with the cross product operation.
Algèbre associativevignette|Relations entre certaines structures algébriques. En mathématiques, une algèbre associative (sur un anneau commutatif A) est une des structures algébriques utilisées en algèbre générale. C'est un anneau (ou simplement un pseudo-anneau) B muni d'une structure supplémentaire de module sur A et tel que la loi de multiplication de l'anneau B soit A-bilinéaire. C'est donc un cas particulier d'algèbre sur un anneau. Soit A un anneau commutatif. On dit que (B , + , . , × ) est une A-algèbre associative lorsque : (B , + , .