Changeset 16252


Ignore:
Timestamp:
09/25/13 10:20:12 (11 years ago)
Author:
Eric.Larour
Message:

CHG: added new parameters for garbage collection in autodiff mode

Location:
issm/trunk-jpl/src
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp

    r16243 r16252  
    4444                parameters->AddObject(iomodel->CopyConstantObject(AutodiffLbufsizeEnum));
    4545                parameters->AddObject(iomodel->CopyConstantObject(AutodiffTbufsizeEnum));
     46                parameters->AddObject(iomodel->CopyConstantObject(AutodiffGcTriggerRatioEnum));
     47                parameters->AddObject(iomodel->CopyConstantObject(AutodiffGcTriggerMaxSizeEnum));
    4648                /*}}}*/
    4749                /*retrieve driver: {{{*/
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r16248 r16252  
    3333        AutodiffCbufsizeEnum,
    3434        AutodiffTbufsizeEnum,
     35        AutodiffGcTriggerRatioEnum,
     36        AutodiffGcTriggerMaxSizeEnum,
    3537        BalancethicknessSpcthicknessEnum,
    3638        BalancethicknessStabilizationEnum,
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r16248 r16252  
    4141                case AutodiffCbufsizeEnum : return "AutodiffCbufsize";
    4242                case AutodiffTbufsizeEnum : return "AutodiffTbufsize";
     43                case AutodiffGcTriggerRatioEnum : return "AutodiffGcTriggerRatio";
     44                case AutodiffGcTriggerMaxSizeEnum : return "AutodiffGcTriggerMaxSize";
    4345                case BalancethicknessSpcthicknessEnum : return "BalancethicknessSpcthickness";
    4446                case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization";
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r16248 r16252  
    4141              else if (strcmp(name,"AutodiffCbufsize")==0) return AutodiffCbufsizeEnum;
    4242              else if (strcmp(name,"AutodiffTbufsize")==0) return AutodiffTbufsizeEnum;
     43              else if (strcmp(name,"AutodiffGcTriggerRatio")==0) return AutodiffGcTriggerRatioEnum;
     44              else if (strcmp(name,"AutodiffGcTriggerMaxSize")==0) return AutodiffGcTriggerMaxSizeEnum;
    4345              else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
    4446              else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum;
     
    135137              else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
    136138              else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
    137               else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
    138               else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"InversionTao")==0) return InversionTaoEnum;
     142              if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
     143              else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum;
     144              else if (strcmp(name,"InversionTao")==0) return InversionTaoEnum;
    143145              else if (strcmp(name,"InversionIncompleteAdjoint")==0) return InversionIncompleteAdjointEnum;
    144146              else if (strcmp(name,"InversionMaxParameters")==0) return InversionMaxParametersEnum;
     
    258260              else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
    259261              else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
    260               else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
    261               else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
     265              if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
     266              else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
     267              else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
    266268              else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
    267269              else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
     
    381383              else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
    382384              else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
    383               else if (strcmp(name,"Matice")==0) return MaticeEnum;
    384               else if (strcmp(name,"Matpar")==0) return MatparEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"Node")==0) return NodeEnum;
     388              if (strcmp(name,"Matice")==0) return MaticeEnum;
     389              else if (strcmp(name,"Matpar")==0) return MatparEnum;
     390              else if (strcmp(name,"Node")==0) return NodeEnum;
    389391              else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
    390392              else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
     
    504506              else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
    505507              else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
    506               else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
    507               else if (strcmp(name,"GiaW")==0) return GiaWEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"P0")==0) return P0Enum;
     511              if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
     512              else if (strcmp(name,"GiaW")==0) return GiaWEnum;
     513              else if (strcmp(name,"P0")==0) return P0Enum;
    512514              else if (strcmp(name,"P1")==0) return P1Enum;
    513515              else if (strcmp(name,"P1DG")==0) return P1DGEnum;
  • TabularUnified issm/trunk-jpl/src/m/classes/autodiff.m

    r16244 r16252  
    1515                cbufsize     = NaN;
    1616                tbufsize     = NaN;
     17                gcTriggerRatio = NaN;
     18                gcTriggerMaxSize = NaN;
    1719                end
    1820                %}}}
     
    3133                cbufsize     = 524288;
    3234                tbufsize     = 524288;
     35                gcTriggerRatio=2.0;
     36                gcTriggerMaxSize=2000000;
    3337                end % }}}
    3438                function md = checkconsistency(obj,md,solution,analyses) % {{{
     
    4549                        md = checkfield(md,'autodiff.cbufsize','>=',524288);
    4650                        md = checkfield(md,'autodiff.tbufsize','>=',524288);
     51                        md = checkfield(md,'autodiff.gcTriggerRatio','>=',2);
     52                        md = checkfield(md,'autodiff.gcTriggerMaxSize','>=',2000000);
    4753
    4854                        %go through our dependents and independents and check consistency:
     
    6773                        fielddisplay(obj,'cbufsize','Number of values per buffer (==CBUFSIZE in usrparms.h)');
    6874                        fielddisplay(obj,'tbufsize','Number of taylors per buffer (<=TBUFSIZE in usrparms.h)');
     75                        fielddisplay(obj,'gcTriggerRatio','free location block sorting/consolidation triggered if the ratio between allocated and used locations exceeds gcTriggerRatio');
     76                        fielddisplay(obj,'gcTriggerMaxSize','free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize');
    6977                end % }}}
    7078                function marshall(obj,md,fid) % {{{
     
    8189
    8290                        %buffer sizes {{{
    83                         WriteData(fid,'data',obj,'fieldname','obufsize','enum',AutodiffObufsizeEnum(),'format','Double');
    84                         WriteData(fid,'data',obj,'fieldname','lbufsize','enum',AutodiffLbufsizeEnum(),'format','Double');
    85                         WriteData(fid,'data',obj,'fieldname','cbufsize','enum',AutodiffCbufsizeEnum(),'format','Double');
    86                         WriteData(fid,'data',obj,'fieldname','tbufsize','enum',AutodiffTbufsizeEnum(),'format','Double');
     91                        WriteData(fid,'object',obj,'fieldname','obufsize','format','Double');
     92                        WriteData(fid,'object',obj,'fieldname','lbufsize','format','Double');
     93                        WriteData(fid,'object',obj,'fieldname','cbufsize','format','Double');
     94                        WriteData(fid,'object',obj,'fieldname','tbufsize','format','Double');
     95                        WriteData(fid,'object',obj,'fieldname','gcTriggerRatio','format','Double');
     96                        WriteData(fid,'object',obj,'fieldname','gcTriggerMaxSize','format','Double');
    8797                        %}}}
    8898                        %process dependent variables {{{
  • TabularUnified issm/trunk-jpl/src/m/classes/autodiff.py

    r16245 r16252  
    2323                self.cbufsize     = float('NaN')
    2424                self.tbufsize     = float('NaN')
     25                self.gcTriggerMaxSize     = float('NaN')
     26                self.gcTriggerRatio     = float('NaN')
    2527                if not len(args):
    2628                        self.setdefaultparameters()
     
    3941                s+="%s\n" % fielddisplay(self,'cbufsize',"Number of values per buffer (==CBUFSIZE in usrparms.h)")
    4042                s+="%s\n" % fielddisplay(self,'tbufsize',"Number of taylors per buffer (<=TBUFSIZE in usrparms.h)")
     43                s+="%s\n" % fielddisplay(self,'gcTriggerRatio',"free location block sorting/consolidation triggered if the ratio between allocated and used locations exceeds gcTriggerRatio")
     44                s+="%s\n" % fielddisplay(self,'gcTriggerMaxSize',"free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize)")
     45
    4146                return s
    4247        # }}}
     
    4651                self.cbufsize     = 524288
    4752                self.tbufsize     = 524288
     53                gcTriggerRatio=2.0
     54                gcTriggerMaxSize=2000000
    4855                return self
    4956        # }}}
     
    5865                md = checkfield(md,'autodiff.cbufsize','>=',524288)
    5966                md = checkfield(md,'autodiff.tbufsize','>=',524288)
     67                md = checkfield(md,'autodiff.gcTriggerRatio','>=',2.0)
     68                md = checkfield(md,'autodiff.gcTriggerMaxSize','>=',2000000)
    6069
    6170                #Driver value:
     
    8190                       
    8291                #buffer sizes {{{
    83                 WriteData(fid,'data',self,'fieldname','obufsize','enum',AutodiffObufsizeEnum(),'format','Double');
    84                 WriteData(fid,'data',self,'fieldname','lbufsize','enum',AutodiffLbufsizeEnum(),'format','Double');
    85                 WriteData(fid,'data',self,'fieldname','cbufsize','enum',AutodiffCbufsizeEnum(),'format','Double');
    86                 WriteData(fid,'data',self,'fieldname','tbufsize','enum',AutodiffTbufsizeEnum(),'format','Double');
     92                WriteData(fid,'object',self,'fieldname','obufsize','format','Double');
     93                WriteData(fid,'object',self,'fieldname','lbufsize','format','Double');
     94                WriteData(fid,'object',self,'fieldname','cbufsize','format','Double');
     95                WriteData(fid,'object',self,'fieldname','tbufsize','format','Double');
     96                WriteData(fid,'object',self,'fieldname','gcTriggerRatio','format','Double');
     97                WriteData(fid,'object',self,'fieldname','gcTriggerMaxSize','format','Double');
    8798                #}}}
    8899                #process dependent variables {{{
  • TabularUnified issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r16249 r16252  
    3333def AutodiffCbufsizeEnum(): return StringToEnum("AutodiffCbufsize")[0]
    3434def AutodiffTbufsizeEnum(): return StringToEnum("AutodiffTbufsize")[0]
     35def AutodiffGcTriggerRatioEnum(): return StringToEnum("AutodiffGcTriggerRatio")[0]
     36def AutodiffGcTriggerMaxSizeEnum(): return StringToEnum("AutodiffGcTriggerMaxSize")[0]
    3537def BalancethicknessSpcthicknessEnum(): return StringToEnum("BalancethicknessSpcthickness")[0]
    3638def BalancethicknessStabilizationEnum(): return StringToEnum("BalancethicknessStabilization")[0]
Note: See TracChangeset for help on using the changeset viewer.