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.
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.
Java SEJava Platform, Standard Edition, ou Java SE (anciennement Java 2 Platform, Standard Edition, ou J2SE), est une spécification de la plateforme Java d'Oracle, destinée typiquement aux applications pour poste de travail. La plateforme est composée, outre les API de base : des API spécialisées dans le poste client (JFC et donc Swing, AWT et Java2D) ; des API d'usage général comme JAXP (pour le parsing XML) ; de JDBC (pour la gestion des bases de données).
OpenMPOpenMP (Open Multi-Processing) est une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée. Cette API est prise en charge par de nombreuses plateformes, incluant GNU/Linux, OS X et Windows, pour les langages de programmation C, C++ et Fortran. Il se présente sous la forme d'un ensemble de directives, d'une bibliothèque logicielle et de variables d'environnement. OpenMP est portable et dimensionnable. Il permet de développer rapidement des applications parallèles à petite granularité en restant proche du code séquentiel.
Bibliothèque standardvignette|Binario cropped Une bibliothèque standard pour un langage de programmation est une bibliothèque logicielle qui est utilisée dans toute implémentation de ce langage. Une bibliothèque standard peut inclure : Fonctions Macros Variables globales Classes Gabarits (templates) La plupart des bibliothèques standard incluent : des algorithmes (par exemple pour le tri) ; des structures de données (telles que les listes, les arbres et les tables de hachage) ; des routines d'entrées-sorties et d'appel système.
Intel Core 2Les sont une famille de microprocesseurs x86-64 grand-public, fabriqués par Intel à partir de la microarchitecture Core et existant en versions mono (« Solo »), double (« Duo ») ou quadruple cœurs (« Quad »). Couvrant une grande variété de domaines d'utilisation (ordinateurs de bureau, portables, ultra portables, stations de travail et serveurs), ils furent produits de 2006 à 2011. Leurs successeurs furent les microprocesseurs de la famille Nehalem, utilisant une microarchitecture du même nom.
Java (technique)Java est une technique informatique développée initialement par Sun Microsystems puis acquise par Oracle à la suite du rachat de l'entreprise. Défini à l'origine comme un langage de programmation, Java a évolué pour devenir un ensemble cohérent d'éléments techniques et non techniques.
General-purpose processing on graphics processing unitsGPGPU est l'abréviation de general-purpose computing on graphics processing units, c'est-à-dire calcul générique sur processeur graphique. L'objectif de tels calculs est de bénéficier de la capacité de traitement parallèle des processeurs graphiques. Avant l'arrivée des GPGPU, le CPU, processeur central de l'ordinateur, traitait la plupart des opérations lourdes en calcul comme les simulations physiques, le rendu hors-ligne pour les films, les calculs de risques pour les institutions financières, la prévision météorologique, l'encodage de fichier vidéo et son Intel avec ses 80 % de parts de marché sur les CPU dominait donc très largement tous les besoins en calcul et pouvait en extraire de substantielles marges.
Bibliothèque standard du CLa bibliothèque standard du C est une collection maintenant normalisée d'en-têtes et de routines utilisées pour implémenter des opérations courantes, telles que les entrées/sorties et la gestion des chaînes de caractères, dans le langage C. Au contraire d'autres langages comme Pascal et PL/I, C n'inclut pas de mots-clés pour ces tâches, donc presque tous les programmes écrits en C utilisent la bibliothèque standard, ne serait-ce que pour afficher un résultat.
Bibliothèque standard du C++La bibliothèque standard du C++ (C++ Standard Library en anglais) est une bibliothèque de classes et de fonctions standardisées selon la norme ISO pour le langage C++. Elle fournit des outils (généralement sous la forme de patrons) tels que : des types pour manipuler efficacement les chaînes de caractères ; des types pour la manipulation de flux (fichiers, entrée et sortie standard...
Programmation concurrenteLa programmation concurrente est un paradigme de programmation tenant compte, dans un programme, de l'existence de plusieurs piles sémantiques qui peuvent être appelées threads, processus ou tâches. Elles sont matérialisées en machine par une pile d'exécution et un ensemble de données privées. La concurrence est indispensable lorsque l'on souhaite écrire des programmes interagissant avec le monde réel (qui est concurrent) ou tirant parti de multiples unités centrales (couplées, comme dans un système multiprocesseurs, ou distribuées, éventuellement en grille ou en grappe).
Stream processingIn computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views streams, or sequences of events in time, as the central input and output objects of computation. Stream processing encompasses dataflow programming, reactive programming, and distributed data processing. Stream processing systems aim to expose parallel processing for data streams and rely on streaming algorithms for efficient implementation.
Mac miniLe Mac mini est un ordinateur de bureau développé et produit par Apple. À l'instar des ordinateurs Mini-ITX, il est particulièrement petit pour un ordinateur de bureau (un pavé de de côté et de de haut). Il pèse ( pour les Mac mini commercialisés en ). Le Mac mini a été présenté pour la première fois à la Macworld Conference & Expo le , il a depuis été plusieurs fois mis à jour avec de nouveaux composants, le rendant ainsi de plus en plus performant.
XeonUn microprocesseur Xeon est un microprocesseur fabriqué par Intel dont le jeu d'instructions est x86 et conçu pour les stations de travail et les serveurs informatiques. Le nom « Xeon » est une marque commerciale apparue le pour les Pentium . D'abord utilisée en association avec la marque Pentium (Pentium Xeon, Pentium Xeon), elle a été utilisée seule à partir du Pentium 4 (Xeon 1.4, Xeon 3040, etc.). Les versions Xeon tirent généralement leurs performances supérieures d'une mémoire cache plus grande que les versions grand public des microprocesseurs d'Intel.
Langage de description de matérielUn langage de description de matériel, ou du matériel (ou HDL pour hardware description language en anglais) est un langage informatique permettant la description d'un circuit électronique au niveau des transferts de registres (RTL). Celui-ci peut décrire les fonctions réalisées par le circuit (description comportementale) ou les portes logiques utilisées par le circuit (description structurelle). Il est possible d'observer le fonctionnement d'un circuit électronique modélisé dans un langage de description grâce à la simulation.
Java (langage)Java est un langage de programmation de haut niveau orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le au SunWorld. La société Sun est rachetée en 2009 par la société Oracle qui détient et maintient désormais Java. Un logiciel écrit en language Java a pour particularité d'être compilé vers un code intermédiaire formé de bytecodes qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation.
Calcul distribuéUn calcul distribué, ou réparti ou encore partagé, est un calcul ou un traitement réparti sur plusieurs microprocesseurs et plus généralement sur plusieurs unités centrales informatiques, et on parle alors d'architecture distribuée ou de système distribué. Le calcul distribué est souvent réalisé sur des clusters de calcul spécialisés, mais peut aussi être réalisé sur des stations informatiques individuelles à plusieurs cœurs. La distribution d'un calcul est un domaine de recherche des sciences mathématiques et informatiques.
Java Native InterfaceLa JNI (Java Native Interface) est une bibliothèque logicielle d'interfaçage, intégrée nativement au JDK de Java, qui permet au code Java s'exécutant à l'intérieur de la JVM d'appeler et d'être appelé par des applications natives (c'est-à-dire des programmes spécifiques au matériel et au système d'exploitation de la plate-forme concernée), ou avec des bibliothèques logicielles basées sur d'autres langages (C, C++, assembleur, etc.).
VHDLVHDL est un langage de description de matériel destiné à représenter le comportement ainsi que l'architecture d’un système électronique numérique. Son nom complet est VHSIC Hardware Description Language. L'intérêt d'une telle description réside dans son caractère exécutable : une spécification décrite en VHDL peut être vérifiée par simulation, avant que la conception détaillée ne soit terminée.
Futures (informatique)En programmation, les notions de futurs (« futures »), promesses (« promises ») ou délais (« delay ») font référence à des techniques de synchronisation pour certains langages concurrents. Il s'agit d'abstractions qui servent de proxy pour un résultat non-connu au moment où il est référencé pour la première fois, car son calcul ou son obtention se feront « plus tard » à l'exécution. Le terme générique de promise (« promesse ») a été proposé par Daniel P. Friedman et David Wise en 1976 ; Peter Hibbard le dénommait eventual à la même époque.