C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Temp quand tu nous tiens...
Goto page 1, 2  Next
 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
bruckner.olivier@tiscali.
Guest





PostPosted: Sun May 16, 2004 12:01 pm    Post subject: Temp quand tu nous tiens... Reply with quote



Bonjour !

Me balladant sur différents forums, site internet etc, j'ai remarqué
qu'un critère me semblait crucial au yeux des programmeurs qui préfere
le C au C++ (expecté un débat sur l'OO), Il s'agit du temp de compilation.

Je suis d'accord que le C est plus vite compilé que le C++, mais je me
demande pourquoi y attacher tant d'importance, le programmeur est-il
impatient de nature ? personnellement je pense que le temp de
compilation n'es pas un paramètre crucial, j'entends par là que ce qui
doit se compiler se compilera (pas mal hein ?) et je demande donc si
l'impact sur un grand projet est sensible ou bien est-ce purement
quelque chose que l'on chéri en programmation ?

De mon point de vu celà me semble etre un faux argument (débutant) mais
j'aimerais avoir l'avis d'experts tels que vous.

Merci de m'éclairer.
Back to top
bruckner.olivier@tiscali.
Guest





PostPosted: Sun May 16, 2004 2:01 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote



Rémy wrote:
Quote:
bruckner.olivier (AT) tiscali (DOT) fr> a écrit dans le message de
news:40a8a977$0$13002$626a14ce (AT) news (DOT) free.fr...

Bonjour !

Me balladant sur différents forums, site internet etc, j'ai remarqué
qu'un critère me semblait crucial au yeux des programmeurs qui préfere
le C au C++ (expecté un débat sur l'OO), Il s'agit du temp de compilation.

Je suis d'accord que le C est plus vite compilé que le C++, mais je me
demande pourquoi y attacher tant d'importance, le programmeur est-il
impatient de nature ? personnellement je pense que le temp de
compilation n'es pas un paramètre crucial, j'entends par là que ce qui
doit se compiler se compilera (pas mal hein ?) et je demande donc si
l'impact sur un grand projet est sensible ou bien est-ce purement
quelque chose que l'on chéri en programmation ?

De mon point de vu celà me semble etre un faux argument (débutant) mais
j'aimerais avoir l'avis d'experts tels que vous.

Merci de m'éclairer.


Bonjour,

Ayant beaucoup développé en C et en C++ sur de gros projets, je peux dire
que c'est effectivement à mes yeux un mauvais argument.

Néanmoins, le temps de compilation peut devenir un problème pour la
productivité d'une équipe. J'ai travaillé sur un projet où la recompilation
de la totalité du code source prenait plus de huit heures sur un serveur
quadri-processeur. Eh bien, on évite d'avoir à modifier certains includes...

Rémy



Je connais un logiciel qui peux compenser le temp de compilation, celà
utilise le principe de calcul partagé.

http://www.xoreax.com/main.htm

Je vais le tester car j'ai la chance de posséder plusieurs ordinateurs
et d'un réseau. peut etre est-ce une bonne solution alternative pour les
entreprise ?

Back to top
Rémy
Guest





PostPosted: Mon May 17, 2004 12:52 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote




<bruckner.olivier (AT) tiscali (DOT) fr> a écrit dans le message de
news:40a8a977$0$13002$626a14ce (AT) news (DOT) free.fr...
Quote:
Bonjour !

Me balladant sur différents forums, site internet etc, j'ai remarqué
qu'un critère me semblait crucial au yeux des programmeurs qui préfere
le C au C++ (expecté un débat sur l'OO), Il s'agit du temp de compilation.

Je suis d'accord que le C est plus vite compilé que le C++, mais je me
demande pourquoi y attacher tant d'importance, le programmeur est-il
impatient de nature ? personnellement je pense que le temp de
compilation n'es pas un paramètre crucial, j'entends par là que ce qui
doit se compiler se compilera (pas mal hein ?) et je demande donc si
l'impact sur un grand projet est sensible ou bien est-ce purement
quelque chose que l'on chéri en programmation ?

De mon point de vu celà me semble etre un faux argument (débutant) mais
j'aimerais avoir l'avis d'experts tels que vous.

Merci de m'éclairer.

Bonjour,

Ayant beaucoup développé en C et en C++ sur de gros projets, je peux dire
que c'est effectivement à mes yeux un mauvais argument.

Néanmoins, le temps de compilation peut devenir un problème pour la
productivité d'une équipe. J'ai travaillé sur un projet où la recompilation
de la totalité du code source prenait plus de huit heures sur un serveur
quadri-processeur. Eh bien, on évite d'avoir à modifier certains includes...

Rémy



Back to top
Rémy
Guest





PostPosted: Mon May 17, 2004 2:16 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote


<bruckner.olivier (AT) tiscali (DOT) fr> a écrit dans le message de
news:40a8c5c3$0$13006$626a14ce (AT) news (DOT) free.fr...
Quote:
Rémy wrote:
[email]bruckner.olivier (AT) tiscali (DOT) fr[/email]> a écrit dans le message de
news:40a8a977$0$13002$626a14ce (AT) news (DOT) free.fr...

Bonjour !

Me balladant sur différents forums, site internet etc, j'ai remarqué
qu'un critère me semblait crucial au yeux des programmeurs qui préfere
le C au C++ (expecté un débat sur l'OO), Il s'agit du temp de
compilation.

Je suis d'accord que le C est plus vite compilé que le C++, mais je me
demande pourquoi y attacher tant d'importance, le programmeur est-il
impatient de nature ? personnellement je pense que le temp de
compilation n'es pas un paramètre crucial, j'entends par là que ce qui
doit se compiler se compilera (pas mal hein ?) et je demande donc si
l'impact sur un grand projet est sensible ou bien est-ce purement
quelque chose que l'on chéri en programmation ?

De mon point de vu celà me semble etre un faux argument (débutant) mais
j'aimerais avoir l'avis d'experts tels que vous.

Merci de m'éclairer.


Bonjour,

Ayant beaucoup développé en C et en C++ sur de gros projets, je peux
dire
que c'est effectivement à mes yeux un mauvais argument.

Néanmoins, le temps de compilation peut devenir un problème pour la
productivité d'une équipe. J'ai travaillé sur un projet où la
recompilation
de la totalité du code source prenait plus de huit heures sur un serveur
quadri-processeur. Eh bien, on évite d'avoir à modifier certains
includes...

Rémy



Je connais un logiciel qui peux compenser le temp de compilation, celà
utilise le principe de calcul partagé.

http://www.xoreax.com/main.htm

Je vais le tester car j'ai la chance de posséder plusieurs ordinateurs
et d'un réseau. peut etre est-ce une bonne solution alternative pour les
entreprise ?


A condition de développer sous Windows ;-(

Rémy



Back to top
Laurent Deniau
Guest





PostPosted: Mon May 17, 2004 2:19 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote

Rémy wrote:
Quote:
bruckner.olivier (AT) tiscali (DOT) fr> a écrit dans le message de
news:40a8a977$0$13002$626a14ce (AT) news (DOT) free.fr...

Bonjour !

Me balladant sur différents forums, site internet etc, j'ai remarqué
qu'un critère me semblait crucial au yeux des programmeurs qui préfere
le C au C++ (expecté un débat sur l'OO), Il s'agit du temp de compilation.

Je suis d'accord que le C est plus vite compilé que le C++, mais je me
demande pourquoi y attacher tant d'importance, le programmeur est-il
impatient de nature ? personnellement je pense que le temp de
compilation n'es pas un paramètre crucial, j'entends par là que ce qui
doit se compiler se compilera (pas mal hein ?) et je demande donc si
l'impact sur un grand projet est sensible ou bien est-ce purement
quelque chose que l'on chéri en programmation ?

De mon point de vu celà me semble etre un faux argument (débutant) mais
j'aimerais avoir l'avis d'experts tels que vous.

Merci de m'éclairer.


Bonjour,

Ayant beaucoup développé en C et en C++ sur de gros projets, je peux dire
que c'est effectivement à mes yeux un mauvais argument.

Néanmoins, le temps de compilation peut devenir un problème pour la
productivité d'une équipe. J'ai travaillé sur un projet où la recompilation
de la totalité du code source prenait plus de huit heures sur un serveur
quadri-processeur. Eh bien, on évite d'avoir à modifier certains includes...

Si cela est vraiment un probleme, lire

Large-Scale C++ Software Design
http://www.awprofessional.com/titles/0-201-63362-0/

peu apporter de nombreux conseils interessant si le design n'est pas fige.

a+, ld.

Back to top
Christophe de VIENNE
Guest





PostPosted: Mon May 17, 2004 2:40 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote

Rémy wrote:
Quote:
bruckner.olivier (AT) tiscali (DOT) fr> a écrit dans le message de
news:40a8c5c3$0$13006$626a14ce (AT) news (DOT) free.fr...
Je connais un logiciel qui peux compenser le temp de compilation, celà
utilise le principe de calcul partagé.

http://www.xoreax.com/main.htm

Je vais le tester car j'ai la chance de posséder plusieurs ordinateurs
et d'un réseau. peut etre est-ce une bonne solution alternative pour les
entreprise ?



A condition de développer sous Windows ;-(


En solution libre sous unix il y a distcc.
Il existe aussi ccache qui le complète très bien.
Perso j'utilise les deux et je gagne des heures et des heures de compilo
chaque semaine...


--
Christophe

Back to top
Fabien LE LEZ
Guest





PostPosted: Mon May 17, 2004 5:50 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote

On Sun, 16 May 2004 14:01:14 +0200, "bruckner.olivier (AT) tiscali (DOT) fr"
<bruckner.olivier (AT) tiscali (DOT) fr> wrote:

Quote:
Me balladant sur différents forums, site internet etc, j'ai remarqué
qu'un critère me semblait crucial au yeux des programmeurs qui préfere
le C au C++ (expecté un débat sur l'OO), Il s'agit du temp de compilation.

Ça me paraît passablement douteux, comme critère. Si c'est ça que les
afficionados du C prennent comme argument, le C++ a de beaux jours
devant lui :-)

Le temps de compilation est important sur de gros projets ; aussi
existe-t-il des méthodes pour le réduire, notamment un découpage
judicieux des .cpp et des .h, et un choix des headers à #inclure (si
on peut éviter un #include, on l'évite, par exemple par des
"forward-déclaration" -- du style,
class A;
au lieu de
#include "a.h"
)

Mais de là à modifier totalement le code (voire changer de langage) à
cause d'un temps de compilation trop élevé, il y a un sacré pas.

--
Wink
FLL, Epagneul Breton

Back to top
Fabien LE LEZ
Guest





PostPosted: Mon May 17, 2004 5:53 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote

On Sun, 16 May 2004 14:01:14 +0200, "bruckner.olivier (AT) tiscali (DOT) fr"
<bruckner.olivier (AT) tiscali (DOT) fr> wrote:

Quote:
Me balladant sur différents forums, site internet etc, j'ai remarqué

En me baladant sur différents sites web, j'ai remarqué que la majorité
des cours sur le C++ sont de très bas niveau (du style, le gars qui
croit qu'il maîtrise le C++ parce qu'il a écrit "class" au lieu de
"struct"). D'une manière générale, les conseils et infos qu'on trouve
sur le web sont à prendre avec des pincettes.

Bon réflexe, donc, de venir poser la question ici -- si tu racontes
une connerie, tu trouveras toujours quelqu'un pour démentir :-)

--
Wink
FLL, Epagneul Breton

Back to top
kanze@gabi-soft.fr
Guest





PostPosted: Tue May 18, 2004 9:03 am    Post subject: Re: Temp quand tu nous tiens... Reply with quote

Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote

Quote:
Rémy wrote:
[email]bruckner.olivier (AT) tiscali (DOT) fr[/email]> a écrit dans le message de
news:40a8c5c3$0$13006$626a14ce (AT) news (DOT) free.fr...
Je connais un logiciel qui peux compenser le temp de compilation,
celà utilise le principe de calcul partagé.

http://www.xoreax.com/main.htm

Je vais le tester car j'ai la chance de posséder plusieurs
ordinateurs et d'un réseau. peut etre est-ce une bonne solution
alternative pour les entreprise ?

A condition de développer sous Windows ;-(

En solution libre sous unix il y a distcc. Il existe aussi ccache qui
le complète très bien. Perso j'utilise les deux et je gagne des
heures et des heures de compilo chaque semaine...

En général, Unix offre les outils nécessaires pour l'implémenter
soi-même d'une façon assez simple ; je m'en suis servi déjà en 1993,
environ. Et certains autres « make » le font automatiquement --
clearmake, par exemple, si tu travailles sous Clearcase.

Le GNU make actuel lancerait plusieurs tâches en parallel, mais tous sur
la même machine. Il ne doit pas être trop difficile à précéder chaque
tâche par un préfixe qui le fait exécuter sur une autre machine.

D'après mon expérience, souvent, c'est aussi le temps du reseau qui
importe, et non seulement le temps CPU. À un client, on a constater une
différence entre plus de deux heures, et vingt minutes, pour une édition
de lien, selon que l'édition de lien s'exécutait sur le serveur, ou sur
une machine quelconque. On utilisait un système à prefixe, comme
ci-dessus, pour faire executer toutes les éditions de liens sur le
serveur. Une à la fois, pour ne pas surcharger le serveur. Aussi, on
maintenait une copie locale sur chaque machine de tous les en-têtes
commun (et qui n'évoluaient pas).

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Back to top
Christophe de VIENNE
Guest





PostPosted: Tue May 18, 2004 9:15 am    Post subject: Re: Temp quand tu nous tiens... Reply with quote

[email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
Quote:
Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote in message
news:<newscache$oo4vxh$084$1 (AT) guronzan (DOT) alphacent.com>...

En solution libre sous unix il y a distcc. Il existe aussi ccache qui
le complète très bien. Perso j'utilise les deux et je gagne des
heures et des heures de compilo chaque semaine...



[...]

Quote:
Le GNU make actuel lancerait plusieurs tâches en parallel, mais tous sur
la même machine. Il ne doit pas être trop difficile à précéder chaque
tâche par un préfixe qui le fait exécuter sur une autre machine.

Et le préfixe le + simple c'est 'distcc', qui envoit le fichier une fois
passé par le préprocesseur vers une des machines du pool.

Quote:

[...]
Aussi, on
maintenait une copie locale sur chaque machine de tous les en-têtes
commun (et qui n'évoluaient pas).

Le gros avantage de distcc est qu'il ne necessite pas la recopie des
entêtes sur toutes les machines de la "ferme". Et sa mise en place est
d'une simplicité enfantine, d'autant plus qu'il est présent dans la
plupart des distributions de linux.
On peut même faire relativement facilement du cross-compiling, par
exemple utiliser des machines sous linux pour compiler des programmes
windows (avec mingw), ou bien l'inverse.


--
Christophe

Back to top
kanze@gabi-soft.fr
Guest





PostPosted: Tue May 18, 2004 3:57 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote

Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote

Quote:
kanze (AT) gabi-soft (DOT) fr wrote:
Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote in message
news:<newscache$oo4vxh$084$1 (AT) guronzan (DOT) alphacent.com>...

En solution libre sous unix il y a distcc. Il existe aussi ccache
qui le complète très bien. Perso j'utilise les deux et je gagne des
heures et des heures de compilo chaque semaine...

[...]

Le GNU make actuel lancerait plusieurs tâches en parallel, mais tous
sur la même machine. Il ne doit pas être trop difficile à précéder
chaque tâche par un préfixe qui le fait exécuter sur une autre
machine.

Et le préfixe le + simple c'est 'distcc', qui envoit le fichier une
fois passé par le préprocesseur vers une des machines du pool.

Mais quel est alors l'intérêt ? C'est souvent la lecture des fichiers
d'en-têtes qui prend le plus de temps. Et la sortie du préprocesseur, ça
fait des fichiers d'une certaine taille, qu'on balance en plus sur le
reseau.

Je suppose que ça dépend de la configuration, mais chaque fois que j'ai
eu des problèmes des temps de compilation, le problème était le reseau,
et non le compilateur. (Mais c'était avant l'époque de tout est un
template ; avec les templates, je crois que le compilateur a bien plus à
faire aussi.)

Quote:
[...]
Aussi, on maintenait une copie locale sur chaque machine de tous les
en-têtes commun (et qui n'évoluaient pas).

Le gros avantage de distcc est qu'il ne necessite pas la recopie des
entêtes sur toutes les machines de la "ferme".

Mais puisque toutes les machines de la ferme sont aussi des machines de
dévelopement, ou bien on récopie, ou bien la majorité des gens font le
préprocessesseur sur une autre machine qu'où il y a des en-têtes, ou
bien toutes les machines ont leur copie des en-têtes.

Je suppose qu'il y a des cas où c'est intéressant, mais c'est toujours
assez limité par rapport à ce que fait par exemple ClearMake.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Back to top
Rémy
Guest





PostPosted: Tue May 18, 2004 4:09 pm    Post subject: Re: Temp quand tu nous tiens... Reply with quote


<kanze (AT) gabi-soft (DOT) fr> a écrit dans le message de
news:d6652001.0405180757.209261ed (AT) posting (DOT) google.com...
Quote:
Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote in message
news:<newscache$kakwxh$bom$1 (AT) guronzan (DOT) alphacent.com>...
[email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote in message
news:<newscache$oo4vxh$084$1 (AT) guronzan (DOT) alphacent.com>...

En solution libre sous unix il y a distcc. Il existe aussi ccache
qui le complète très bien. Perso j'utilise les deux et je gagne des
heures et des heures de compilo chaque semaine...

[...]

Le GNU make actuel lancerait plusieurs tâches en parallel, mais tous
sur la même machine. Il ne doit pas être trop difficile à précéder
chaque tâche par un préfixe qui le fait exécuter sur une autre
machine.

Et le préfixe le + simple c'est 'distcc', qui envoit le fichier une
fois passé par le préprocesseur vers une des machines du pool.

Mais quel est alors l'intérêt ? C'est souvent la lecture des fichiers
d'en-têtes qui prend le plus de temps. Et la sortie du préprocesseur, ça
fait des fichiers d'une certaine taille, qu'on balance en plus sur le
reseau.

Je suppose que ça dépend de la configuration, mais chaque fois que j'ai
eu des problèmes des temps de compilation, le problème était le reseau,
et non le compilateur. (Mais c'était avant l'époque de tout est un
template ; avec les templates, je crois que le compilateur a bien plus à
faire aussi.)


J'ai eu beaucoup de déconvenues en essayant de paralléliser des compilations
avec des templates. Chaque compilateur a sa façon de gérer les
instanciations et utilise des fichiers temporaires "personnels" pour éviter
de recompiler ce qui a déjà été compilé.

La compilation en parallèle sur un multiprocesseur nous amenait à des
erreurs de link car les instances de compilateurs ne coopèrent pas entre
elles pour la gestion des fichiers temporaires.
La compilation distribuée fait perdre tout l'intérêt de la compilation
unique du code du template : chaque machine du parc recompile les templates
dont elle a besoin...

(Mon expérience sur Solaris, HP-UX et Tru-64)

Rémy



Back to top
Christophe de VIENNE
Guest





PostPosted: Tue May 18, 2004 4:20 pm    Post subject: [HS] compilation répartie Reply with quote

[email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
Quote:
Le GNU make actuel lancerait plusieurs tâches en parallel, mais tous
sur la même machine. Il ne doit pas être trop difficile à précéder
chaque tâche par un préfixe qui le fait exécuter sur une autre
machine.


Et le préfixe le + simple c'est 'distcc', qui envoit le fichier une
fois passé par le préprocesseur vers une des machines du pool.


Mais quel est alors l'intérêt ? C'est souvent la lecture des fichiers
d'en-têtes qui prend le plus de temps. Et la sortie du préprocesseur, ça
fait des fichiers d'une certaine taille, qu'on balance en plus sur le
reseau.


La lecture ou bien l'interprétation des fichiers d'entêtes ? Le
préprocessing en lui-même est assez rapide je crois.
De plus sur un réseau local à 100Mb passer des fichiers de quelques
centaines de ko c'est presque négligeable comme temps (moins d'une
seconde en général) alors que la compilation d'un .o en c++ peut prendre
plusieurs dizaines de secondes.

Quote:
Je suppose que ça dépend de la configuration, mais chaque fois que j'ai
eu des problèmes des temps de compilation, le problème était le reseau,
et non le compilateur. (Mais c'était avant l'époque de tout est un
template ; avec les templates, je crois que le compilateur a bien plus à
faire aussi.)


Je te garanti que sur toutes les applications que je compile avec je
gagne un temps fou. Même le kernel linux, qui n'a évidement pas de
templates, compile plus vite en réparti avec distcc.
L'idée c'est de toujours avoir plus de jobs que de machines. Ainsi le
traffic réseau est fait alors que toutes les machines sont en train de
compiler. On ne perds du temps qu'à l'entrée et la sortie d'un dossier
(avec gnu make).


Quote:
Le gros avantage de distcc est qu'il ne necessite pas la recopie des
entêtes sur toutes les machines de la "ferme".

Mais puisque toutes les machines de la ferme sont aussi des machines de
dévelopement, ou bien on récopie, ou bien la majorité des gens font le
préprocessesseur sur une autre machine qu'où il y a des en-têtes, ou
bien toutes les machines ont leur copie des en-têtes.


Justement, dans ma société toutes les machines de la ferme ne sont pas
forcément des machines de developpement (j'utilise le temps processeurs
d'autres machines peu solicitées, et des postes de travail des
développeurs). De plus toutes les machines de développement ne
travaillent pas forcément pour le même produit et donc n'ont pas
toujours toutes les bibliothèques nécessaires d'installées.

Quote:
Je suppose qu'il y a des cas où c'est intéressant, mais c'est toujours
assez limité par rapport à ce que fait par exemple ClearMake.

Tu devrais essayer, je suis sûr que tu ne pourras plus t'en passer Smile
cf http://distcc.samba.org/

--
Christophe

Back to top
kanze@gabi-soft.fr
Guest





PostPosted: Wed May 19, 2004 6:31 am    Post subject: Re: Temp quand tu nous tiens... Reply with quote

"Rémy" <remy.bertrand (AT) cgeyt (DOT) com> wrote

Quote:
kanze (AT) gabi-soft (DOT) fr> a écrit dans le message de
news:d6652001.0405180757.209261ed (AT) posting (DOT) google.com...
Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote in message
news:<newscache$kakwxh$bom$1 (AT) guronzan (DOT) alphacent.com>...
[email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
Christophe de VIENNE <cdevienne (AT) alphacent (DOT) com> wrote in message
news:<newscache$oo4vxh$084$1 (AT) guronzan (DOT) alphacent.com>...

En solution libre sous unix il y a distcc. Il existe aussi
ccache qui le complète très bien. Perso j'utilise les deux et
je gagne des heures et des heures de compilo chaque semaine...

[...]

Le GNU make actuel lancerait plusieurs tâches en parallel, mais
tous sur la même machine. Il ne doit pas être trop difficile à
précéder chaque tâche par un préfixe qui le fait exécuter sur
une autre machine.

Et le préfixe le + simple c'est 'distcc', qui envoit le fichier
une fois passé par le préprocesseur vers une des machines du pool.

Mais quel est alors l'intérêt ? C'est souvent la lecture des
fichiers d'en-têtes qui prend le plus de temps. Et la sortie du
préprocesseur, ça fait des fichiers d'une certaine taille, qu'on
balance en plus sur le reseau.

Je suppose que ça dépend de la configuration, mais chaque fois que
j'ai eu des problèmes des temps de compilation, le problème était le
reseau, et non le compilateur. (Mais c'était avant l'époque de tout
est un template ; avec les templates, je crois que le compilateur a
bien plus à faire aussi.)

J'ai eu beaucoup de déconvenues en essayant de paralléliser des
compilations avec des templates. Chaque compilateur a sa façon de
gérer les instanciations et utilise des fichiers temporaires
"personnels" pour éviter de recompiler ce qui a déjà été compilé.

Intéressante observation. Mon expérience avec la compilation répartie
date d'avant les templates. Je n'ai donc constaté aucun problème.

Je crois que les problèmes dépendraient de l'implémentation des
templates -- je ne crois pas que la façon que procède g++, par exemple,
poserait un problème.

Je serais intéressé comment ClearCase résoud ce problème. En tant que
produit commerciel qui supporte (ou supportait) la compilation répartie
d'office, il faudrait bien qu'ils aient une solution.

Quote:
La compilation en parallèle sur un multiprocesseur nous amenait à des
erreurs de link car les instances de compilateurs ne coopèrent pas
entre elles pour la gestion des fichiers temporaires. La compilation
distribuée fait perdre tout l'intérêt de la compilation unique du code
du template : chaque machine du parc recompile les templates dont elle
a besoin...

(Mon expérience sur Solaris, HP-UX et Tru-64)

Avec les compilateurs du constructeur, je suppose. Ni g++ ni les
compilateurs Windows ne se servent d'un « repository ».

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Back to top
Jean-Marc Bourguet
Guest





PostPosted: Wed May 19, 2004 6:49 am    Post subject: Re: Temp quand tu nous tiens... Reply with quote

[email]kanze (AT) gabi-soft (DOT) fr[/email] writes:

Quote:
Je serais intéressé comment ClearCase résoud ce problème. En tant
que produit commerciel qui supporte (ou supportait) la compilation
répartie d'office, il faudrait bien qu'ils aient une solution.

Je crois l'avoir deja ecrit: mal, tres mal. On a du filouter avec
SparcWorks et perdre l'interet de son modele de "repository" pour les
templates en suivant a peu pres la doc de ClearCase la-dessus. Pour
les autres compilateurs, on utilisait le mode a la Borland ou on met
tous dans les objets et laisse le linker jeter ce qui est inutile.

Quote:
La compilation en parallèle sur un multiprocesseur nous amenait à des
erreurs de link car les instances de compilateurs ne coopèrent pas
entre elles pour la gestion des fichiers temporaires. La compilation
distribuée fait perdre tout l'intérêt de la compilation unique du code
du template : chaque machine du parc recompile les templates dont elle
a besoin...

(Mon expérience sur Solaris, HP-UX et Tru-64)

Avec les compilateurs du constructeur, je suppose. Ni g++ ni les
compilateurs Windows ne se servent d'un « repository ».

HP non plus. Ils ont un mode a la borland/g++ et un mode similaire a
Como (on affecte les instanciations a des objets qu'on recompile au
moment du link, l'assignation est persistante et donc lors des
compilations ulterieures on evite la recompilation sauf lors de
changements importants de structure ou on doit effacer les fichiers
decrivant l'assignation pour arriver a linker) que nous n'utilisions
pas.

Le traitement des templates en C++ est le defaut majeur de ClearCase.

Malgre cela, je regrette de devoir parle au passe de ClearCase, cela
fait deux ans que je suis sur un projet qui utilise un outil interne
base sur RCS et qui est en train de passer sur CVS et non sur
ClearCase pour des raisons politiques plus que techniques (meme pas
financieres, on a les licences ClearCase...Sad)

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.