#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   P A R A L L E L E   D ' U N   C H A M P   F R A C T A L  :                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#                   $xci/fractal.01$vv$Z          <CommandeArguments> <ImageR> <Ponderations> <MaillesX> <MaillesY> [<MaillesZ>]      #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xci/fractal.01$vv$Z' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20180707110119).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       CommandeArguments=($1)
set       ImageR=($2)
set       Ponderations=($3)
set       MaillesX=($4)
set       MaillesY=($5)
set       MaillesZ=($6)

set       NImAgEs=$#Ponderations

if        (    ($#MaillesX == $NImAgEs)                                                                                                 \
          &&   ($#MaillesY == $NImAgEs)                                                                                                 \
           ) then
          if        (    ("$MaillesZ" == "$K_VIDE")                                                                                     \
                    ||   (    ("$MaillesZ" != "$K_VIDE")                                                                                \
                         &&   ($#MaillesZ == $NImAgEs)                                                                                  \
                          )                                                                                                             \
                     ) then
                    FilSTmpB  FGeNeRe_CoUcHeS
                    FilSTmpB  FImAgEs

                    set       NuMeRoS=`$xci/nombres$X A="$K_VIDE" premiere=1 derniere=$NImAgEs`

                    set       index=1

                    while     ($index <= $NImAgEs)
                              set       MaIlLe_X="mX=$MaillesX[$index]"
                              set       MaIlLe_Y="mY=$MaillesY[$index]"

                              if        ("$MaillesZ" != "$K_VIDE") then
                                        set       MaIlLe_Z="mZ=$MaillesZ[$index]"
                              else
                                        set       MaIlLe_Z="$K_VIDE"
                              endif

                              set       ArGuMeNtS="$K_VIDE"
                              set       ArGuMeNtS="$ArGuMeNtS"" iterations=1"
                              set       ArGuMeNtS="$ArGuMeNtS"" $MaIlLe_X $MaIlLe_Y $MaIlLe_Z"
                              set       ArGuMeNtS="$ArGuMeNtS"" standard=FAUX"
                              set       ArGuMeNtS="$ArGuMeNtS"" Frenormaliser=VRAI origine=0 extremite=$Ponderations[$index]"
                              set       ArGuMeNtS="$ArGuMeNtS"" R=$FImAgEs.$NuMeRoS[$index]"

                              echo      "$CommandeArguments $ArGuMeNtS"                                                                 \
                                                                                                              >> $FGeNeRe_CoUcHeS

                              @         index = $index + 1
                    end

#20180707113227____:                    setenv    TaillePaquetsLinda  8                                                               #
#20180707113227____:                    setenv    FindExec_MessagesBP $NEXIST                                                         #
#20180709094735____:                    setenv    FindExec_MessagesBP $NEXIST                                                         #
                                        # La sortie des messages est retablie le 20180709094735 car, en effet, il peut y avoir        #
                                        # des messages d'erreur issus de '$CommandeArguments'...                                      #

                    $xcg/ExecParallele.01$Z       $FGeNeRe_CoUcHeS
                                        # On notera le 20180709074729 que malheureusement la duree du calcul de chaque couche         #
                                        # augmente en meme temps que la taille des mailles diminue. Ainsi, par exemple, en format     #
                                        # 'Puq', lors du calcul de '$xTV/NUAGES.0.1' dans 'v $xiirf/$Fnota CIEL_31_0017', le 'time'   #
                                        # des differents '$xci/fract_3D.01$X' sur '$LACT1A' a donne :                                 #
                                        #                                                                                             #
                                        #                    0.896u 0.000s 0:00.89 100.0%           0+0k  0+440io  0pf+0w             #
                                        #                    1.132u 0.000s 0:01.13 100.0%           0+0k  0+440io  0pf+0w             #
                                        #                    1.228u 0.000s 0:01.23  99.1%           0+0k  0+440io  0pf+0w             #
                                        #                    1.616u 0.000s 0:01.61 100.0%           0+0k  0+440io  0pf+0w             #
                                        #                    2.652u 0.000s 0:02.65 100.0%           0+0k 40+440io  1pf+0w             #
                                        #                    4.792u 0.000s 0:04.79 100.0%           0+0k  0+440io  0pf+0w             #
                                        #                    9.092u 0.000s 0:09.09 100.0%           0+0k  0+440io  0pf+0w             #
                                        #                   17.644u 0.000s 0:17.64 100.0%           0+0k  0+440io  0pf+0w             #
                                        #                                                                                             #
                                        # et on voit ainsi que la duree double pratiquement a chaque reduction des mailles, ce qui    #
                                        # finalement rend le parallelisme quasiment inutile. N'oublions pas au passage que :          #
                                        #                                                                                             #
                                        #                    0    1    2    3          n    n+1    0                                  #
                                        #                   2  + 2  + 2  + 2  + ... + 2  = 2    - 2                                   #
                                        #                                                                                             #
                                        # ce qui fait que la duree en parallele sera grossierement la moitie (donc divise par 2 et    #
                                        # non pas par 'N' -le nombre d'iteration, N=8 ci-dessus-) de ce qu'elle aurait ete en         #
                                        # sequentiel. Grosse deception !                                                              #

#20180709094735____:                    unsetenv  FindExec_MessagesBP                                                                 #
#20180707113227____:                    unsetenv  FindExec_MessagesBP                                                                 #
#20180707113227____:                    unsetenv  TaillePaquetsLinda                                                                  #

                    FilSTmpE  FGeNeRe_CoUcHeS

                    $xci/accumule.01$X  A=$FImAgEs.                                                                                     \
                                        premiere=1 derniere=$NImAgEs                                                                    \
                                        standard=FAUX                                                                                   \
                                                                                                                        $formatI  |     \
                    $xci/normalise.01$X                                                                                                 \
                                        R=$ImageR                                                                                       \
                                                                                                                        $formatI

                    FilSTmpE  FImAgEs
          else
                    EROR      "Le nombre de couches est incoherent -2-."
          endif
else
          EROR      "Le nombre de couches est incoherent -1-."
endif



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.