Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Portage] Parallel builds
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
d2_racing
Bodhisattva
Bodhisattva


Joined: 25 Apr 2005
Posts: 13047
Location: Ste-Foy,Canada

PostPosted: Tue Jul 29, 2008 3:02 am    Post subject: [Portage] Parallel builds Reply with quote

Vous avez pris connaissance de ça dernièrement ? : http://planet.gentoo.org/developers/zmedico/2008/07/23/portage_parallel_builds
Back to top
View user's profile Send private message
Dismantr
Apprentice
Apprentice


Joined: 06 Jun 2007
Posts: 201

PostPosted: Tue Jul 29, 2008 6:41 am    Post subject: Reply with quote

Waow, ça a l'air pas mal ! je pense que je vais tester ça bientôt ! Quelqu'un a déjà mis ça en place ?
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 8123
Location: ~Brussels - Belgique

PostPosted: Tue Jul 29, 2008 7:58 am    Post subject: Reply with quote

hmm oui j'ai vu, mais il faut alors penser à changer MAKE_OPTS en conséquence
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
d2_racing
Bodhisattva
Bodhisattva


Joined: 25 Apr 2005
Posts: 13047
Location: Ste-Foy,Canada

PostPosted: Tue Jul 29, 2008 1:12 pm    Post subject: Reply with quote

Si quelqu'un test le nouveau truc de Portage, j'aimerais biens savoir si on voit vraiment une différence.
Back to top
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3581
Location: Belgium

PostPosted: Tue Jul 29, 2008 1:39 pm    Post subject: Reply with quote

XavierMiller wrote:
mais il faut alors penser à changer MAKE_OPTS en conséquence

Que veux-tu dire exactement ?
Comment interpréter ce post de zmedico ?
zmedico wrote:
Comment from: Zac MEDICO [Member] Email · http://dev.gentoo.org/~zmedico/
Yes, MAKEOPTS is completely separate. The --jobs, --keep-going, and --load-average emerge options are analogous to the ones provided by make. They have the same meaning for both tools, but they are controlled separately. The make options are set via MAKEOPTS, while the emerge options are controlled via the emerge command line or via an EMERGE_DEFAULT_OPTS setting in /etc/make.conf.
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 8123
Location: ~Brussels - Belgique

PostPosted: Tue Jul 29, 2008 1:48 pm    Post subject: Reply with quote

je veux dire que si tu augmentes le nombre de builds parallèles, il faut diminuer le make-opts. Sinon, tu te trouveras avec max (nombre de builds) x (MAKE_OPTS), ce qui va mettre ta machine sur les genoux.
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3581
Location: Belgium

PostPosted: Tue Jul 29, 2008 2:15 pm    Post subject: Reply with quote

La charge, oui, ça paraît clair ! ;) (quoique un bon nice ...)
Mais quel est l'intérêt de --jobs ? Quel intérêt d'emerger plusieurs paquets en paralèlle puisque MAKEOPTS permet déjà de lancer des make en paralèlle ?
Bon, MAKEOPTS permet plusieurs processus paralèlles au sein d'un même paquet tandis que --jobs concerne plusieurs paquets (si j'ai bien compris :?) mais quel intérêt de privilégier une méthode plutôt que l'autre ?
Le véritable intérêt ne concernerait-il pas surtout les multicores (meilleure répartition de la charge sur les # procs ?)
Ou alors, pour répondre au fait que certaines applications ne supportent pas la compilation multithread ?

Désolé pour ces questions naïves : je suis en pleine découverte ! ;)
Back to top
View user's profile Send private message
kopp
Advocate
Advocate


Joined: 09 Apr 2004
Posts: 2885
Location: Grenoble, France

PostPosted: Tue Jul 29, 2008 3:36 pm    Post subject: Reply with quote

ghoti wrote:
La charge, oui, ça paraît clair ! ;) (quoique un bon nice ...)
Mais quel est l'intérêt de --jobs ? Quel intérêt d'emerger plusieurs paquets en paralèlle puisque MAKEOPTS permet déjà de lancer des make en paralèlle ?
Bon, MAKEOPTS permet plusieurs processus paralèlles au sein d'un même paquet tandis que --jobs concerne plusieurs paquets (si j'ai bien compris :?) mais quel intérêt de privilégier une méthode plutôt que l'autre ?
Le véritable intérêt ne concernerait-il pas surtout les multicores (meilleure répartition de la charge sur les # procs ?)
Ou alors, pour répondre au fait que certaines applications ne supportent pas la compilation multithread ?

Désolé pour ces questions naïves : je suis en pleine découverte ! ;)


