Le 20 janvier 2019 à 14:39:37 chiondugaz a écrit :
[14:23:12] <fruttyxx>
Le 20 janvier 2019 à 13:35:01 chiondugaz a écrit :
Tu peux développer l'utilité du truc
T'as le Preloader d3dx9_42.dll et les tbb.dll qui font parti d' Intel's Threaded Building Blocks library.
https://www.threadingbuildingblocks.org/
Ça apporte quoi au jeu concrètement
Non mais je vais pas faire un exposé sur ça , suffit de cliqué sur le lien et vas voir les documents adaptés. Ça fait énormément de choses comme augmenter / réduire les allocations mémoire , développer et répartir des taches multithreads plus facilement , etc ...
Tiens , ils en parlent mieux que moi et sur GitHub aussi.
Avantages des blocs de construction de threads Intel®
Les blocs de construction de threads Intel® (Intel® TBB) sont une bibliothèque qui vous permet d'exploiter les performances multicœurs sans être un expert en threading. En règle générale, vous pouvez améliorer les performances des processeurs multicœurs en implémentant les points clés expliqués dans les premières sections du Guide du développeur. Au fur et à mesure que votre expertise grandit, vous souhaiterez peut-être approfondir des sujets plus complexes qui sont abordés dans les sections avancées.
Il existe diverses approches de la programmation parallèle, allant de l'utilisation de primitives de threading dépendantes de la plate-forme à de nouveaux langages exotiques. L’avantage des blocs de construction Intel Threading est qu’il fonctionne à un niveau supérieur à celui des threads bruts, sans nécessiter de langages exotiques ni de compilateurs. Vous pouvez l'utiliser avec tout compilateur prenant en charge ISO C ++. La bibliothèque diffère des packages de threads classiques des manières suivantes:
Intel Threading Building Blocks vous permet de spécifier un comportement logique au lieu de threads . La plupart des packages de threading nécessitent que vous spécifiiez des threads. Programmer directement en termes de threads peut être fastidieux et conduire à des programmes inefficaces, car les threads sont des constructions de bas niveau, lourdes et proches du matériel. La programmation directe avec des threads vous oblige à mapper efficacement des tâches logiques sur des threads. En revanche, la bibliothèque d'exécution Intel Threading Building Blocks mappe automatiquement le parallélisme logique sur les threads de manière à optimiser l'utilisation des ressources du processeur.
Intel Threading Building Blocks cible le threading pour des performances optimales . La plupart des packages de threads à usage général prennent en charge de nombreux types de threads, tels que le threading d'événements asynchrones dans les interfaces utilisateur graphiques. En conséquence, les progiciels à usage général ont tendance à être des outils de bas niveau fournissant une base, pas une solution. Au lieu de cela, Intel Threading Building Blocks se concentre sur l’objectif particulier de la mise en parallèle des travaux gourmands en calculs, en offrant des solutions simples et de plus haut niveau.
Intel Threading Building Blocks est compatible avec les autres packages de threading. Comme la bibliothèque n'est pas conçue pour traiter tous les problèmes de threading, elle peut coexister de manière transparente avec d'autres packages de threading.
Intel Threading Building Blocks met l'accent sur la programmation parallèle évolutive des données . Diviser un programme en blocs fonctionnels distincts et attribuer un fil distinct à chaque bloc est une solution qui ne s’adapte généralement pas correctement, car le nombre de blocs fonctionnels est généralement fixe. En revanche, Intel Threading Building Blocks met l' accent sur la programmation parallèle des données , permettant à plusieurs threads de fonctionner sur différentes parties d'une collection. La programmation parallèle aux données s'adapte bien à un plus grand nombre de processeurs en divisant la collection en éléments plus petits. Avec la programmation parallèle de données, les performances du programme augmentent à mesure que vous ajoutez des processeurs.
Intel Threading Building Blocks repose sur une programmation générique . Les bibliothèques traditionnelles spécifient des interfaces en termes de types spécifiques ou de classes de base. Au lieu de cela, Intel Threading Building Blocks utilise une programmation générique. L'essence de la programmation générique consiste à écrire les meilleurs algorithmes possibles avec le moins de contraintes. La bibliothèque de modèles standard C ++ (STL) est un bon exemple de programmation générique dans laquelle les interfaces sont spécifiées par les exigences relatives aux types. Par exemple, C ++ STL a une fonction de modèle sortqui trie une séquence définie de manière abstraite en termes d’itérateurs sur la séquence. Les exigences sur les itérateurs sont les suivantes:
Fournir un accès aléatoire
L'expression * i <* j est vrai si l'élément pointé par l'itérateur je devrait précéder l'élément pointé par l'itérateur jet faux sinon.
L'expression échange (* i, * j) échange deux éléments.
La spécification en termes d'exigences sur les types permet au modèle de trier de nombreuses représentations différentes de séquences, telles que des vecteurs et des deques. De même, les modèles de blocs de construction Intel Threading spécifient les exigences relatives aux types, et non aux types particuliers, et s'adaptent ainsi à différentes représentations de données. La programmation générique permet aux blocs de construction Intel Threading de fournir des algorithmes hautes performances avec une applicabilité étendue.