Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !


Multithreading - Optimiser l'utilisation des ordinateurs multi-cores, multi-processeurs et Hyper Threading

De nos jours les ordinateurs disposent quasiment tous de la possibilité de faire tourner au moins deux threads (tâches systèmes) en même temps. La première fois que le grand public a entendu parlé de cette fonctionnalité c'était avec le Pentium 4 HT. Le Pentium 4 HT n'est pas à proprement parler un processeur optimisé pour ce genre de processus, il ne dispose d'ailleurs que d'un seul cœur d'exécution. Mais depuis les Pentium D, Core Duo, Core 2 Duo et Quad, Athlon 64 X2 ainsi que presque tous les processeurs plus récents les processeurs sont vraiment significativement plus puissant en utilisation multithreads.

Ceci rend les ordinateurs plus réactifs quand ils sont en charge, mais permet aussi de grandement augmenter la vitesse de certains programmes !

Il existe deux types de cœurs d'exécution dans les processeurs actuels, les cœurs physiques et virtuels.

  • Un cœur physique est un autre processeur réel, il permet en théorie des augmentations de performances de + 100% par nombre de cœur supplémentaire.
  • Un cœur virtuel est un cœur créé par la technologie Hyper Threading d'Intel, il permet des augmentations de performances théoriques d'environ 30%. Un processeur HT dispose d'un ou plusieurs cœurs physiques qui sont séparés en deux cœurs virtuels, doublant ainsi le nombre de cœurs visibles par le système.

Cette page se fera un plaisir de recenser les différents programmes à préférer si vous utilisez un processeur multithreads pour obtenir les meilleurs performances. Elle regroupera aussi quelques trucs et astuces à connaitre pour améliorer les performances de programmes qui n'utilises pas à l'origine plusieurs threads mais dont vous pouvez activer la fonctionnalité par une légère modification.

Si le programme doit être configuré pour utiliser le multithreading, la méthode est disponible sur la page du programme de ce wiki. La liste vous indiquera si oui on non il y a besoin d'une intervention de votre part.

Audio

FIXME

Compression

  • p7zip - le format 7z est compressible en multithreads.
  • pbzip2 - Il est possible de compresser et décompresser du .bz2 en multithread grâce à pbzip2 ! Les performances montent en flèche ! Les deux programmes sont parfaitement compatibles, vous pouvez donc remplacer bzip2 par pbzip2 et profiter des performances dans toutes les interfaces graphiques l'utilisant.

Compilation

Make

Make permet la compilation en multithreads, il suffit d'exprimer votre commande comme ceci:

make -j N

N étant le nombre de threads à activer.

Vidéo

  • WinFF - Activation Manuelle - Permet l'activation du multithreading et de choisir le nombre que vous en voulez.
  • Kdenlive - Permet le rendu en multithreading, transparent pour l'utilisateur !
  • Avidemux - Utilise automatiquement le nombre de processeur maximum si le codec le permet. Vous pouvez dans la configuration choisir un nombre inférieur si vous le voulez.
  • FFmpeg - Activation Manuelle - Permet l'activation du multithreading et de choisir le nombre que vous en voulez.

Serveurs (Web/FTP/etc)

Je ne m'y connais pas bien du tout en serveurs, si quelqu'un veut modifier cette partie, qu'il se sente comme chez lui ici :-D

Je suppose quand même au vu des architectures utilisées dans les serveurs web que la très grande majorité des serveurs comme Apache par exemple sont parfaitement bien optimisés.

  • multithreading.1269949210.txt.gz
  • Dernière modification: Le 18/04/2011, 14:57
  • (modification externe)