Bah, certain paquets sont limités sur MAKEOPTS par exemple.
Effectivement c'est pour des multiproc multicoeur :)

sinon : http://jolexa.wordpress.com/2008/07/24/gentoo-portages-new-jobs-feature/
Back to top
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3581
Location: Belgium

PostPosted: Tue Jul 29, 2008 4:37 pm    Post subject: Reply with quote

kopp wrote:
Bah, certain paquets sont limités sur MAKEOPTS par exemple.
Effectivement c'est pour des multiproc multicoeur :)

Ouf, pas encore trop largué le vieux ! :lol:

Très instructif ton lien, Kopp ! Notament, la question du "./configure" : c'est vrai que certains peuvent être très longs !
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Tue Jul 29, 2008 11:53 pm    Post subject: Reply with quote

Je suis en train d'essayer, avec un MAKEOPTS="-j3" et --jobs=3 --load-average=5.0, et ça tourne plutôt bien. Ce qui est bien avec le --load-average, c'est que bien que j'ai demandé 3 emerge parallèles, il en fera moins si la charge devient trop haute pour mon ptit C2D, plutôt pratique. :) C'est passé dans mon EMERGE_DEFAULT_OPTS du coup :P

Et j'aime bien l'affichage résumé que ça donne, sans les lignes de compilation qui défilent et tout, c'est bien mieux pour suivre le déroulement de tout ça :) Et ça affiche tout de même tout le log si jamais une compilation échoue, du coup ya pas de perte en cas de problème. :)
Back to top
View user's profile Send private message
Dismantr
Apprentice
Apprentice


Joined: 06 Jun 2007
Posts: 201

PostPosted: Wed Jul 30, 2008 7:33 am    Post subject: Reply with quote

Pourquoi avoir choisi un load-average de 5 ? :o
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 8123
Location: ~Brussels - Belgique

PostPosted: Wed Jul 30, 2008 8:01 am    Post subject: Reply with quote

ah ok, ça m'intéresse !
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Wed Jul 30, 2008 8:54 am    Post subject: Reply with quote

Dismantr wrote:
Pourquoi avoir choisi un load-average de 5 ? :o

Heu, c'est juste arbitraire, ça tourne encore bien avec cette charge là, et mon laptop chauffe déjà bien assez comme ça :P
Back to top
View user's profile Send private message
Dismantr
Apprentice
Apprentice


Joined: 06 Jun 2007
Posts: 201

PostPosted: Wed Jul 30, 2008 12:05 pm    Post subject: Reply with quote

Je n'ai pas compris comment ça marche ce taux de charge ; ça correspond à quoi exactement (ptite formule mathématique, si possible...) ? C'est le ratio de quelque chose, mais de quoi... :?:

Sinon, quel intéraction y a-t-il entre ce load average et un PORTAGE_NICENESS="10" dans le make ?
Et quel intéraction y a-t-il exactement entre un j5 dans le make et le jobs= de la commande ?

Si je règle le load average, je supprime le niceness ?
Si je règle, comme geekounet, mon j5 sur j3 et jobs=3 ça implique quoi exactement, en terme d'emerge ?
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Wed Jul 30, 2008 12:33 pm    Post subject: Reply with quote

Dismantr wrote:
Je n'ai pas compris comment ça marche ce taux de charge ; ça correspond à quoi exactement (ptite formule mathématique, si possible...) ? C'est le ratio de quelque chose, mais de quoi... :?:

Load average ;)

Dismantr wrote:
Sinon, quel intéraction y a-t-il entre ce load average et un PORTAGE_NICENESS="10" dans le make ?

Aucune, le nice n'intervient que sur l'utilisation des CPU, pas sur la charge.

Dismantr wrote:
Et quel intéraction y a-t-il exactement entre un j5 dans le make et le jobs= de la commande ?

