[CPU] Compilation et multi-coeurs (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
hansi
Elfe
Messages : 508
Inscription : ven. 08 oct. 2010, 21:11

[CPU] Compilation et multi-coeurs (résolu)

Message par hansi »

Quand on a un proc à 2+ coeurs et qu'on compile un logiciel, depuis AUR par exemple, il n'y a à chaque fois qu'1 coeur qui est sollicité et ce coeur change à chaque seconde environ.
N'y aurait-il pas un moyen de configurer quelque chose pour que plusieurs coeurs soient sollicités en même temps pendant le compilation ? Par exemple, sur un i5 ne garder qu'1 coeur au repos et les 3 autres au taquet sur la compilation ?

Merci
Dernière modification par hansi le lun. 20 juin 2011, 19:46, modifié 1 fois.
Combattu souvent, battu parfois, abattu jamais ! (François de Charette)
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [CPU] Compilation et multi-coeurs

Message par FoolEcho »

:rtfm:

Code : Tout sélectionner

man make
Concrètement: modifier le PKGBUILD en ajoutant l'option -j au make (par exemple -j 4 pour lancer 4 processus en parallèle). :wink:
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
Desintegr
Chu Ko Nu
Messages : 354
Inscription : jeu. 28 avr. 2011, 16:42
Localisation : Orléans - France

Re: [CPU] Compilation et multi-coeurs

Message par Desintegr »

Il faut modifier le fichier /etc/makepkg.conf.

Ce qui t'intéresse est la variable MAKEFLAGS et son option -j.
Généralement, il est conseillé d'utiliser une valeur égale à 1 + 1 * le nombres de cœurs/processeurs.

Par exemple, pour un quad-core, il faut mettre -j5.

Plus d'informations : https://wiki.archlinux.org/index.php/Makepkg
Avatar de l’utilisateur
hansi
Elfe
Messages : 508
Inscription : ven. 08 oct. 2010, 21:11

Re: [CPU] Compilation et multi-coeurs

Message par hansi »

Wow ! :shock: Alors là c'est juste mortel !! Merci infiniment les gars !!!

(je vais enfin pouvoir le faire pleurer ce i5, ahah :lol: )
Combattu souvent, battu parfois, abattu jamais ! (François de Charette)
Avatar de l’utilisateur
chipster
Maître du Kyudo
Messages : 2063
Inscription : ven. 11 août 2006, 22:25
Localisation : Saint-Étienne (42)
Contact :

Re: [CPU] Compilation et multi-coeurs (résolu)

Message par chipster »

fais toi un alias style alias make = make -j7. Perso c'est ce que j'ai fait sur ma machine pour utiliser tous les coeurs dispo
Avatar de l’utilisateur
hansi
Elfe
Messages : 508
Inscription : ven. 08 oct. 2010, 21:11

Re: [CPU] Compilation et multi-coeurs (résolu)

Message par hansi »

Mais en modifiant le makepkg.conf c'est pas aussi bien ?
Combattu souvent, battu parfois, abattu jamais ! (François de Charette)
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [CPU] Compilation et multi-coeurs (résolu)

Message par FoolEcho »

L'alias a l'avantage de s'appliquer pour toute compilation "maison" (== ne passant pas par un PKGBUILD). Il faut aussi garder en tête que certains PKGBUILD sont susceptibles de redéfinir les différentes variables du makepkg.conf (c'est rare, mais ça arrive).
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
hansi
Elfe
Messages : 508
Inscription : ven. 08 oct. 2010, 21:11

Re: [CPU] Compilation et multi-coeurs (résolu)

Message par hansi »

Ok, c'est fait. En plus c'est vrai que c'est plus pratique pour sauvegarder.

Merci !
Combattu souvent, battu parfois, abattu jamais ! (François de Charette)
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [CPU] Compilation et multi-coeurs (résolu)

Message par tuxce »

Juste pour compléter, la variable MAKEFLAGS est propre à make, du coup, tu peux la définir dans ton .bashrc par exemple (avec un export), elle sera valable pour makepkg et les make lancés depuis un shell.
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [CPU] Compilation et multi-coeurs

Message par jaco »

Desintegr a écrit : Généralement, il est conseillé d'utiliser une valeur égale à 1 + 1 * le nombres de cœurs/processeurs.
Ce qui, à l'aide d'une propriété mathématique hyper-complexe, peut être simplifié en 1 + nbre de de cœurs/processeurs :humour:

BTW: la page dont tu donnes le lien évoque la règle -j2 + nbre de coeurs, ce qui donnerait -j6 pour un quad core... Mais j'ai googeulisé et je n'ai trouvé nulle part trace de ce qui motive ce calcul...

Merci pour l'info, en tous cas, bien que je ne sais pas trop si les 4 coeurs de mon I5 sont activés sur mon portable, en fait... J'avais cru comprendre qu'ils n'en activaient que deux pour économiser l'énergie... Je vais mettre -j6 et j'essaierai de surveiller une compilation...
Avatar de l’utilisateur
chipster
Maître du Kyudo
Messages : 2063
Inscription : ven. 11 août 2006, 22:25
Localisation : Saint-Étienne (42)
Contact :

Re: [CPU] Compilation et multi-coeurs (résolu)

Message par chipster »

Pour les histoires de des -j5 ... il est conseillé de mettre +1 juste pour une histoire de cache. Ensuite on peut monter la valeur, cependant, ça sature les I/O de la machine qui compilera plus lentement et sera moins utilisable pendant ladite compilation
Avatar de l’utilisateur
Desintegr
Chu Ko Nu
Messages : 354
Inscription : jeu. 28 avr. 2011, 16:42
Localisation : Orléans - France

Re: [CPU] Compilation et multi-coeurs

Message par Desintegr »

jaco a écrit : BTW: la page dont tu donnes le lien évoque la règle -j2 + nbre de coeurs, ce qui donnerait -j6 pour un quad core... Mais j'ai googeulisé et je n'ai trouvé nulle part trace de ce qui motive ce calcul...
La page indique
Generally -j2, plus 1 for each additional core/processor is an adequate choice.
c'est-à-dire -j2, plus 1 pour chaque cœur/processeur additionnel.
Cela revient au même que -j1, plus 1 pour chaque cœur/processeur. Donc -j5 pour un quad core.

J'ai ajouté un * car je pensais qu'il y avait un coefficient multiplicateur quand j'ai commencé à écrire mon post, mais finalement il n'y en a pas.
Répondre