Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Linus Torvalds fait part d'une optimisation importante améliorant considérablement le temps de compilation
Sur Linux avec les CPU embarquant un grand nombre de cœurs comme l'AMD Threadripper 3990X

Le , par Christian Olivier

8PARTAGES

27  0 
Pour ceux qui utilisent l’outil GNU Make - en particulier comme système de compilation - sachez que les temps de compilation en parallèle sur le même CPU sont sur le point d’être beaucoup plus rapides à partir de la version 5.6 du noyau Linux dont la RC1 est disponible depuis peu. En effet, Linus Torvalds a récemment publié un patch pour le kernel qui promet de diviser par huit le temps nécessaire à la compilation sur les gros CPU qui disposent d’un nombre très élevé de cœurs/threads, tout en garantissant un usage plus efficace et efficient des capacités multithreads de ce dernier. Cette optimisation profite donc surtout aux systèmes embarquant des puces qui, à l’instar du Threadripper 3990X d’AMD avec ses 64 cœurs / 128 threads, disposent d’un très grand nombre de cœurs / threads.

Le « ;nouveau patch ;» optimise la distribution des tâches au processeur et les rendus multithreadés. Il s’appuie en partie sur la correction d’un bogue relatif à l’implémentation du Spinlock et du Scheduler sur Linux. En réalité, ce bogue bien documenté a été corrigé il y a plus de deux ans de cela, mais vu que GNU Make n’avait pas reçu de véritable mise à jour depuis, le patch qui permettait d’effectuer des opérations de lecture non bloquante avec pselect était resté dans les archives.

Le « ;nouveau patch ;» s’appuie également sur des modifications du pipe de GNU Make afin qu’il soit possible d’utiliser des temps d’attente exclusifs pour la lecture ou l’écriture. Linus Torvalds a confié avoir lui-même modifié le code du noyau Linux pour l’implémentation de ce correctif qui est censé améliorer les performances du noyau en lui octroyant plus d’indépendance vis-à-vis de GNU Make. Le code pipe optimisé utilise des files d’attente séparées et des temps d’attente exclusifs pour les écritures et les lectures de données afin d’éviter le problème d’engorgement (les goulots d’étranglement) lorsqu’il y a plusieurs opérations de lectures de données en attente sur un pipe (ou, plus rarement, lorsqu’il y a beaucoup d’opérations d’écriture qui attendent qu’une pipe se libère).

Dans un cas de test simplifié écrit par Linus Torvalds, l’application de ce patch a fait chuter le nombre de commutations de contexte sur le programme de test de 11 millions à seulement 1,2 million. En parallèle, le temps requis pour compléter le test était également largement inférieur au temps initial.


Josh Triplett d’Intel a testé le correctif et a confirmé : « ;Je me suis acharné sur votre correctif du pipe (passage à des files d’attente exclusives) pendant un mois environ, sur plusieurs systèmes différents et je n’ai rencontré aucun problème avec lui. Le patch améliore considérablement les temps de compilation en parallèle sur les grands systèmes (~100 CPU) ;».

Source : Kernel

Et vous ?

Qu’en pensez-vous ?

Voir aussi

La version 5.5 du noyau Linux est disponible avec un support pour les stations de travail SGI Octane et Octane II alimentées par MIPS
Le «bug de l'an 2000» se reproduira en 2038 dans le monde Linux, mais c'est maintenant qu'il faut s'inquiéter selon Jon Corbet
Sortie de la version 5.4 du noyau Linux avec l'ajout d'un mode de verrouillage du noyau, d'une couche de sécurité pour détecter les modifications de fichiers et plusieurs autres améliorations
WireGuard, une application VPN et un nouveau protocole de communication gratuit et open source, a été fusionné dans net-next et est en passe d'être inclus dans la version 5.6 du noyau Linux

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Jiji66
Membre éclairé https://www.developpez.com
Le 12/02/2020 à 8:14
Je n'ai plus qu'à acheter un super calculateur pour tester ça
1  0 
Avatar de foetus
Expert éminent https://www.developpez.com
Le 12/02/2020 à 9:24
Citation Envoyé par Jiji66 Voir le message
Je n'ai plus qu'à acheter un super calculateur pour tester ça
Je vois une vraie opportunité pour qu'Intel se bouge le derche et arrête de limiter le nombre de cores physiques à 4 ou 6 ... parce que ce ne sont pas les jeux qui ont réussi à le faire (<- mais qu'il l'eût cru)
Sans parler également de la fréquence mémoire qui comme le nombre de cores a été débloquée depuis le succès des Ryzen 2/ 3 : comme par hasard
0  0