Optimisation de codeEn programmation informatique, l'optimisation de code est la pratique consistant à améliorer l'efficacité du code informatique d'un programme ou d'une bibliothèque logicielle. Ces améliorations permettent généralement au programme résultant de s'exécuter plus rapidement, de prendre moins de place en mémoire, de limiter sa consommation de ressources (par exemple les fichiers), ou de consommer moins d'énergie électrique. La règle numéro un de l'optimisation est qu'elle ne doit intervenir qu'une fois que le programme fonctionne et répond aux spécifications fonctionnelles.
Optimizing compilerIn computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster.
CoopérativeUne coopérative est la combinaison d'un regroupement de personnes et d'une entreprise fondée sur la participation économique des membres, en capital et en opérations. Son organisation et son fonctionnement sont caractérisés par des principes et des valeurs qui confèrent à chaque coopérative un caractère universel, quel que soit son objet ou son secteur d'activité. Une partie de ces principes et valeurs, comme la démocratie à travers l'égalité de voix entre les membres, est traduite en norme juridique.
Banque coopérativeUne coopérative de crédit ou banque mutualiste, est une banque coopérative, c'est-à-dire un établissement bancaire répondant aux principes coopératifs. Cette forme particulière d'entreprise bancaire a vu le jour en Europe dans la seconde moitié du avec les initiatives de Frédéric-Guillaume Raiffeisen notamment. Ce modèle est diffusé aujourd'hui dans tous les principaux pays européens, tels que l'Autriche, la Belgique, la Finlande, la France, l'Allemagne, l'Italie, les Pays-Bas, l'Espagne et la Suisse.
Allocation de registresDans un compilateur, l'allocation de registres est une étape importante de la génération de code. Elle vise à choisir judicieusement dans quel registre du processeur seront enregistrées les variables durant l'exécution du programme que l'on compile. Les registres sont des mémoires internes au processeur, généralement capables de contenir un mot machine. Les opérations sur des valeurs rangées dans des registres sont plus rapides que celles sur des valeurs en mémoire vive, quand ce ne sont pas les seules possibles.
Agricultural cooperativeAn agricultural cooperative, also known as a farmers' co-op, is a producer cooperative in which farmers pool their resources in certain areas of activity. A broad typology of agricultural cooperatives distinguishes between agricultural service cooperatives, which provide various services to their individually-farming members, and agricultural production cooperatives in which production resources (land, machinery) are pooled and members farm jointly.
Extension inlineEn informatique, l'extension inline, ou inlining, est une optimisation d'un compilateur qui remplace un appel de fonction par le code de cette fonction. Cette optimisation vise à réduire le temps d'exécution ainsi que la consommation mémoire. Toutefois, l'extension inline peut augmenter la taille du programme (par la répétition du code d'une fonction). Certains langages (par exemple le C ou le C++) ont un mot clé inline attachable à la définition d'une fonction. Ce mot clé indique au compilateur qu'il devrait essayer d'étendre cette fonction.
Cache de processeurUn cache de processeur est une antémémoire matérielle utilisée par l'unité centrale de traitement (CPU) d'un ordinateur pour réduire le coût moyen (temps ou énergie) de l’accès aux données de la mémoire principale. Un cache de processeur est une mémoire plus petite et plus rapide, située au plus près d'une unité centrale de traitement (ou d'un cœur de microprocesseur), qui stocke des copies des données à partir d'emplacements de la mémoire principale qui sont fréquemment utilisés avant leurs transmissions aux registres du processeur.
Loop nest optimizationIn computer science and particularly in compiler design, loop nest optimization (LNO) is an optimization technique that applies a set of loop transformations for the purpose of locality optimization or parallelization or another loop overhead reduction of the loop nests. (Nested loops occur when one loop is inside of another loop.) One classical usage is to reduce memory access latency or the cache bandwidth necessary due to cache reuse for some common linear algebra algorithms.
Mémoire cacheUne mémoire cache ou antémémoire est, en informatique, une mémoire qui enregistre temporairement des copies de données provenant d'une source, afin de diminuer le temps d'un accès ultérieur (en lecture) d'un matériel informatique (en général, un processeur) à ces données. Le principe du cache est également utilisable en écriture, et existe alors en trois modes possibles : write-through, write-back et write-around.
Fichier informatiquethumb|Pictogrammes représentant des fichiers. Un fichier informatique est au sens commun, une collection, un ensemble de données numériques réunies sous un même nom, enregistrées sur un support de stockage permanent, appelé mémoire de masse, tel qu'un disque dur, un cédérom, une mémoire flash ou une bande magnétique, une série de cartes perforées et manipulées comme une unité. Techniquement un fichier est une information numérique constituée d'une séquence d'octets, c'est-à-dire d'une séquence de nombres, permettant des usages divers.
Utilisateur finalthumb|Infirmières utilisant un logiciel informatique aux États-Unis en 1987. En informatique, dans le cadre du développement d'un logiciel, lutilisateur final est la personne qui va utiliser ledit logiciel. Les développeurs peuvent avoir de la peine à comprendre les besoins de cet utilisateur.
Algorithme génétiqueLes algorithmes génétiques appartiennent à la famille des algorithmes évolutionnistes. Leur but est d'obtenir une solution approchée à un problème d'optimisation, lorsqu'il n'existe pas de méthode exacte (ou que la solution est inconnue) pour le résoudre en un temps raisonnable. Les algorithmes génétiques utilisent la notion de sélection naturelle et l'appliquent à une population de solutions potentielles au problème donné.
Algorithmes de remplacement des lignes de cacheArticle principal : mémoire cache Les mémoires caches dans les matériels informatiques sont le plus souvent partiellement associatives : une ligne de la mémoire principale ne peut être rangée que dans une partie bien définie de la mémoire cache. Dans le cas d'une mémoire cache logicielle, il est possible qu'elle soit totalement associative et gérée globalement. Dans les deux cas, se pose le problème de devoir dégager une place dans la mémoire cache, ou dans la partie de celle-ci concernée, lorsque celle-ci est pleine et qu'on veut y charger des données de la mémoire principale.
Energy systemAn energy system is a system primarily designed to supply energy-services to end-users. The intent behind energy systems is to minimise energy losses to a negligible level, as well as to ensure the efficient use of energy. The IPCC Fifth Assessment Report defines an energy system as "all components related to the production, conversion, delivery, and use of energy". The first two definitions allow for demand-side measures, including daylighting, retrofitted building insulation, and passive solar building design, as well as socio-economic factors, such as aspects of energy demand management and remote work, while the third does not.
Problème du sac à dosEn algorithmique, le problème du sac à dos, parfois noté (KP) (de l'anglais Knapsack Problem) est un problème d'optimisation combinatoire. Ce problème classique en informatique et en mathématiques modélise une situation analogue au remplissage d'un sac à dos. Il consiste à trouver la combinaison d'éléments la plus précieuse à inclure dans un sac à dos, étant donné un ensemble d'éléments décrits par leurs poids et valeurs.
Économies d'énergieLes économies d'énergie sont les gains obtenus en réduisant la consommation d'énergie ou les pertes sur l'énergie produite. Les économies d'énergie sont devenues un objectif important des pays fortement consommateurs d'énergie vers la fin du , notamment après le choc pétrolier de 1973 puis à partir des années 1990, afin de répondre à plusieurs inquiétudes : la crainte d'un épuisement des ressources naturelles, particulièrement des combustibles fossiles ; le réchauffement climatique résultant des émissions de gaz à effet de serre ; les problèmes politiques et de sécurité d'approvisionnement dus à l'inégale répartition des ressources sur la planète ; le coût de l'énergie que la combinaison de ces phénomènes peut faire augmenter.
Système d'alimentation autonomevignette|320x320px| Schéma d'un système hybride Un système d'alimentation autonome (SAA, ou ), ou plus précisément un système d'alimentation électrique autonome également connu sous le nom d'alimentation électrique en zone éloignée, est un système électrique hors réseau pour les emplacements dépourvus de réseau de distribution d'électricité. Les SAA typiques incluent une ou plusieurs méthodes de production d'électricité, de stockage d'énergie et de régulation.
Ressources et consommation énergétiques mondialesLes réserves mondiales prouvées d'énergie fossile pouvaient être estimées en 2020, selon l'Agence fédérale allemande pour les sciences de la Terre et les matières premières, à , dont 55 % de charbon, 25 % de pétrole et 19 % de gaz naturel. Ces réserves assurent de production au rythme actuel ; cette durée est très variable selon le type d'énergie : pour le pétrole, pour le gaz naturel, pour le charbon. Pour l'uranium, avec les techniques actuelles, elle serait de 90 à selon les estimations, et sa durée d'utilisation pourrait se compter en siècles en ayant recours à la surgénération.
Classe de complexitéEn informatique théorique, et plus précisément en théorie de la complexité, une classe de complexité est un ensemble de problèmes algorithmiques dont la résolution nécessite la même quantité d'une certaine ressource. Une classe est souvent définie comme l'ensemble de tous les problèmes qui peuvent être résolus sur un modèle de calcul M, utilisant une quantité de ressources du type R, où n, est la taille de l'entrée. Les classes les plus usuelles sont celles définies sur des machines de Turing, avec des contraintes de temps de calcul ou d'espace.