Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[MAKE.CONF] makeopts (distcc ou non)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 349

PostPosted: Sat Aug 05, 2006 12:20 pm    Post subject: [MAKE.CONF] makeopts (distcc ou non) Reply with quote

Salut à tous.

Ce post est un peu redondant avec celui-ci mais je le maintiens car c'est plus des infos précises sur MAKEOPTS que je recherche...

Depuis hier, j'utilise distcc afin que la machine puissante (pentium 4) de mon réseau soit utilisée afin d'accélérer les compilations sur la machine la moins puissante (Athlon XP). D'ailleurs, celle-ci ralentissait les compilations donc j'ai configuré distcc pour que seul le pentium 4 compile.
J'ai donc dû m'intéresser à l'option MAKEOPTS du fichier make.conf. Après avoir épluché le forum et pas mal de sites donnés par google, j'ai l'impression de ne pas avoir avancé d'un pouce ! En effet, je ne trouve que des informations contradictoires sur le nombre à renseigner définissant le nombre de compilations parallèles à lancer.
J'ai vu : 2*cpu+1, cpu+1, voire même de faire des essais (j'aimerais d'ailleurs savoir comment, de manière efficace, évaluer les différentes options à mettre).

D'où mes questions :
- Comment renseigner correctement cette valeur sachant que j'ai un pentium 4 (hyper-threading activé, donc 2 processeurs CPU0 et CPU1 présents), sans distcc ? par exemple -j3, -j5, autre... ?
- Quelle valeur mettre dans le make.conf de l'athlon XP sachant qu'elle utilise uniquement le P4 lors de la compilation (avec distcc) ?
- Dois-je renseigner la variable DISTCCD_OPTS du fichier /etc/conf.d/distccd avec une option -jX ? si oui, sur quelle machine ? (uniquement sur celle qui utilise distcc je pense...)
- Enfin, est-il indipensable de renseigner cette option, ou le simple fait de modifier celle de make.conf est-il suffisant ?
- En bonus, que se passe-t-il si mon P4 est éteint ? Je pense que l'Athlon va se mettre à compiler seul mais dans ce cas, l'option MAKEOPTS de make.conf n'est elle pas trop grande et inadaptée ? C'est peut-être à cause de ce cas de figure qu'il vaudrait mieux renseigner la valeur dans le fichier /etc/conf.d/distccd ?

Merci d'avance si vous pouvez éclairer ma lanterne car je me sens un peu paumé....
Back to top
View user's profile Send private message
ercete
Guru
Guru


Joined: 11 Dec 2003
Posts: 426
Location: France, Avignon

PostPosted: Sat Aug 05, 2006 2:59 pm    Post subject: Reply with quote

Si je ne dis pas de bêtise, MAKEOPTS correspond aux nombre de compilation lancées en parallèle par gcc.

Quote:
Avec MAKEOPTS, vous pouvez définir le nombre de compilations à lancer en parallèle. Une valeur souvent utilisée est le nombre de processeurs dans votre système plus un, mais une autre valeur peut parfois mieux fonctionner.

ou plus précis :
Quote:

Note: What is a parallel make? To speed compilation on multiprocessor systems, make supports compiling a program in parallel. This means that instead of compiling just one source file at a time, make compiles a user-specified number of source files simultaneously (so those extra processors in a multiprocessor system are used). Parallel makes are enabled by passing the -j # option to make, as follows: make -j4 MAKE="make -j4". This code instructs make to compile four programs simultaneously. The MAKE="make -j4" argument tells make to pass the -j4 option to any child make processes it launches.


Je penses que la valeur minimum est : le nombre de processeurs physiques,
et j'ajouterai +1 pour un peu plus de célérité (vu que certaines compilations sont tellement brèves que lorsqu'une se termine l'autre est déjà presque en cours.

je suis dans la même situation que toi P4HT+une brèle de 166MHz.
Je ne compte le HT que comme un seul processeur, ainsi cela laisse un peu de marge au scheduler pour laisser la main aux autres processus.
En gros cela dépends de tellement de paramètres (taille des sources en train d'être compilé, optimisation du code, etc...)
qu'en général on conseille de mettre la valeur à nbProc+1 histoire de lancer un peu en parallèle sans surcharger de processus en parallèle.

Voilà comment je vois la chose ;)
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Sat Aug 05, 2006 3:31 pm    Post subject: Reply with quote

C'est vrai que ce post est un peu redondant avec le précédent d'autant que des réponses à tes questions y ont déjà été apportées ! Ainsi grace à gothi tu sais que :

Quote:
lorsque distcc ne trouve pas d'hôte externe, il compile tout simplement en local et il gueule juste un petit peu dans les logs ;)
Et puis, si ces messages dans les logs te déplaisent, rien ne t'empêche de désactiver distcc selon le besoin.


et que :

Quote:
la valeur idéale de "jx" est aussi empirique que la grandeur idéale du swap ;)
On conseille souvent la valeur (#cpu+1) mais d'autres préconisent simplement (#cpu) ou alors carrément (#cpu x 2).
Tout ça pour dire qu'en effet, un jx mal adapté (comme dans le cas d'un distcc sans machine hôte) fera sans doute baisser les performances mais en pratique, ce n'est peut-être pas aussi dramatique qu'il y paraît :?


Alors on dit "merci ghoti" ! :D
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum