#!/bin/csh ####################################################################################################################################### # # # C O M P I L A T I O N G E N E R A L E D E S B I B L I O T H E Q U E S : # # # # # # Utilisation : # # # # $xb/GENERE$Z [<CKonstantes> [<CDerivFormel> [<GListeFonctions> [<CommandeCompilation> [<GArgAriExt>]]]]] # # # # # # Nota sur la duree d'execution : # # # # CMAP28 : # # # # 20080115141616 01:20:?? # # 20090111183623 01:32:?? # # # # Apres le remplacement de "trinite.polytechnique.fr" par "europe.polytechnique.fr" (='$CMAP28', # # 'v $Fmachines 20090316110150') qui est un quadri-coeur : # # # # 20090318094507 00:15:?? # # 20100406172718 00:29:?? (sur 'villiers.polytechnique.fr' et '$xTG' # # dans '/home2') # # 20100406181233 00:22:?? (sur 'villiers.polytechnique.fr' et '$xTG' # # dans '/home') # # 20100522130028 00:10:?? (sur 'abbesses.polytechnique.fr' qui est un 8-coeur) # # 20101118135625 00:22:?? (sur 'grenelle.polytechnique.fr') # # # # Apres l'introduction de '$FindExec_InverserOrdre' : # # # # 20101118175525 00:20:?? (sur 'grenelle.polytechnique.fr') # # # # Apres suppression de '$FindExec_InverserOrdre' et d'autres choses : # # # # 20101120095837 00:16:?? (sur 'grenelle.polytechnique.fr') # # 20110601111609 00:20:?? (sur 'courcelle.polytechnique.fr') # # # # Apres les modifications 'v $xEa/PhasCriB$vv$Y 20110927130019' et 'v $xE/.alias.2$vv$Y 20110927163000' : # # # # 20110927174443 00:26:?? (sur 'courcelle.polytechnique.fr') # # 20110928092009 00:24:?? (sur 'courcelle.polytechnique.fr' en forcant # # "a la main" '$FindExec_InverserOrdre') # # # # 20160815180914 00:19:04 (sur 'vaugirard.polytechnique.fr') # # 20170124144315 00:21:18 (sur 'vaugirard.polytechnique.fr') # # 20170405122028 00:20:08 (sur 'vaugirard.polytechnique.fr') # # 20170519162857 00:27:43 (sur 'vaugirard.polytechnique.fr') # # 20170520111050 00:17:01 (sur 'vaugirard.polytechnique.fr') # # 20170522101149 00:17:47 (sur 'vaugirard.polytechnique.fr') # # 20170710112222 00:10:45 (sur 'porte-de-la-chapelle.polytechnique.fr' sans # # compiler '$xcp/Konstantes$K a cause de # # 'v $xcc/cl$Z ne.peut.s.executer.sur') # # # # Apres 'v $xiiD/definit.2$DEF 20170715111607' : # # # # 20170715144550 00:07:28 (sur 'porte-brancion.polytechnique.fr' sans # # compiler '$xcp/Konstantes$K a cause de # # 'v $xcc/cl$Z ne.peut.s.executer.sur') # # # # Apres 'v $xb/GENERE$Z 20170716102643' : # # # # 20170716124805 00:08:25 (sur 'porte-brancion.polytechnique.fr' sans # # compiler '$xcp/Konstantes$K a cause de # # 'v $xcc/cl$Z ne.peut.s.executer.sur') # # 20180105101928 00:06:27 (sur 'porte-brancion.polytechnique.fr' sans # # compiler '$xcp/Konstantes$K a cause de # # 'v $xcc/cl$Z ne.peut.s.executer.sur') # # 20180315141404 00:10:44 (sur 'porte-brancion.polytechnique.fr') # # 20180320155313 00:10:56 (sur 'porte-brancion.polytechnique.fr') # # 20180322113304 00:10:59 (sur 'porte-brancion.polytechnique.fr') # # # # Apres 'v $xb/GENERE$Z 20180402102346' : # # # # 20180403123412 00:14:50 (sur 'porte-brancion.polytechnique.fr') # # 20180403172458 00:14:39 (sur 'porte-brancion.polytechnique.fr') # # 20180409111837 00:14:17 (sur 'porte-brancion.polytechnique.fr') # # 20190211120804 00:24:20 (sur 'porte-brancion.polytechnique.fr') # # 20190724154420 00:26:38 (sur 'porte-brancion.polytechnique.fr') # # 20210226080952 00:20:19 (sur 'porte-brancion.polytechnique.fr') # # # # Apres la modification 'v $xcc/cb$Z soname=' : # # # # 20211217171920 00:19:39 (sur 'porte-brancion.polytechnique.fr') # # 20230324130149 00:15:31 (sur 'republique.polytechnique.fr') # # 20231130123518 00:15:37 (sur 'republique.polytechnique.fr') # # 20240626122011 00:14:41 (sur 'republique.polytechnique.fr') # # # # # # LACT15 : # # # # 20070914112112 01:15:?? # # 20071117165934 01:19:?? # # 20080924143433 01:42:?? # # # # # # LACT16 : # # # # 20070918113859 00:50:?? # # 20090318105220 00:56:?? [1] # # 20101108102809 01:48:?? [2] # # 20101122143636 01:31:?? # # # # # # LACT17 : # # # # 20071005170900 01:20:?? # # 20071117164427 01:24:?? # # 20080821114554 01:38:?? # # 20080923182542 01:35:?? # # 20090313095928 01:40:?? # # 20091117183054 02:05:?? # # 20100211113004 02:24:?? # # 20100317185353 02:26:?? # # 20101229131652 02:11:?? # # 20130317152457 02:11:?? # # # # # # LACT18 : # # # # 20071125185805 00:40:?? # # 20090117102153 00:30:?? [3] (apres 'v $xcg/FindExec.01$Z 20090115173510') # # 20090119182550 00:27:?? [4] (apres 'v $xcg/FindExec.01$Z ParalleleLinda') # # 20100317190016 00:24:?? [5] # # 20101118124950 00:46:?? # # 20101118182644 00:47:?? (apres l'introduction de '$FindExec_InverserOrdre') # # 20101118182644 00:45:?? (apres l'introduction de '$FindExec_InverserOrdre') # # 20101119080312 01:12:?? (avec FindExec_Parallele=$NEXIST pour tenter # # d'expliquer les valeurs inferieures ou egales # # a 00:30 obtenues anterieurement -voir [3,4,5]-) # # 20101119092747 00:46:?? (avec 'v $xcg/FindExec.01$Z parallele_14=VRAI' pour # # tenter d'expliquer les valeurs inferieures ou egales # # a 00:30 obtenues anterieurement -voir [3,4,5]-. On # # notera une augmentation brutale aussi entre [1] et # # [2]. D'autre part, la duree actuelle sur '$LACT18', # # de l'ordre de 00:45, est approximativement le double # # de ce qu'elle est sur '$CMAP28' avec deux fois plus # # de processeurs, ce qui est tres coherent. Ainsi, # # entre 20090318 -[1]- et 20101108 -[2]- quelque chose # # de "lourd" a du etre introduit : mais quoi ?) # # 20101119135450 00:39:?? (apres 'v $xiipf/fonction.3$FON 20101119132724') # # 20101119175555 00:38:?? # # 20101120094632 00:38:?? # # 20101229131410 00:40:?? # # 20110224160634 00:41:?? # # 20110601121416 00:42:?? # # 20110916174048 00:55:?? # # # # Apres les modifications 'v $xEa/PhasCriB$vv$Y 20110927130019' et 'v $xE/.alias.2$vv$Y 20110927163000' : # # # # 20110927182316 00:55:?? # # 20110928091028 00:53:?? (en forcant "a la main" '$FindExec_InverserOrdre') # # # # Apres la modification 'v $ximcd/operator$FON 20111204113520' : # # # # 20111206173559 00:53:?? # # # # # # LACT19 : # # # # 20111026183050 00:29:?? (avec ProcessorNumber=8) # # 20111027093040 00:22:?? (avec ProcessorNumber=4) # # 20111116214912 00:21:?? (avec ProcessorNumber=8) # # # # Apres la modification 'v $ximcd/operator$FON 20111204113520' : # # # # 20111204115028 00:17:?? (avec ProcessorNumber=8) # # # # Apres la modification 'v $xcc/cb$Z 20120623103901 : # # # # 20120623105623 00:20:?? (avec ProcessorNumber=8) # # 20120626172348 00:20:?? (avec ProcessorNumber=8) # # 20131205184451 00:22:?? (avec ProcessorNumber=8) # # 20131206171435 00:22:?? (avec ProcessorNumber=8) # # 20140922160751 00:19:?? (avec ProcessorNumber=8) # # 20160603153933 00:19:26 (avec ProcessorNumber=8) # # 20160604094557 00:19:27 (avec ProcessorNumber=8) # # 20160815175222 00:19:39 (avec ProcessorNumber=8) # # 20160913164021 00:18:20 (avec ProcessorNumber=8) # # 20161214133406 00:17:38 (avec ProcessorNumber=8) # # 20161223103700 00:16:46 (avec ProcessorNumber=8) # # 20161224101327 00:17:06 (avec ProcessorNumber=8) # # 20170402111419 00:17:49 (avec ProcessorNumber=8) # # 20170405121626 00:17:58 (avec ProcessorNumber=8) # # 20170519160536 00:16:54 (avec ProcessorNumber=8) # # 20170519162852 00:18:40 (avec ProcessorNumber=8) # # 20170519211626 00:17:40 (avec ProcessorNumber=8) # # 20170520110550 00:17:29 (avec ProcessorNumber=8) # # 20170521092802 00:17:39 (avec ProcessorNumber=8) # # 20170612115216 00:18:43 (avec ProcessorNumber=8) # # 20170710171758 00:18:26 (avec ProcessorNumber=8) # # 20170710180239 00:18:04 (avec ProcessorNumber=8) # # # # Apres 'v $xcc/cpp$Z 20170711093516' : # # # # 20170711175036 00:17:44 (avec ProcessorNumber=8) # # # # Apres 'v $xiiD/definit.2$DEF 20170715111607' : # # # # 20170715122440 00:16:52 (avec ProcessorNumber=8) # # 20170720083934 00:17:25 (avec ProcessorNumber=8) # # 20171219134211 00:16:47 (avec ProcessorNumber=8) # # 20180124175028 00:18:53 (avec ProcessorNumber=8) # # 20180315141355 00:20:15 (avec ProcessorNumber=8) # # 20180323180130 00:19:25 (avec ProcessorNumber=8) # # 20180325185324 00:19:27 (avec ProcessorNumber=8) # # # # Apres 'v $xb/GENERE$Z 20180402102346' : # # # # 20180404133640 00:22:13 (avec ProcessorNumber=8) # # 20180407113558 00:20:33 (avec ProcessorNumber=8) # # 20180413131526 00:20:59 (avec ProcessorNumber=8) # # 20180414080954 00:20:46 (avec ProcessorNumber=8) # # 20180425182650 00:20:49 (avec ProcessorNumber=8) # # 20180426092423 00:20:39 (avec ProcessorNumber=8) # # 20180428081450 00:20:35 (avec ProcessorNumber=8) # # 20181231162728 00:31:44 (avec ProcessorNumber=8) # # 20190202105950 00:32:47 (avec ProcessorNumber=8) # # 20190901101748 00:32:42 (avec ProcessorNumber=8) # # # # Apres la modification 'v $xb/GENERE$Z 20200413103739' : # # # # 20200414121700 00:36:03 (avec ProcessorNumber=8) # # # # Apres la modification 'v $xig/fonct$vv$DEF GENERE__FonctionF_UNI2_02_ALLEGEE' : # # # # 20201111121013 00:28:28 (avec ProcessorNumber=8) # # # # Apres les modifications 'v $xig/fonct$vv$DEF 20221101103441' : # # # # 20221101185747 00:35:09 (avec ProcessorNumber=8) # # 20240626121718 00:40:25 (avec ProcessorNumber=8) # # # # # # LACT1A : # # # # 20160813180700 00:10:23 (avec ProcessorNumber=8) # # 20160814081749 00:09:54 (avec ProcessorNumber=8) # # 20160815122224 00:09:52 (avec ProcessorNumber=8) # # 20160815175103 00:09:54 (avec ProcessorNumber=8) # # 20160913164024 00:09:46 (avec ProcessorNumber=8) # # 20161208112823 00:09:23 (avec ProcessorNumber=8) # # 20161216151828 00:09:40 (avec ProcessorNumber=8) # # 20161223103703 00:09:38 (avec ProcessorNumber=8) # # 20161224095352 00:09:36 (avec ProcessorNumber=8) # # 20161224101446 00:09:37 (avec ProcessorNumber=8) # # 20170402113855 00:10:13 (avec ProcessorNumber=8) # # 20170405123757 00:10:19 (avec ProcessorNumber=8) # # 20170520051659 00:10:20 (avec ProcessorNumber=8) # # 20170520105811 00:10:10 (avec ProcessorNumber=8) # # 20170521090950 00:10:25 (avec ProcessorNumber=8) # # 20170612203525 00:10:15 (avec ProcessorNumber=8) # # # # Apres 'v $xcc/cpp$Z 20170711093516' : # # # # 20170711135530 00:11:04 (avec ProcessorNumber=8) # # 20170711142238 00:11:06 (avec ProcessorNumber=8) # # 20170711153946 00:11:03 (avec ProcessorNumber=8) # # 20170711174511 00:11:02 (avec ProcessorNumber=8) # # 20170711182956 00:11:06 (avec ProcessorNumber=8) # # # # Apres 'v $xiiD/definit.2$DEF 20170715111607' : # # # # 20170715111856 00:10:43 (avec ProcessorNumber=8) # # # # Apres 'v $xb/GENERE$Z 20170716102643' : # # # # 20170716140718 00:10:42 (avec ProcessorNumber=8) # # 20170720084814 00:10:46 (avec ProcessorNumber=8) # # # # Apres 'v $xE/genere$vv$Z 20170722093635' : # # # # 20170722104108 00:06:39 (avec ProcessorNumber=8) # # 20170829121617 00:10:45 (avec ProcessorNumber=8) # # 20170830075848 00:10:45 (avec ProcessorNumber=8) # # 20171219181624 00:10:47 (avec ProcessorNumber=8) # # 20180104125743 00:11:35 (avec ProcessorNumber=8) # # 20180104132754 00:11:34 (avec ProcessorNumber=8) # # 20180124173527 00:11:38 (avec ProcessorNumber=8) # # 20180315153935 00:11:53 (avec ProcessorNumber=8) # # 20180321174435 00:11:49 (avec ProcessorNumber=8) # # 20180323125515 00:11:50 (avec ProcessorNumber=8) # # 20180324111441 00:11:48 (avec ProcessorNumber=8) # # 20180326181141 00:11:46 (avec ProcessorNumber=8) # # 20180328132557 00:11:46 (avec ProcessorNumber=8) # # 20180401113246 00:11:52 (avec ProcessorNumber=8) # # # # Apres 'v $xb/GENERE$Z 20180402102346' : # # # # 20180402110048 00:12:53 (avec ProcessorNumber=8) # # 20180403190403 00:12:59 (avec ProcessorNumber=8) # # 20180412153558 00:12:13 (avec ProcessorNumber=8) # # 20180413181748 00:12:18 (avec ProcessorNumber=8) # # 20180425181146 00:12:16 (avec ProcessorNumber=8) # # 20180426091137 00:12:16 (avec ProcessorNumber=8) # # 20180428075812 00:12:21 (avec ProcessorNumber=8) # # 20181231162720 00:18:31 (avec ProcessorNumber=8) # # 20190626120334 00:18:31 (avec ProcessorNumber=8) # # 20190724115632 00:18:31 (avec ProcessorNumber=8) # # 20190726111030 00:18:33 (avec ProcessorNumber=8) # # 20190902182317 00:18:38 (avec ProcessorNumber=8) # # 20190930132425 00:18:46 (avec ProcessorNumber=8) # # 20190930190138 00:18:47 (avec ProcessorNumber=8) # # 20190930192526 00:17:34 (avec ProcessorNumber=8, en testant l'ordre inverse # # via 'FindExec_InverserOrdre=$EXIST') # # # # Apres la re-introduction de '$FindExec_InverserOrdre' : # # # # 20191001111557 00:17:35 (avec ProcessorNumber=8) # # 20191001133036 00:17:31 (avec ProcessorNumber=8) # # 20200310182726 00:17:30 (avec ProcessorNumber=8) # # 20200324084815 00:17:28 (avec ProcessorNumber=8) # # # # Apres la modification 'v $xcc/cpp$Z 20200408142613' : # # # # 20200409203701 00:17:23 (avec ProcessorNumber=8) # # # # Apres la modification 'v $xb/GENERE$Z 20200413103739' : # # # # 20200414121706 00:23:25 (avec ProcessorNumber=8) # # # # Apres la modification 'v $xig/fonct$vv$DEF GENERE__FonctionF_UNI2_02_ALLEGEE' : # # # # 20201110204339 00:12:26 (avec ProcessorNumber=8) # # 20201112125336 00:12:26 (avec ProcessorNumber=8) # # 20210118144437 00:12:54 (avec ProcessorNumber=8) # # 20210226081907 00:15:00 (avec ProcessorNumber=8) # # 20220123091126 00:15:16 (avec ProcessorNumber=8) # # 20221202165249 00:15:03 (avec ProcessorNumber=8) # # 20221202174724 00:14:55 (avec ProcessorNumber=8) # # 20230324123631 00:15:13 (avec ProcessorNumber=8) # # 20230406132615 00:15:31 (avec ProcessorNumber=8) # # 20230809180233 00:15:33 (avec ProcessorNumber=8) # # 20240624204454 00:15:44 (avec ProcessorNumber=8) # # 20240626121300 00:15:47 (avec ProcessorNumber=8) # # 20240705101317 00:15:53 (avec ProcessorNumber=8) # # # # # # LACT1B : # # # # 20210902082319 00:17:13 (avec ProcessorNumber=16) # # 20210904115505 00:17:19 (avec ProcessorNumber=16) # # 20210906113149 00:18:40 (avec ProcessorNumber=8) # # # # Apres la modification 'v $xcc/cb$Z 20210909073237' : # # # # 20210909075244 00:15:59 (avec ProcessorNumber=16) # # 20210924152142 00:15:37 (avec ProcessorNumber=16) # # # # Apres la modification 'v $Fdirectories 20211208113640' : # # # # 20211212120515 00:15:14 (avec ProcessorNumber=16) # # # # Apres la modification 'v $xcc/cb$Z soname=' : # # # # 20211217143424 00:15:16 (avec ProcessorNumber=16) # # 20211220103639 00:15:11 (avec ProcessorNumber=16) # # 20221022122453 00:15:48 (avec ProcessorNumber=16) # # # # Apres les modifications 'v $xil/defi_c1$vv$DEF 20221028181016' et '$xcc/cpp$Z 20221029114820' : # # # # 20221029165622 00:15:40 (avec ProcessorNumber=16) # # 20221030182517 00:15:42 (avec ProcessorNumber=16) # # 20221114121650 00:17:43 (avec ProcessorNumber=16) # # 20221114130123 00:15:36 (avec ProcessorNumber=16) # # # # Apres l'introduction de 'v $xil/defi_K2$vv$DEF .define...MOYS.a.b.' : # # # # 20230123133632 00:14:46 (avec ProcessorNumber=16) # # 20230301095937 00:14:56 (avec ProcessorNumber=16) # # 20230406124355 00:15:00 (avec ProcessorNumber=16) # # 20230414190006 00:15:04 (avec ProcessorNumber=16) # # # # Apres l'introduction de 'v $xbii/alphabet.5$K' : # # # # 20230516153818 00:15:07 (avec ProcessorNumber=16) # # 20231130095851 00:15:02 (avec ProcessorNumber=16) # # 20240626132610 00:15:34 (avec ProcessorNumber=16) # # 20240924141252 00:15:13 (avec ProcessorNumber=16) # # # # # # # # Author of '$xb/GENERE$Z' : # # # # Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### source $xcc/PeutOnCompiler$vv$Y # Introduit le 20240713143238 depuis que la vraie '$CMAP28' est devenue incompatible au # # niveau des '$X's avec les fausses '$CMAP28's... # set CKonstantes=$1 # On recompile '$xcp/Konstantes$K' a priori (parametre introduit le 20081006091049). # set CDerivFormel=$2 # On genere 'v $ximd/DerivFormel.1$DEF' a priori (parametre introduit le 20101222095334). # set GListeFonctions=$3 set CommandeCompilation="$4" # Introduit le 20190930181849 afin, en particulier, de chronometrer (via 'duree') chaque # # compilation... # set GArgAriExt=$5 # Introduit le 20200413103739... # if ("$CKonstantes" == "$K_VIDE") then set CKonstantes=$EXIST # On recompile '$xcp/Konstantes$K' a priori (parametre introduit le 20081006091049). # else endif if ("$CDerivFormel" == "$K_VIDE") then set CDerivFormel=$EXIST # On genere 'v $ximd/DerivFormel.1$DEF' a priori (parametre introduit le 20101222095334). # else endif if ("$GListeFonctions" == "$K_VIDE") then set GListeFonctions=$EXIST # On genere 'v $LISTE_FonctionsPrivees' et 'v $LISTE_FonctionsSystemes' a priori # # (parametre introduit le 20120627145148). # else endif if ("$CommandeCompilation" == "$K_VIDE") then set CommandeCompilation=$xcc/cbg$Z else endif if ("$GArgAriExt" == "$K_VIDE") then set GArgAriExt=$EXIST # Introduit le 20200413103739... # else endif setenv TaillePaquetsDiviseur 1000 # Introduit le 20200329164702 afin que les paquets aient pour taille 1 et favoriser ainsi # # le parallelisme a cause de certains '$K's qui se compilent tres vites et d'autres tres # # lentement ('v $xbii/tri_image$K 20181118133107')... # if ($GListeFonctions == $EXIST) then # Test introduit le 20120627145148... # $xcc/GLFonctions$vv$Z $LISTE_FonctionsSystemes \ $LISTE_FonctionsPrivees \ $LISTE_ArgumentsImplicitesFonctionsPrivees # Introduit le 20120627145148 et complete le 20120628135532... # else endif if ($GArgAriExt == $EXIST) then # Test introduit le 20200413103739... # if ("$mHOTE" == "$mREFERENCE") then # Test introduit le 20200415111149... # ($xcg/GENERE$ARG$Z) ($xcg/GENERE$ARI$Z) ($xcg/GENERE$EXT$Z) # Generations introduites le 20200413103739 et complete le 20200414103714 avec '$ARI'... # # # # On notera la mise entre parentheses introduite le 20200413120449. En fait elle ne sert # # qu'a permettre une generation correcte de 'v $xiMd/xb_____GENERE$Z.$m4'. En effet, en # # leur absence des liens incorrects sont generes... # else endif else endif if ($CKonstantes == $EXIST) then # Test introduit le 20081006091049... # xcp $xcc/cl$Z Konstantes # Introduit le 20081005123027. C'est en effet beaucoup plus prudent : ainsi, par exemple # # la modification 'v $xiii/Images$DEF L_SUBSTITUTION_HISTOGRAMME' sans cette recompilation # # a cree quelques problemes a cette date... # saut 2 # Introduit le 20081009190627... # else endif if ($CDerivFormel == $EXIST) then # Test introduit le 20101222095334... # setenv ForcerDerivFormel $EXIST # Introduit le 20230301094727 pour forcer la generation de 'v $ximd/DerivFormel.1$DEF'... # $xi/DerivFormel$Z # Mis sous cette forme le 20101223082334... # unsetenv ForcerDerivFormel saut 2 else endif xb # Passage dans le directory "bibliotheques". # # ATTENTION, il y avait autrefois : # # # # echo "$Prompt""$Prompt""$Prompt""$Prompt" # # saut # # saut # # saut # # saut # # # # Ceci n'etait destine qu'a permettre un "copier-coller" des deux lignes "0/[Ee]rror/" et # # "0/[Ww]arning/" alors que le curseur de '$VI' est sur la premiere ligne ; cette derniere # # ne doit donc pas etre vide (ce que donnerait "saut" seul...), et contenir suffisamment de # # caracteres "espaces". Malheureusement, '$VI' se positionnait au bout de cette premiere # # ligne d'espaces (a la recherche du premier caractere non blanc...). La solution est donc # # de faire que le "titre" suivant sorte sur la premiere ligne... # echo "$Prompt""Compilation des bibliotheques :" echo "$Prompt""-----------------------------" source $xcc/GENERE$Y if ($?CONSERVE_c == $EXIST) then echo "ATTENTION : les fichiers de type '$c' sont conserves." echo "Alors..." answer else endif saut saut saut saut #20101119135123____:setenv FindExec_InverserOrdre $EXIST # #20190930183038____:setenv FindExec_InverserOrdre $EXIST # setenv FindExec_InverserOrdre $EXIST # Introduit le 20101118182346 pour favoriser le parallelisme. En effet, en particulier # # la librairie 'v $xbmcf/conformes$K' est tres longue a compiler, or elle se # # retrouvait en dernier sur l'une des branches paralleles, les autres branches etant alors # # inoccupees et le processus devenant sequentiel. Ainsi, en inversant l'ordre, j'espere # # faire du parallelisme jusqu'au bout, meme s'il s'agit d'un bricolage un peu specifique, # # mais je ne vois pas comment faire autrement... # # # # Le 20101119135123, j'annule cela grace a 'v $xiipf/fonction.3$FON 20101119132724'... # # # # Le 20190930171101, je l'ai retabli car, en effet, les fichiers les plus longs a compiler # # (tel 'v $xbii/tri_image$K PRAGMA_CPP_____AUTORISER_LE_GooF') sont compiles en parallele # # plutot au debut et non pas tous seuls a la fin... # # # # Le 20191001103120, je retabli '$FindExec_InverserOrdre' suite a des experiences faites # # sur '$LACT1A'. L'ensemble des '$K's de '$xb' (a l'exception de 'v $$xbg/allocation$K' # # et de 'v $xbg/fonction$K' qui ne peuvent etre recompiles en parallele...) ont ete # # compiles de trois facons differentes via 'v $xcg/ExecParallele.01$Z' : # # # # 20191001092956 Ordre alphabetique duree=00:15:17 # # 20191001100950 Ordre alphabetique inverse duree=00:14:09 # # 20191001095144 Ordre "durees decroissantes" duree=00:13:30 # # # # Il est evident que utiliser les "durees decroissantes" place en particulier # # 'v $xbii/tri_image$K' en tete des compilations, or c'est elle qui est la plus longue et # # on a donc interet a compiler ce '$K' en premier car, ainsi cette compilation se fera en # # parallele d'autres (beaucoup) plus courtes. Or malheureusement la generation de la liste # # des '$K's a compiler est faite par 'v $xcg/FindExec.01$Z' qui ne peut evidemment prendre # # en compte ces considerations. Un peu par hasard, il apparait que 'v $xbii/tri_image$K' # # figure parmi les derniers '$K's par ordre alphabetique et donc en inversant cet ordre, # # 'v $xbii/tri_image$K' se trouvera presque en tete... # # # # # # Voici les durees mesurees par 'v $xb/GENERE$Z $EXIST $EXIST $EXIST "duree $xcc/cbg$Z"' # # (le 20190930192526) par ordre decroissant : # # # # $xb/images/images/tri_image$K 00:12:22 # # # # $xb/mathematiques/complexes/fonctions/operator$K 00:04:11 # # $xb/images/images/pent_image$K 00:03:44 # # $xb/images/images/di_image$K 00:03:08 # # $xb/images/images/GooF_image$K 00:02:27 # # $xb/mathematiques/complexes/fonctions/conformes$K 00:02:26 # # $xb/images/images/di_album$K 00:02:12 # # $xb/mathematiques/complexes/fonctions/iterations$K 00:02:09 # # $xb/images/images/mono_image$K 00:01:49 # # $xb/images/images/quad_image$K 00:01:36 # # # # a partir d'ici, les '$K's dont les compilations sont parfaitement parallelisables car de # # faibles durees : # # # # $xb/images/images/alphabet.3$K 00:01:23 # # $xb/images/images/conversion$K 00:01:10 # # $xb/generales/edition$K 00:01:10 # # $xb/images/images/aleatoires.2$K 00:01:07 # # $xb/mathematiques/fonctions/aleatoires$K 00:01:04 # # $xb/images/images/alphabets$K 00:01:01 # # $xb/images/images/vecteurs$K 00:00:59 # # $xb/images/images/montagnes$K 00:00:58 # # $xb/images/images/scalaires$K 00:00:57 # # $xb/images/points/fonctions/fonction.2$K 00:00:56 # # $xb/images/images/entrees$K 00:00:56 # # $xb/images/drivers/X_Window/fonction$K 00:00:56 # # $xb/images/images/files$K 00:00:55 # # $xb/images/images/alphabet.4$K 00:00:53 # # $xb/mathematiques/complexes/fonctions/fonction$K 00:00:52 # # $xb/images/images/alphabet.1$K 00:00:52 # # $xb/mathematiques/complexes/fonctions/common$K 00:00:51 # # $xb/images/images/alphabet.2$K 00:00:49 # # $xb/images/images/alphabet.0$K 00:00:49 # # $xb/images/images/Images$K 00:00:48 # # $xb/images/images/ImagesF$K 00:00:47 # # $xb/generales/GooF_fonct$K 00:00:47 # # $xb/images/points/fonctions/fonction.3$K 00:00:46 # # $xb/images/niveaux/fonction.1$K 00:00:45 # # $xb/images/images/contours$K 00:00:44 # # $xb/images/images/aleatoires.1$K 00:00:43 # # $xb/mathematiques/complexes/fonctions/outils$K 00:00:42 # # $xb/images/drivers/alphanumerique/fonction$K 00:00:41 # # $xb/generales/common$K 00:00:41 # # $xb/mathematiques/fonctions/surfaces.1$K 00:00:40 # # $xb/mathematiques/fonctions/courbes.1$K 00:00:40 # # $xb/images/images/ImagesS$K 00:00:40 # # $xb/mathematiques/transformation/ondelettes$K 00:00:38 # # $xb/images/points/fonctions/fonction.1$K 00:00:38 # # $xb/images/images/mono_album$K 00:00:37 # # $xb/mathematiques/fonctions/trigoc$K 00:00:36 # # $xb/mathematiques/fonctions/nombres$K 00:00:36 # # $xb/mathematiques/transformation/fourier$K 00:00:35 # # $xb/mathematiques/fonctions/produits$K 00:00:35 # # $xb/images/drivers/solar/fonction$K 00:00:35 # # $xb/images/drivers/disk_video_P/fonction$K 00:00:34 # # $xb/images/drivers/cubi7/fonction.1$K 00:00:34 # # $xb/images/drivers/UltraNet_FB/fonction$K 00:00:34 # # $xb/images/drivers/Silicon_Grafic/fonction.1$K 00:00:34 # # $xb/images/images/ImagesJ$K 00:00:33 # # $xb/images/drivers/ridge/fonction$K 00:00:33 # # $xb/images/drivers/dpx5000c/fonction$K 00:00:33 # # $xb/images/drivers/disk_video_S/fonction$K 00:00:33 # # $xb/images/drivers/Silicon_Grafic/fonction.2$K 00:00:33 # # $xb/images/drivers/Motif/fonction$K 00:00:32 # # $xb/mathematiques/fonctions/operator.1$K 00:00:31 # # $xb/images/drivers/Compression/jpeg$K 00:00:31 # # # # et enfin, les '$K's dont les compilations ne sont pas parallelisables : # # # # $xb/generales/fonction$K 00:00:57 # # $xb/generales/allocation$K 00:00:19 # # # FilSTmpB FMeSsAgEs # Introduit le 20170716102643... # #20131205174349____:$xcg/FindExec.01$Z $Dcourant $K $xcc/cbg$Z # #20170716102643____:$xcg/FindExec.01$Z $xb $K $xcc/cbg$Z # #20180402084239____:$xcg/FindExec.01$Z $xb $K $xcc/cbg$Z \ # #20180402084239____: >> $FMeSsAgEs # FilSTmpB FExClUsIoNs $CA $xcs/csh$Y \ >> $FExClUsIoNs $GRE -r "^$PASSE_5""define *PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES *" * | \ $SE -e "s/:$PASSE_5""define *PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES */ /" \ -e 's/"//g' \ -e 's+^+$xb'"$K_sepS+" \ -e "s/^/eval echo /" \ >> $FExClUsIoNs (source $FExClUsIoNs) | \ $SE \ -e "s/\""$K_sepP""[^ $K_sepP]* */$K /" \ -e "s/\""$K_sepP""[^ $K_sepP]*"'$'"/$K/" \ > $FExClUsIoNs.1 set LExClUsIoNs_avant=`$CA $FExClUsIoNs.1 | $AW ' { print $2 } '` set LExClUsIoNs_apres=`$CA $FExClUsIoNs.1 | $AW ' { print $1 } '` set LExClUsIoNs=`$CA $FExClUsIoNs.1` FilSTmpE FExClUsIoNs if ("$LExClUsIoNs_avant" != "$K_VIDE") then foreach FiChIeR_K ($LExClUsIoNs_avant) #20190930181849____: $xcc/cbg$Z $FiChIeR_K \ # #20190930181849____: >>& $FMeSsAgEs # (eval $CommandeCompilation $FiChIeR_K) \ >>& $FMeSsAgEs # Compilation sequentielle des '$K's lies par un 'PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES' et # # dits "avant" (c'est par exemple le cas de 'v $xbg/allocation$K' qui doit evidemment # # preceder celle de 'v $xbg/fonction$K'...). # # # # Elle fut introduite le 20180402102346... # end else endif if ("$LExClUsIoNs_apres" != "$K_VIDE") then foreach FiChIeR_K ($LExClUsIoNs_apres) #20190930181849____: $xcc/cbg$Z $FiChIeR_K \ # #20190930181849____: >>& $FMeSsAgEs # (eval $CommandeCompilation $FiChIeR_K) \ >>& $FMeSsAgEs # Compilation sequentielle des '$K's lies par un 'PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES' et # # dits "apres" (c'est par exemple le cas de 'v $xbg/fonction$K' qui doit evidemment # # suivre celle de 'v $xbg/allocation$K'...). # # # # Elle fut introduite le 20180402102346... # end else endif #20190930181849____:$xcg/FindExec.01$Z $xb $K $xcc/cbg$Z "$LExClUsIoNs" \ # #20190930181849____: >>& $FMeSsAgEs # $xcg/FindExec.01$Z $xb $K "$CommandeCompilation" "$LExClUsIoNs" \ >>& $FMeSsAgEs # Et compilation de tous les modules. # # # # Je note le 20101119123644 que si le parallelisme est demande et si 'N' processeurs sont # # disponibles, il ne faut pas s'attendre a voir le temps de compilation en mode "sequentiel" # # divise par 'N'. En effet, d'une part il y les entrees-sorties et d'autre il y a surtout # # le fait que 'v $xcc/cpp$Z' est lui-meme parallele et ce a cause de ses tres nombreux et # # tres longs "pipes" qui favorisent le parallelisme intrinseque, ce dernier rentrant donc # # en concurrence avec le parallelisme "explicite" de 'v $xcg/FindExec.01$Z'... # unset LExClUsIoNs unset LExClUsIoNs_apres unset LExClUsIoNs_avant $CA $FMeSsAgEs # Edition des messages de compilation... # set MReCoMpIlEr="RECOMPILER SUR" set ReCoMpIlEr=`$CA $FMeSsAgEs | $GRE "$MReCoMpIlEr" | $GRE "'"'\$'"$sHOTE'"` # Des recompilations sont-elles a refaire (introduit le 20170716102643) ? # if ("$ReCoMpIlEr" != "$K_VIDE") then # Oui, test introduit le 20170716102643... # FilSTmpB FReCoMpIlEr $Y $CA $xcs/csh$Y \ >> $FReCoMpIlEr set QuOtEs_1="$K_QD$K_QS$K_QD" set QuOtEs_2="$K_QD$K_QS" set CoMpUtEr=`eval echo $K_DOLLAR$sHOTE | $R "$K_sepP" "$K_BLANC" | $AW ' { print $1 }'` set ExPoRt="$K_VIDE" set ExPoRt="$ExPoRt"" export COMPUTER=$CoMpUtEr ;" # Ceci correspond a la necessite 'v $xE/..base.11$vv$Y ..base.11.deguise.CMAP.vv.sed' car, # # effet, s'il s'agit ci-apres d'un : # # # # $RSH $CMAP28 (...) # # # # alors on se trouve par defaut sur '$CMAP28' avec : # # # # COMPUTER=ssh # # # # non reconnue par 'v $Foptions La.variable..COMPUTER..definit.une.machine.inconnue'. On # # force ici : # # # # COMPUTER=europe # # # # dans ce cas... # set ExPoRt="$ExPoRt"' export LOGIN=$EXIST ;' set ExPoRt="$ExPoRt"' export Edit_EROR=$NEXIST ;' set ExPoRt="$ExPoRt"' export ForcerFcshrc=$EXIST ;' set ExPoRt="$ExPoRt"' export TERM=$TERM ;' set ExPoRt="$ExPoRt"' $CSH -c ' $CA $FMeSsAgEs | \ $GRE "$MReCoMpIlEr" | \ $GRE "'"'\$'"$sHOTE'" | \ $SE \ -e "s/^.* $MReCoMpIlEr '\([^ ][^ ]*\)' *: */\1 /" \ -e "s/'\(.*\)'"'$/'"$QuOtEs_1\1$QuOtEs_2/" \ -e "s/^\([^ ][^ ]*\) /"'$RSH \1 "'"$ExPoRt/" \ >> $FReCoMpIlEr # Generation d'un '$Y' de recompilations a distance... # unset ExPoRt unset CoMpUtEr unset QuOtEs_2 unset QuOtEs_1 source $FReCoMpIlEr # Recompilations a distance... # # # # Cela avait ete introduit le 20170716102643 pour 'v $xbidX/fonction$K' qui donnait des : # # # # Segmentation fault # # # # sur '$CMAP28' (sur toutes MACHINEs...) apres compilation sur '$CMAP28' (sur toutes MACHINEs # # sauf sur 'europe.polytechnique.fr' a cause de sa '$nSYSTEM_RELEASE' >= 700000000). Or j'ai # # reussi a corriger cela via 'v $xiidX/fonct$vv$DEF 20170717101538' et ce dispositif n'a # # alors plus d'utilite. Mais le conserve car d'une part on ne sait jamais et d'autre part # # c'est tout a fait magnifique ! # FilSTmpE FReCoMpIlEr else endif unset ReCoMpIlEr unset MReCoMpIlEr FilSTmpE FMeSsAgEs #20101119135123____:unsetenv FindExec_InverserOrdre # if (-e $xb/modele$c) then rw $xb/modele$c $DELETE_VALIDE $xb/modele$c # Destruction eventuelle du fichier '$xb/modele$c' qui ne sert a rien et qui n'a ete cree # # que s'il y a eu des problemes... # else endif if (-e $xb/modele$o) then rw $xb/modele$o $DELETE_VALIDE $xb/modele$o # Destruction du fichier '$xb/modele$o' qui ne sert a rien... # else endif if (-e $xb/modele$a) then rw $xb/modele$a $DELETE_VALIDE $xb/modele$a # Destruction du fichier '$xb/modele$a' qui ne sert a rien... # else endif if (-e $xb/modele$SO) then rw $xb/modele$SO $DELETE_VALIDE $xb/modele$SO # Destruction du fichier '$xb/modele$SO' qui ne sert a rien... # else endif # ATTENTION : on ne fait pas : # # # # if (-e $xb/portage$c) then # # rw $xb/portage$c # # $DELETE_VALIDE $xb/portage$c # # else # # endif # # # # car, en effet, il faut pouvoir examiner '$xb/portage$c' afin de comprendre les problemes # # de portage, et les resoudre... # if (-e $xb/portage$o) then rw $xb/portage$o $DELETE_VALIDE $xb/portage$o # Destruction du fichier '$xb/portage$o' qui ne sert a rien et qui n'a ete cree que s'il # # n'y a pas eu de problemes de portage... # else endif if (-e $xb/portage$a) then rw $xb/portage$a $DELETE_VALIDE $xb/portage$a # Destruction du fichier '$xb/portage$a' qui ne sert a rien et qui n'a ete cree que s'il # # n'y a pas eu de problemes de portage... # else endif if (-e $xb/portage$SO) then rw $xb/portage$SO $DELETE_VALIDE $xb/portage$SO # Destruction du fichier '$xb/portage$SO' qui ne sert a rien et qui n'a ete cree que s'il # # n'y a pas eu de problemes de portage... # else endif if ($CKonstantes == $EXIST) then saut 2 xcp $xcc/cl$Z Konstantes # Introduit le 20171219181504. C'est en effet beaucoup plus prudent : il pourrait y avoir # # eu des erreurs lors de la premiere compilation, celles-ci ayant ete corrigees par la # # compilation des librairies... # else endif