Si je règle le load average, je supprime le niceness ?
Si je règle, comme geekounet, mon j5 sur j3 et jobs=3 ça implique quoi exactement, en terme d'emerge ?

Le -j5 dans le MAKEOPTS c'est le nombre de travaux simultanés que va lancer make dans la compilation d'un package, le --jobs d'emerge c'est le nombre d'emerge effectués en simultané, donc si t'as -j5 dans le MAKEOPTS et --jobs=3 pour emerge, ça te fait au max 15 compilations simultanées, ce qui fait pas mal monter la charge, donc c'est là que l'option --load-average d'emerge est utile, parce qu'il ne va pas lancer trop d'emerge simultanés si la charge devient trop haute, il limitera à 1 ou 2 emerge en fonction... Et là tu vas te demander quel intérêt dans ce cas si c'est au final ça fasse moins de compilation parallèle que prévu à la base ? Bah c'est genre que pendant qu'un package perd du temps considérable sur un ./configure ou sur de la copie de fichiers en fin d'install et tout, t'atteint pas forcément les 15 compilations simultanés qui te tuent la charge, les autres packages profitent quand même de leur -j5 et peuvent compiler joyeusement tranquillement, donc ya un gain de temps et tout... (j'ai du mal à m'exprimer sur la chose, j'espère que t'arrives à voir où je veux en venir ;p).

Et sinon, nan, comme expliqué plus haut, le niceness n'a rien à voir avec la charge, donc l'option --load-average ne dispense pas du PORTAGE_NICESS dans le make.conf, ce nice te permet toujours de déprioritariser les travaux d'emerge par rapport aux autres activités de ta machine, ce qui te la garde réactive.
Back to top
View user's profile Send private message
Dismantr
Apprentice
Apprentice


Joined: 06 Jun 2007
Posts: 201

PostPosted: Wed Jul 30, 2008 1:29 pm    Post subject: Reply with quote

Ok, merci ! :)

Mais alors, pourquoi, si on suit Wikipédia sur le load average, ne pas mettre 2 plutot que 5 ? 5, ça correspond à la charge en simultané que peut support 5 processeurs à un instant donné, non ? Quel intérêt à maintenir une file d'attente ? (2.0=les deux proc pris à 100%, si j'ai bien compris) ?


... Je sais pas si je suis très clair, là...
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 8123
Location: ~Brussels - Belgique

PostPosted: Wed Jul 30, 2008 2:37 pm    Post subject: Reply with quote

hmm, pourquoi ne pas déplacer cette section "portage & parallel emerge" dans un vrai sujet, voire TIP ?
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
Leander256
l33t
l33t


Joined: 05 Jul 2003
Posts: 909
Location: Singapour

PostPosted: Wed Jul 30, 2008 5:25 pm    Post subject: Reply with quote

Génial! C'est quand même une fonctionnalité que j'attendais depuis des siècles (bien que n'ayant du dual core que depuis un an et demi)! Parce qu'on perd un temps fou dans les parties non parallélisables comme les ./configure, surtout depuis le morcellement du serveur X en dizaines de paquets.

Ce qui me fait un peu peur, c'est la consommation mémoire de g++ sur certaines compilations. J'ai mis à genoux ma machine de 4 Go en compilant kmail avec un azureus bien chargé et un virtualbox faisant tourner une session de 1 Go. Donc si jamais portage a le malheur de compiler kmail en même temps que wesnoth par exemple, ça risque d'être le drame!
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Wed Jul 30, 2008 7:26 pm    Post subject: Reply with quote

Dismantr wrote:
Ok, merci ! :)

Mais alors, pourquoi, si on suit Wikipédia sur le load average, ne pas mettre 2 plutot que 5 ? 5, ça correspond à la charge en simultané que peut support 5 processeurs à un instant donné, non ? Quel intérêt à maintenir une file d'attente ? (2.0=les deux proc pris à 100%, si j'ai bien compris) ?


... Je sais pas si je suis très clair, là...

Faut voir l'impact de la charge sur ta machine, en fonction de ton utilisation ça va pas forcément t'affecter. Perso ça m'arrive souvent de faire monter la charge de mon laptop à 10 et tout va bien, et j'ai déjà vu un serveur au boulot qui, à cause d'un daemon foireux qq part, était monté à plus de 300 de charge, et il restait pourtant tout autant réactif pour le boulot qu'il faisait ;p
Donc moi, je limite à 5 parce que je trouve ça suffisant pis voilà, question de choix personnel :)
Back to top
View user's profile Send private message
d2_racing
Bodhisattva
Bodhisattva


Joined: 25 Apr 2005
Posts: 13047
Location: Ste-Foy,Canada

PostPosted: Thu Jul 31, 2008 2:27 am    Post subject: Reply with quote

J'aurais jamais pensé que cette nouvelle ferait autant de posts :P
Back to top
View user's profile Send private message
Ezka
Guru
Guru


Joined: 17 Feb 2005
Posts: 352
Location: par là, mais vraiment ...

PostPosted: Thu Jul 31, 2008 5:47 am    Post subject: Reply with quote

Leander256 wrote:
Ce qui me fait un peu peur, c'est la consommation mémoire de g++ sur certaines compilations.


Essaye de compiler Boost ... avec un -j6 ... t'as besoin de rien d'autre pour flinguer 3Go de RAM :arrow:

Donc en gros en mettant --jobs 6 --load-average X on se retrouve avec 6 compilation de paquet en // avec autant de thread de compil pour chaque compilation spécifié dans le MAKEOPTS (soit dans mon cas ça ferait 36 ... beau avoir un quad, vais tirer le tout vers le bas /D ) ?
_________________
Ez.
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 8123
Location: ~Brussels - Belgique

PostPosted: Thu Jul 31, 2008 8:08 am    Post subject: Reply with quote

ou OpenOffice...

Bon, on se le splitte, ce thread-in-ze-thread ?
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
Dismantr
Apprentice
Apprentice


Joined: 06 Jun 2007
Posts: 201

PostPosted: Thu Jul 31, 2008 8:30 am    Post subject: Reply with quote

Ouais, c'est vrai ça ! :mrgreen: : Geekounet ? Yoyo ? KernelSensei ? :cry: nirf, y'en a qui ont des vacances :cry: :cry: :cry: !

:mrgreen: :mrgreen: :mrgreen:
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Thu Jul 31, 2008 8:55 am    Post subject: Reply with quote

Ouais heureusement que j'ai des vacances hein :lol:
C'est fait ;)

Et au passage, pour ceux qui l'ont toujours pas vu, ya plein d'autres nouveaux features dans Portage 2.2 ;) (ya les sets qui sont intéressant et dont on avait causé auparavant ici, et le preserve-rebuild est sympa aussi mais il a encore qq bugs...)
Back to top
View user's profile Send private message
mrpouet
Retired Dev
Retired Dev


Joined: 29 Jul 2008
Posts: 87
Location: Bordeaux, France

PostPosted: Thu Jul 31, 2008 10:18 am    Post subject: Reply with quote

Leander256 wrote:
Génial! C'est quand même une fonctionnalité que j'attendais depuis des siècles (bien que n'ayant du dual core que depuis un an et demi)! Parce qu'on perd un temps fou dans les parties non parallélisables comme les ./configure, surtout depuis le morcellement du serveur X en dizaines de paquets.

Ce qui me fait un peu peur, c'est la consommation mémoire de g++ sur certaines compilations. J'ai mis à genoux ma machine de 4 Go en compilant kmail avec un azureus bien chargé et un virtualbox faisant tourner une session de 1 Go. Donc si jamais portage a le malheur de compiler kmail en même temps que wesnoth par exemple, ça risque d'être le drame!


Heureux de constater que je ne suis pas le seul a avoir des performances étranges lors de certaines compilations, notamment qt4 l'autre jours je suis monté jusqu'a 95% de la ram utilisée (1go de DDR2 au total) avec seulement un terminal + xchat, je me suis retrouvé du coup swapé à 25 %.

le plus étrange c'est que avec gcc je dépasse pas les ~35-40%, niveau cpu par contre çà tourne normalement , mais coté mémoire qu'est ce que çà bouffe.

le coup de l'emerge en parallel peut être intérèssant pour gcc celà dit à tester :wink:
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
Goto page 1, 2  Next
Page 1 of 2

 
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