covid
Buscar en
Geofísica Internacional
Toda la web
Inicio Geofísica Internacional A parallel computing strategy for Monte Carlo simulation using groundwater model...
Journal Information

Statistics

Follow this link to access the full text of the article

A parallel computing strategy for Monte Carlo simulation using groundwater models
Esther Leyva-Suáreza, Graciela S. Herrerab,
Corresponding author
ghz@geofisica.unam.mx

Corresponding author.
, Luis M. de la Cruzb
a Posgrado en Ciencias de la Tierra, Universidad Nacional Autónoma de México, Ciudad Universitaria, Delegación Coyoacán, 04510, México D.F., México
b Instituto de Geofísica, Universidad Nacional Autónoma de México, Ciudad Universitaria, Delegación Coyoacán, 04510, México D.F., México
Read
5331
Times
was read the article
1226
Total PDF
4105
Total HTML
Share statistics
 array:23 [
  "pii" => "S0016716915000239"
  "issn" => "00167169"
  "doi" => "10.1016/j.gi.2015.04.020"
  "estado" => "S300"
  "fechaPublicacion" => "2015-07-01"
  "aid" => "20"
  "copyrightAnyo" => "2015"
  "documento" => "article"
  "crossmark" => 0
  "licencia" => "http://creativecommons.org/licenses/by-nc-nd/4.0/"
  "subdocumento" => "fla"
  "cita" => "Geofisica Internacional. 2015;54:245-54"
  "abierto" => array:3 [
    "ES" => true
    "ES2" => true
    "LATM" => true
  ]
  "gratuito" => true
  "lecturas" => array:2 [
    "total" => 2048
    "formatos" => array:3 [
      "EPUB" => 92
      "HTML" => 1304
      "PDF" => 652
    ]
  ]
  "itemSiguiente" => array:18 [
    "pii" => "S0016716915000203"
    "issn" => "00167169"
    "doi" => "10.1016/j.gi.2015.04.017"
    "estado" => "S300"
    "fechaPublicacion" => "2015-07-01"
    "aid" => "17"
    "documento" => "article"
    "crossmark" => 0
    "licencia" => "http://creativecommons.org/licenses/by-nc-nd/4.0/"
    "subdocumento" => "fla"
    "cita" => "Geofisica Internacional. 2015;54:255-66"
    "abierto" => array:3 [
      "ES" => true
      "ES2" => true
      "LATM" => true
    ]
    "gratuito" => true
    "lecturas" => array:2 [
      "total" => 2787
      "formatos" => array:3 [
        "EPUB" => 116
        "HTML" => 2023
        "PDF" => 648
      ]
    ]
    "en" => array:11 [
      "idiomaDefecto" => true
      "titulo" => "Short Baseline Calibration using GPS and EDM Observations"
      "tienePdf" => "en"
      "tieneTextoCompleto" => "en"
      "tieneResumen" => array:2 [
        0 => "es"
        1 => "en"
      ]
      "paginas" => array:1 [
        0 => array:2 [
          "paginaInicial" => "255"
          "paginaFinal" => "266"
        ]
      ]
      "contieneResumen" => array:2 [
        "es" => true
        "en" => true
      ]
      "contieneTextoCompleto" => array:1 [
        "en" => true
      ]
      "contienePdf" => array:1 [
        "en" => true
      ]
      "resumenGrafico" => array:2 [
        "original" => 0
        "multimedia" => array:7 [
          "identificador" => "fig0055"
          "etiqueta" => "Figure 11"
          "tipo" => "MULTIMEDIAFIGURA"
          "mostrarFloat" => true
          "mostrarDisplay" => false
          "figura" => array:1 [
            0 => array:4 [
              "imagen" => "gr11.jpeg"
              "Alto" => 1707
              "Ancho" => 2273
              "Tamanyo" => 335899
            ]
          ]
          "descripcion" => array:1 [
            "en" => "<p id="spar0065" class="elsevierStyleSimplePara elsevierViewall">Calibration baseline results from GPS and EDM&#46;</p>"
          ]
        ]
      ]
      "autores" => array:1 [
        0 => array:2 [
          "autoresLista" => "Guadalupe Esteban Vazquez Becerra, Rick A&#46; Bennett, Mija&#237;l Cordero Ch&#225;vez, Manuel E&#46; Trejo Soto, Jos&#233; Ram&#243;n Gaxiola-Camacho"
          "autores" => array:5 [
            0 => array:2 [
              "nombre" => "Guadalupe Esteban Vazquez"
              "apellidos" => "Becerra"
            ]
            1 => array:2 [
              "nombre" => "Rick A&#46;"
              "apellidos" => "Bennett"
            ]
            2 => array:2 [
              "nombre" => "Mija&#237;l Cordero"
              "apellidos" => "Ch&#225;vez"
            ]
            3 => array:2 [
              "nombre" => "Manuel E&#46; Trejo"
              "apellidos" => "Soto"
            ]
            4 => array:2 [
              "nombre" => "Jos&#233; Ram&#243;n"
              "apellidos" => "Gaxiola-Camacho"
            ]
          ]
        ]
      ]
    ]
    "idiomaDefecto" => "en"
    "EPUB" => "https://multimedia.elsevier.es/PublicationsMultimediaV1/item/epub/S0016716915000203?idApp=UINPBA00004N"
    "url" => "/00167169/0000005400000003/v2_201509120041/S0016716915000203/v2_201509120041/en/main.assets"
  ]
  "itemAnterior" => array:18 [
    "pii" => "S0016716915000215"
    "issn" => "00167169"
    "doi" => "10.1016/j.gi.2015.04.018"
    "estado" => "S300"
    "fechaPublicacion" => "2015-07-01"
    "aid" => "18"
    "documento" => "article"
    "crossmark" => 0
    "licencia" => "http://creativecommons.org/licenses/by-nc-nd/4.0/"
    "subdocumento" => "fla"
    "cita" => "Geofisica Internacional. 2015;54:221-44"
    "abierto" => array:3 [
      "ES" => true
      "ES2" => true
      "LATM" => true
    ]
    "gratuito" => true
    "lecturas" => array:2 [
      "total" => 3046
      "formatos" => array:3 [
        "EPUB" => 97
        "HTML" => 2236
        "PDF" => 713
      ]
    ]
    "en" => array:11 [
      "idiomaDefecto" => true
      "titulo" => "Mesozoic gliding and Tertiary basin and range tectonics in eastern Sonora&#44; Mexico"
      "tienePdf" => "en"
      "tieneTextoCompleto" => "en"
      "tieneResumen" => array:2 [
        0 => "es"
        1 => "en"
      ]
      "paginas" => array:1 [
        0 => array:2 [
          "paginaInicial" => "221"
          "paginaFinal" => "244"
        ]
      ]
      "contieneResumen" => array:2 [
        "es" => true
        "en" => true
      ]
      "contieneTextoCompleto" => array:1 [
        "en" => true
      ]
      "contienePdf" => array:1 [
        "en" => true
      ]
      "resumenGrafico" => array:2 [
        "original" => 0
        "multimedia" => array:7 [
          "identificador" => "fig0045"
          "etiqueta" => "Figure 9"
          "tipo" => "MULTIMEDIAFIGURA"
          "mostrarFloat" => true
          "mostrarDisplay" => false
          "figura" => array:1 [
            0 => array:4 [
              "imagen" => "gr9.jpeg"
              "Alto" => 1641
              "Ancho" => 1448
              "Tamanyo" => 866681
            ]
          ]
          "descripcion" => array:1 [
            "en" => "<p id="spar0055" class="elsevierStyleSimplePara elsevierViewall">Intense deformation &#40;a and b&#41; recorded in the base of the Ca&#241;ada de Tarachi Unit&#46; Note the scale of deformation&#46; Reverse and normal faults plus folds affect the sequence&#46; Z folds recorded in the Ca&#241;ada de Tarachi Unit &#40;c&#44; e&#44; d&#41; suggest transport to the south-west&#46; In a&#44; the bed where the man stand is the base of the detachment&#46; The S fold on f crops out along the Arivechi-Tarachi road&#44; also suggesting transport to the west&#46;</p>"
          ]
        ]
      ]
      "autores" => array:1 [
        0 => array:2 [
          "autoresLista" => "Jos&#233; Luis Rodr&#237;guez Casta&#241;eda, Jaime Rold&#225;n Quintana, Amabel Ortega Rivera"
          "autores" => array:3 [
            0 => array:2 [
              "nombre" => "Jos&#233; Luis Rodr&#237;guez"
              "apellidos" => "Casta&#241;eda"
            ]
            1 => array:2 [
              "nombre" => "Jaime Rold&#225;n"
              "apellidos" => "Quintana"
            ]
            2 => array:2 [
              "nombre" => "Amabel Ortega"
              "apellidos" => "Rivera"
            ]
          ]
        ]
      ]
    ]
    "idiomaDefecto" => "en"
    "EPUB" => "https://multimedia.elsevier.es/PublicationsMultimediaV1/item/epub/S0016716915000215?idApp=UINPBA00004N"
    "url" => "/00167169/0000005400000003/v2_201509120041/S0016716915000215/v2_201509120041/en/main.assets"
  ]
  "en" => array:18 [
    "idiomaDefecto" => true
    "titulo" => "A parallel computing strategy for Monte Carlo simulation using groundwater models"
    "tieneTextoCompleto" => true
    "paginas" => array:1 [
      0 => array:2 [
        "paginaInicial" => "245"
        "paginaFinal" => "254"
      ]
    ]
    "autores" => array:1 [
      0 => array:4 [
        "autoresLista" => "Esther Leyva-Su&#225;rez, Graciela S&#46; Herrera, Luis M&#46; de la Cruz"
        "autores" => array:3 [
          0 => array:3 [
            "nombre" => "Esther"
            "apellidos" => "Leyva-Su&#225;rez"
            "referencia" => array:1 [
              0 => array:2 [
                "etiqueta" => "<span class="elsevierStyleSup">a</span>"
                "identificador" => "aff0005"
              ]
            ]
          ]
          1 => array:4 [
            "nombre" => "Graciela S&#46;"
            "apellidos" => "Herrera"
            "email" => array:1 [
              0 => "ghz&#64;geofisica&#46;unam&#46;mx"
            ]
            "referencia" => array:2 [
              0 => array:2 [
                "etiqueta" => "<span class="elsevierStyleSup">b</span>"
                "identificador" => "aff0010"
              ]
              1 => array:2 [
                "etiqueta" => "<span class="elsevierStyleSup">&#42;</span>"
                "identificador" => "cor0005"
              ]
            ]
          ]
          2 => array:3 [
            "nombre" => "Luis M&#46;"
            "apellidos" => "de la Cruz"
            "referencia" => array:1 [
              0 => array:2 [
                "etiqueta" => "<span class="elsevierStyleSup">b</span>"
                "identificador" => "aff0010"
              ]
            ]
          ]
        ]
        "afiliaciones" => array:2 [
          0 => array:3 [
            "entidad" => "Posgrado en Ciencias de la Tierra&#44; Universidad Nacional Aut&#243;noma de M&#233;xico&#44; Ciudad Universitaria&#44; Delegaci&#243;n Coyoac&#225;n&#44; 04510&#44; M&#233;xico D&#46;F&#46;&#44; M&#233;xico"
            "etiqueta" => "a"
            "identificador" => "aff0005"
          ]
          1 => array:3 [
            "entidad" => "Instituto de Geof&#237;sica&#44; Universidad Nacional Aut&#243;noma de M&#233;xico&#44; Ciudad Universitaria&#44; Delegaci&#243;n Coyoac&#225;n&#44; 04510&#44; M&#233;xico D&#46;F&#46;&#44; M&#233;xico"
            "etiqueta" => "b"
            "identificador" => "aff0010"
          ]
        ]
        "correspondencia" => array:1 [
          0 => array:3 [
            "identificador" => "cor0005"
            "etiqueta" => "&#8270;"
            "correspondencia" => "Corresponding author&#46;"
          ]
        ]
      ]
    ]
    "resumenGrafico" => array:2 [
      "original" => 0
      "multimedia" => array:7 [
        "identificador" => "fig0010"
        "etiqueta" => "Figure 2"
        "tipo" => "MULTIMEDIAFIGURA"
        "mostrarFloat" => true
        "mostrarDisplay" => false
        "figura" => array:1 [
          0 => array:4 [
            "imagen" => "gr2.jpeg"
            "Alto" => 965
            "Ancho" => 1719
            "Tamanyo" => 194903
          ]
        ]
        "descripcion" => array:1 [
          "en" => "<p id="spar0020" class="elsevierStyleSimplePara elsevierViewall">a&#41; Problem set up with the estimation mesh and boundary conditions for the flow model &#40;h is in meters&#41;&#44; b&#41; Stochastic simulation mesh and boundary conditions for the transport model &#40;modified from <a class="elsevierStyleCrossRef" href="#bib0065">Olivares-V&#225;zquez&#44; 2002</a>&#41;&#46;</p>"
        ]
      ]
    ]
    "textoCompleto" => "<span class="elsevierStyleSections"><span id="sec0005" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0025">Introduction</span><p id="par0005" class="elsevierStylePara elsevierViewall">Stochastic hydrogeology is a field that deals with stochastic methods to describe and analyze groundwater processes &#40;<a class="elsevierStyleCrossRef" href="#bib0070">Renard&#44; 2007</a>&#41;&#46; An important part of it consists of solving stochastic models &#40;stochastic partial differential equations&#41; describing those processes in order to estimate the joint probability density function of the parameters &#40;e&#46;g&#46;&#44; transmissivity&#44; storativity&#41; and&#47;or state variables &#40;e&#46;g&#46;&#44; groundwater levels&#44; concentrations&#41; of those equations or more commonly some of their moments&#46; Monte Carlo simulation &#40;MCS&#41; is an alternative for solving these stochastic models&#44; it is based on the idea of approximating the solution of stochastic processes using a large number of equally likely realizations&#46; For example&#44; the pioneering work on stochastic hydrogeology by <a class="elsevierStyleCrossRef" href="#bib0030">Freeze &#40;1975&#41;</a> applies this method&#46;</p><p id="par0010" class="elsevierStylePara elsevierViewall">The large number of realizations required by MCS can be very demanding in computing resources and the computational time can be excessive&#46; Nowadays there exist many parallel computing platforms that can be used to alleviate this problem&#46; Some previous works have focused in this direction&#44; for example <a class="elsevierStyleCrossRef" href="#bib0020">Dong <span class="elsevierStyleItalic">et al</span>&#46; &#40;2012&#41;</a> describe a parallelization strategy for stochastic modeling of groundwater systems using the Java Parallel Processing Framework &#40;JPPF&#41;&#46; This tool is very powerful and can be used as a GRID middle-ware &#40;<a class="elsevierStyleCrossRef" href="#bib0025">Foster <span class="elsevierStyleItalic">et al</span>&#46;&#44; 2001</a>&#41; to distribute tasks across several computing systems&#46; <a class="elsevierStyleCrossRef" href="#bib0020">Dong <span class="elsevierStyleItalic">et al</span>&#46; &#40;2012&#41;</a> take advantage of this tool to avoid any modification of MODFLOW and related programs&#46; However&#44; when the JPPF is used in a cluster alone&#44; a simply master-worker parallel model is obtained&#46; They also report that the combination of two levels of parallelism&#44; using a parallel solver to reduce the execution time by an order of two&#46; However&#44; this technique pays off only for very large grids&#44; over 10<span class="elsevierStyleSup">6</span> points&#46; In our case&#44; we do not require such massive grids&#46;</p><p id="par0015" class="elsevierStylePara elsevierViewall">In this paper&#44; we propose a distributed parallel computing method for stochastic modeling with the software <span class="elsevierStyleItalic">Groundwater Monte Carlo</span> &#40;GWMC&#41;&#44; a component of the Groundwater Quality Monitoring &#40;GWQMonitor&#41; package &#40;Herrera&#44; 1998&#41;&#46; GWMC is used together with an assimilation method called Ensemble Smoother of Herrera &#40;ESH&#41; in order to estimate groundwater contaminant concentration assimilating concentration data&#46; The best known version of Ensemble Smoother was developed by <a class="elsevierStyleCrossRef" href="#bib0080">van Leeuwen and Evensen &#40;1996&#41;</a>&#46; <a class="elsevierStyleCrossRef" href="#bib0040">Herrera de Olivares</a> developed a version of the assimilation method independently&#44; and originally she called it static Kalman filter &#40;Herrera&#44; 1998&#41;&#46;</p><p id="par0020" class="elsevierStylePara elsevierViewall">Ground Water Monte Carlo &#40;GWMC&#41;</p><p id="par0025" class="elsevierStylePara elsevierViewall">GWMC is a program written in FORTRAN by Herrera &#40;1998&#41;&#44; and subsequently modified by Olivares-V&#225;zquez &#40;2002&#41;&#46;</p><p id="par0030" class="elsevierStylePara elsevierViewall">It implements Monte Carlo simulation using a flow and transport simulator in which hydraulic conductivity is a random field and the contaminant concentration at the contaminant source is a time series at each node&#46; Therefore&#44; multiple realizations of those two parameters are obtained and for each realization the flow and transport equations are solved by the Princeton Transport Code &#40;PTC&#41;&#44; a finite element simulator &#40;<a class="elsevierStyleCrossRef" href="#bib0005">Babu <span class="elsevierStyleItalic">et al</span>&#46;&#44; 1993</a>&#41;&#46; Finally&#44; different averages of the concentration solutions are calculated to obtain their space-time mean vector and covariance matrix&#46; In this paper&#44; GWMC is parallelized in order to reduce the program execution time&#46;</p></span><span id="sec0010" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0030">Methodology</span><p id="par0035" class="elsevierStylePara elsevierViewall">The methodology implemented in this work is as follows&#58;</p><p id="par0040" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 1&#46;</span> The input files for PTC are generated&#46;</p><p id="par0045" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 2&#46;</span> The input files for GWMC are generated&#46;</p><p id="par0050" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 3&#46;</span> A number of realizations of the natural logarithm of the hydraulic conductivity field are generated using the sequential Gau-ssian simulation &#40;SGSIM&#41; program &#40;<a class="elsevierStyleCrossRef" href="#bib0015">Deutsch and Journel&#44; 1997</a>&#41;&#46; This program generates standard normal simulated values with a given correlation spatial structure on a rectangular mesh&#46;</p><p id="par0055" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 4&#46;</span> A transformation to get the hydraulic conductivity field &#40;a lognormal field&#41; is calculated for each realization using the Nrm2log program&#46; This program transforms the standard normal values to a normal variable with a given mean and variance and then applies the exponential function to get the lognormal field&#46;</p><p id="par0060" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 5&#46;</span> For each node at the source of contaminant concentration&#44; the same number of realizations of time series is generated using the RandTS2 program&#46;</p><p id="par0065" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 6&#46;</span> If the PTC finite element mesh is not equal to the SGSIM rectangular mesh&#44; the SGSIM mesh is mapped into the nearest node of the PTC mesh&#46;</p><p id="par0070" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 7&#46;</span> The generated hydraulic conduc-tivity realization value is assigned to the corresponding node of the PTC mesh and the hydraulic conductivity PTC files are substituted with the new values&#46;</p><p id="par0075" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 8&#46;</span> The contaminant concentrations at the source are substituted by the RandTS2 values in the PTC file for the transport boundary conditions&#46;</p><p id="par0080" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 9&#46;</span> PTC is executed for each conductivity and source concentration realization &#40;PTC solves numerically the flow and transport equation&#41;&#46;</p><p id="par0085" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 10&#46;</span> Adding over the concentration solutions obtained in <span class="elsevierStyleItalic">step 8</span>&#44; an auxiliary vector with the sum of concentrations for each node and time of interest is calculated and an auxiliary matrix with the sum of products of concentrations for each possible pair of space-time positions of interest is calculated&#46;</p><p id="par0090" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 11&#46;</span> Combining the information contained in the auxiliary vector and the auxiliary matrix the spatiotemporal mean vector and covariance matrix of the contaminant concentration are calculated&#46;</p><p id="par0095" class="elsevierStylePara elsevierViewall"><span class="elsevierStyleItalic">Step 12</span>&#46; The ESH is applied to estimate contaminant concentration&#46;</p><p id="par0100" class="elsevierStylePara elsevierViewall">Steps 6 to 10 are executed by GWMC and steps 3 to 11 are parallelized in this work&#46;</p></span><span id="sec0015" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0035">Python - MPI</span><p id="par0105" class="elsevierStylePara elsevierViewall">Python is an interpreter&#44; interactive and extensible programming language used in a wide variety of applications&#46; In particular&#44; for scientific computing there exist many tools that ease the development of computational codes &#40;<a class="elsevierStyleCrossRef" href="#bib0055">Milman and Aivazis&#44; 2011</a>&#41;&#46; Python can be combined easily with other programming languages&#44; like C&#44; C&#43;&#43; and Fortran&#44; and al-so can be used to exploit high performance computing architectures by using MPI &#40;Message Passing Interface&#41; &#91;<a class="elsevierStyleCrossRef" href="#bib0035">Gropp <span class="elsevierStyleItalic">et al</span>&#46;&#44; 1999</a>&#93; or CUDA &#40;Compute Unified Device Architecture&#41; &#91;<a class="elsevierStyleCrossRef" href="#bib0050">Kirk and Hwu&#44; 2010</a>&#93;&#46; Currently&#44; almost any operating system supports Python in such a way that this programming language provides portability across many computing platforms&#46;</p><p id="par0110" class="elsevierStylePara elsevierViewall">In this work our main objective is to reduce the execution time of the complete process described in section 4&#46; In order to avoid a complete re-design of our codes&#44; written mainly in FORTRAN&#44; we decided to use Python and MPI for Python &#40;MPI4PY&#41; &#91;<a class="elsevierStyleCrossRef" href="#bib0010">Dalcin&#44; 2012</a>&#93;&#46; MPI4PY provides an object-oriented approach for MPI which allows us to distribute tasks using Python scripts&#46; In the appendix we describe briefly the scripts developed in this work&#46;</p><p id="par0115" class="elsevierStylePara elsevierViewall">In <a class="elsevierStyleCrossRef" href="#fig0005">Figure 1</a> we sketch the parallelization process&#46; The main idea is to re-use FORTRAN codes with minimal modifications inside a Python script&#46; First&#44; we initialize all the variables and determine the corresponding inputs for the different executable codes&#46; Part of this process is done in a client machine&#44; before the parallel execution&#46; After that&#44; the client submits a batch task to the cluster&#46; Once the parallel execution starts&#44; each processor generates its own input files labeled using the processor number&#46; With the local inputs generated&#44; we execute a group of realizations in each processor&#46; The load balancing is done by the script&#44; distributing the same number of tasks for each processor&#46; Each rea-lization solves the same problem but with different inputs&#44; so the time required by each realization is almost the same&#46; Since the num-ber of realizations can be different for each processor&#44; we need to use a barrier at the end of the parallel execution&#46; However&#44; the waiting time for the last processor is negligible&#46; The calculation of the space-time mean and the covariance matrix is done in processor 1&#44; which requires information from all the processors&#46; Originally&#44; this was done in GWMC&#46; In our case&#44; we removed the corresponding FORTRAN code from the program&#44; and we put it in a separate subroutine that is called at the end of the script&#46; However this change is very simple and straightforward&#46; Finally&#44; the last step &#40;the ESH application&#41; is done as a post processing step in the client machine&#46;</p><elsevierMultimedia ident="fig0005"></elsevierMultimedia></span><span id="sec0020" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0040">Application problem</span><p id="par0120" class="elsevierStylePara elsevierViewall">An aquifer of 804&#46;7 by 804&#46;7 m<span class="elsevierStyleSup">2</span> is considered &#40;<a class="elsevierStyleCrossRef" href="#fig0010">figure 2</a>a&#41;&#46; A contaminant source is located on the left hand side border and the area is bounded by a river on the right hand side&#46; This problem was slightly modified from the one presented by <a class="elsevierStyleCrossRef" href="#bib0045">Herrera and Pinder &#40;2005&#41;</a>&#46;</p><elsevierMultimedia ident="fig0010"></elsevierMultimedia><p id="par0125" class="elsevierStylePara elsevierViewall">The objective is to estimate the contaminant concentrations of a moving plume during a 2-year period&#46; The locations at which concentration estimates will be obtained are associated with the nodes of what we call the estimation mesh shown in <a class="elsevierStyleCrossRef" href="#fig0010">Figure 2</a>a&#46; For each one of these locations&#44; concentrations will be estimated every 121&#46;7 days&#59; this amounts to six times during the 2-year period&#46;</p></span><span id="sec0025" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0045">Flow and transport model</span><p id="par0130" class="elsevierStylePara elsevierViewall">The PTC is used in two-dimensional mode to solve the flow and transport model&#46; The flow and transport equations coupled through Darcy&#39;s law&#44; equations &#40;1&#41;&#44; &#40;2&#41; and &#40;3&#41; respectively&#44; are used to describe the contaminant plume evolution&#58;<elsevierMultimedia ident="eq0005"></elsevierMultimedia><elsevierMultimedia ident="eq0010"></elsevierMultimedia><elsevierMultimedia ident="eq0015"></elsevierMultimedia></p><p id="par0135" class="elsevierStylePara elsevierViewall">where <span class="elsevierStyleItalic">K</span> is the hydraulic conductivity&#44; <span class="elsevierStyleItalic">h</span> is the hydraulic head&#44; <span class="elsevierStyleItalic">S</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">S</span></span> is the specific storage coefficient&#44; <span class="elsevierStyleItalic">Q</span> is a source or sink term&#44; <span class="elsevierStyleItalic">c</span> is the solute concentration&#44; <span class="elsevierStyleItalic">D</span> is the hydrodynamic dispersion&#44; <span class="elsevierStyleItalic">c</span><span class="elsevierStyleInf">0</span> is the concentration of the pumped fluid and f is the effective porosity&#46; The flow equation &#40;1&#41; describes the water flow through the aquifer&#59; the transport equation &#40;2&#41; describes the changes in contaminant concentration through time for a conservative solute&#46; Darcy&#39;s law &#40;3&#41; is used to calculate <span class="elsevierStyleItalic">V</span>&#44; Darcy velocity&#46; Boundary conditions for flow and transport are included in Figures 2a and 2b&#44; respectively&#46; Concentration is given in parts per million &#40;ppm&#41; and hydraulic head in meters &#40;m&#41;&#46;</p><p id="par0140" class="elsevierStylePara elsevierViewall">The numerical mesh used to solve the flow and transport equations is called the &#8220;stochastic simulation mesh&#8221;&#59; it consists of 40x40 equally sized elements &#40;<a class="elsevierStyleCrossRef" href="#fig0010">figure 2</a>b&#41;&#46; For the transport model forty-eight time-steps are used to simulate a two-year period&#44; 15&#46;2 days each&#46; For the flow model&#44; all nodes of the left hand side boundary have a value of <span class="elsevierStyleItalic">h</span> &#61; 50 <span class="elsevierStyleItalic">m</span>&#44; and all nodes of the right hand boundary have a value of <span class="elsevierStyleItalic">h</span> &#61; 0 <span class="elsevierStyleItalic">m</span>&#46; The contaminant source is active during all of this period&#44; with a constant concentration of <span class="elsevierStyleItalic">c</span> &#61; 50<span class="elsevierStyleHsp" style=""></span><span class="elsevierStyleItalic">ppm</span>&#46; Nodes that are not part of the contaminant source satisfy the condition &#8706;c&#8706;x&#61;0 The aquifer is assigned a thickness of 55 <span class="elsevierStyleItalic">m</span>&#44; a porosity of 0&#46;25&#44; a dispersivity of 33 <span class="elsevierStyleItalic">m</span> in the x direction and 3&#46;3 <span class="elsevierStyleItalic">m</span> in the y direction&#46;</p></span><span id="sec0030" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0050">Stochastic model</span><p id="par0145" class="elsevierStylePara elsevierViewall">As was mentioned before&#44; the hydraulic conductivity is represented as a spatially correlated random field&#59; thus&#44; the resulting velocity and dispersion fields&#44; also become spatially correlated random fields&#46;</p><p id="par0150" class="elsevierStylePara elsevierViewall">For this example we will assume that the hydraulic conductivity field has a lognormal distribution&#44; it is homogeneous&#44; stationary and isotropic&#46; The mean value of <span class="elsevierStyleItalic">F</span>&#40;<span class="elsevierStyleItalic">x</span>&#41; &#61; 1n<span class="elsevierStyleItalic">K</span>&#40;<span class="elsevierStyleItalic">x</span>&#41; is 3&#46;055 and the semivariogram that represents its spatial correlation structure is an exponential model&#44; i&#46;e&#46;&#58;<elsevierMultimedia ident="eq0020"></elsevierMultimedia></p><p id="par0155" class="elsevierStylePara elsevierViewall">where &#963;2F is the variance of <span class="elsevierStyleItalic">F</span> with value 0&#46;257813&#44; and <span class="elsevierStyleItalic">&#955;</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">F</span></span> is its correlation scale equal to 80&#46;467 m&#46;</p><p id="par0160" class="elsevierStylePara elsevierViewall">At each node the contaminant concentration is represented as a time series &#40;<a class="elsevierStyleCrossRef" href="#bib0045">Herrera and Pinder&#44; 2005</a>&#41;&#44; through<elsevierMultimedia ident="eq0025"></elsevierMultimedia></p><p id="par0165" class="elsevierStylePara elsevierViewall">where <span class="elsevierStyleItalic">e</span>&#40;<span class="elsevierStyleItalic">t</span>&#41; is a zero-mean random perturbation&#44; normally distributed and with a 0&#46;1948 variance&#46; For each source node&#44; in every simulation time step&#44; a different random perturbation is used&#46; The time correlation of the random perturbations is modeled with the semivariogram<elsevierMultimedia ident="eq0030"></elsevierMultimedia></p><p id="par0170" class="elsevierStylePara elsevierViewall">with <span class="elsevierStyleItalic">&#955;</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">e</span></span> equal to 11 days&#46;</p><p id="par0175" class="elsevierStylePara elsevierViewall">For this example we used 1000&#44; 2000 and 4000 realizations&#46;</p><p id="par0180" class="elsevierStylePara elsevierViewall">Estimation with the Ensemble Smother of Herrera &#40;ESH&#41;</p><p id="par0185" class="elsevierStylePara elsevierViewall">As was mentioned before&#44; Herrera &#40;1998&#41; developed the assimilation method independently of van Leeuwen and Evensen &#40;1996&#41;&#44; it was called static Kalman filter and later&#44; static ensemble Kalman filter &#40;EnKF&#41; by <a class="elsevierStyleCrossRef" href="#bib0060">Nowak <span class="elsevierStyleItalic">et al</span>&#46; &#40;2010&#41;</a>&#46;</p><p id="par0190" class="elsevierStylePara elsevierViewall">Using the ESH we estimate the conservative contaminant concentration using existing da-ta for a two-year period&#46; The concentration estimates are obtained at the nodes of what we call the ESH-mesh&#44; which is a submesh of the stochastic simulation mesh&#44; which consists of 5x5 equally sized elements &#40;this mesh is shown in <a class="elsevierStyleCrossRef" href="#fig0010">figure 2</a>a&#41;&#46; For each of these positions&#44; the concentrations are estimated six times over a period of two years&#44; equivalent to 121&#46;7 days&#46; To apply the ESH it is necessary to calculate the space-time covariance matrix of the contaminant concentration&#46;</p></span><span id="sec0035" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0055">Performance</span><p id="par0195" class="elsevierStylePara elsevierViewall">We execute our codes on a HP Cluster Platform 3000SL &#8220;Miztli&#8221;&#44; consisting of 5&#44;312 processing cores Intel E5-2670&#44; 16 cards NVIDIA m2090&#44; with 15&#44;000 GB of RAM&#44; and capable of processing up to 118 TFlop&#47;s&#46; The system has 750 TB of massive storage&#46;</p></span><span id="sec0040" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0060">Parallel metrics</span><p id="par0200" class="elsevierStylePara elsevierViewall">Some of the most commonly used metrics to determine the performance of a parallel algorithm are the speedup and efficiency&#46;</p><p id="par0205" class="elsevierStylePara elsevierViewall">The speedup &#40;S<span class="elsevierStyleInf">p</span>&#41; is defined as<elsevierMultimedia ident="eq0035"></elsevierMultimedia></p><p id="par0210" class="elsevierStylePara elsevierViewall">where <span class="elsevierStyleItalic">T</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">1</span></span> is the running time of the algorithm on one processor and <span class="elsevierStyleItalic">T</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">N</span></span> is the running time of the algorithm on N processors&#46;</p><p id="par0215" class="elsevierStylePara elsevierViewall">The efficiency &#40;<span class="elsevierStyleItalic">E</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">p</span></span>&#41; is defined as<elsevierMultimedia ident="eq0040"></elsevierMultimedia></p><p id="par0220" class="elsevierStylePara elsevierViewall">where <span class="elsevierStyleItalic">N</span> is the number of processors in which the algorithm execution is carried out&#46;</p><p id="par0225" class="elsevierStylePara elsevierViewall">In this paper&#44; these metrics are used to verify how efficient is the parallelization of GWMC&#46;</p><p id="par0230" class="elsevierStylePara elsevierViewall">The serial execution of GWMC for one thousand realizations took on average 24&#46;5<span class="elsevierStyleHsp" style=""></span>minutes using PTC to solve the flow and transport equations&#46;</p><p id="par0235" class="elsevierStylePara elsevierViewall">The parallel Python script was executed for 1000&#44; 2000 and 4000 realizations with different numbers of processors &#40;see <a class="elsevierStyleCrossRef" href="#tbl0005">Table 1</a>&#41;&#46; We observe that the speedup grows when the number of processors increases &#40;<a class="elsevierStyleCrossRef" href="#fig0015">figure 3</a>&#41;&#46; In <a class="elsevierStyleCrossRef" href="#fig0020">Figure 4</a> we see that the efficiency is more stable for the 4000 realizations case since it has fewer oscillations&#46; For the 1000 realizations case&#44; a speedup of 45&#46;06 was obtained with 64 processors and a correspondingly efficiency of 0&#46;70&#59; for the 2000 realizations case&#44; a speedup of 48&#46;64 was obtained with 64 processors and a correspondingly efficiency of 0&#46;76&#59; for the 4000 realizations case&#44; a speedup of 72&#46;18 was obtained with 96 processors and a correspondingly efficiency of 0&#46;75&#46; The number of realizations has not much effect in the speedup and efficiency&#44; since their values for the three cases for the same number of processors are similar&#46;</p><elsevierMultimedia ident="tbl0005"></elsevierMultimedia><elsevierMultimedia ident="fig0015"></elsevierMultimedia><elsevierMultimedia ident="fig0020"></elsevierMultimedia></span><span id="sec0045" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0065">Discussion</span><p id="par0240" class="elsevierStylePara elsevierViewall">The elapsed time&#44; the speedup and efficiency are limited by several factors&#58; serial fraction of the code&#44; load balancing&#44; data dependencies and communications&#46; In our case we have a minimal part of serial section&#58; at the very beginning of the code&#44; when the problem is set up in each processor&#59; and at the end of the code when we join the results of all processors to calculate the mean vector and the covariance matrix&#46; We have a very good load balancing due to the fact that each processor works on the same number of realizations&#46; There are not data dependencies during calculations&#44; except for the mean vector and covariance matrix calculations&#46; Finally&#44; the communications required to complete the calculations are also at the beginning and at the end of the code&#46;</p><p id="par0245" class="elsevierStylePara elsevierViewall">Almost all the factors that limit the efficiency of our code&#44; can be taken in to account in the serial fraction&#44; because are present at the beginning and the end of the code&#44; i&#46;e&#46; during the serial part of the execution&#46; Therefore&#44; using Amdahl&#39;s law &#40;<a class="elsevierStyleCrossRef" href="#bib0075">Ridgway <span class="elsevierStyleItalic">et al</span>&#46;&#44; 2005</a>&#41; we can predict the theoretical maximum speedup of the code beforehand&#46; Amdahl&#39;s law formula is<elsevierMultimedia ident="eq0045"></elsevierMultimedia></p><p id="par0250" class="elsevierStylePara elsevierViewall">where <span class="elsevierStyleItalic">f</span> represents the sequential fraction of the code and <span class="elsevierStyleItalic">p</span> is the number of processors&#46;</p><p id="par0255" class="elsevierStylePara elsevierViewall">The serial fraction is measured in time units&#44; therefore&#44; when we increase the number of realizations&#44; the processors will have more work to do in parallel reducing the serial fraction as a consequence&#46; This effect can be seen in the results presented in <a class="elsevierStyleCrossRef" href="#tbl0005">Table 1</a> and in <a class="elsevierStyleCrossRefs" href="#fig0015">Figures 3 and 4</a>&#44; where the speedup and the efficiency are more stable when the number of realizations is increased&#46;</p><p id="par0260" class="elsevierStylePara elsevierViewall">In <a class="elsevierStyleCrossRef" href="#fig0025">figure 5</a>&#44; we compare our speedup results against Amdahl&#39;s law drawn for 4000 realizations&#46; We observe that our results for the three cases are in very good agreement with the predictions of this law&#46; The mean squared errors of our results&#44; compared with the Amdahl&#39;s law&#44; are 1&#46;95&#44; 1&#46;86 and 1&#46;43 for 1000&#44; 2000 and 4000 realizations&#44; respectively&#44; which proofs also the effectiveness of our approach&#46; Besides&#44; the efficiencies obtained are also greater than 0&#46;70&#44; in such a way that our parallel codes are scalable &#40;see <a class="elsevierStyleCrossRef" href="#bib0075">Ridgway <span class="elsevierStyleItalic">et al</span>&#46;&#44; 2005</a>&#41;&#46;</p><elsevierMultimedia ident="fig0025"></elsevierMultimedia><p id="par0265" class="elsevierStylePara elsevierViewall">Amdahl&#39;s law assumes a perfect load balancing&#46; The definition of load balancing is in terms of the time <span class="elsevierStyleItalic">t</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">i</span></span> that each processor takes in its calculations during the parallel part&#46; A good balancing is when all the <span class="elsevierStyleItalic">t</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">i</span></span>&#39;s have the same value approximately&#46; In terms of these <span class="elsevierStyleItalic">t</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">i</span></span>&#39;s the parallel time of the code will be <span class="elsevierStyleItalic">T</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">p</span></span> &#61; max&#123;<span class="elsevierStyleItalic">t</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">i</span></span> &#58; <span class="elsevierStyleItalic">i</span> &#61; 1&#44; &#46;&#46;&#46;&#44; <span class="elsevierStyleItalic">p</span>&#125;&#46; It is reasonable to assume that the time of the whole process in one processor is <span class="elsevierStyleItalic">T</span><span class="elsevierStyleInf">1</span> &#61; sum&#123;<span class="elsevierStyleItalic">t</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">i</span></span> &#58; <span class="elsevierStyleItalic">i</span> &#61; 1&#44; &#46;&#46;&#46;&#44; <span class="elsevierStyleItalic">p</span>&#125;&#46; Then using the efficiency we have&#58;<elsevierMultimedia ident="eq0050"></elsevierMultimedia></p><p id="par0270" class="elsevierStylePara elsevierViewall">Therefore&#44; we can write<elsevierMultimedia ident="eq0055"></elsevierMultimedia></p><p id="par0275" class="elsevierStylePara elsevierViewall">Hence&#44; if the load balancing is bad&#44; then the max&#123;<span class="elsevierStyleItalic">t</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">i</span></span> &#58; <span class="elsevierStyleItalic">i</span> &#61; 1&#44; &#46;&#46;&#46;&#44; <span class="elsevierStyleItalic">p</span>&#125; will be high&#44; reducing the efficiency and speedup&#46; In our case&#44; we distribute the realizations on the processors evenly&#44; producing averages and a maximum&#44; of <span class="elsevierStyleItalic">t</span><span class="elsevierStyleInf"><span class="elsevierStyleItalic">i</span></span> &#58; <span class="elsevierStyleItalic">i</span> &#61; 1&#44; &#46;&#46;&#46;&#44; <span class="elsevierStyleItalic">p</span>&#44; with very similar values&#46;</p><p id="par0280" class="elsevierStylePara elsevierViewall">Another important aspect in parallel applications is the communication between processors&#46; In the cluster we used&#44; the connections between processing nodes is based on Infiniband QDR 40 Gigabits per second technology&#46; This network reduce drastically the communications time of our codes&#44; besides we do not use exchange of information once the parallel process is initiated&#44; only at the setup of the problem and at the end of the calculations&#46; We also tested the same codes on a cluster with Ethernet interconnection but the results were not as good as with those obtained with the Infiniband technology&#46;</p></span><span id="sec0050" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0070">Conclusions</span><p id="par0285" class="elsevierStylePara elsevierViewall">In this paper&#44; a parallelization strategy for Monte Carlo-type stochastic modeling&#44; with PTC-related programs&#44; has been described&#46; The software GWMC implements this process for one processor&#46; Our strategy allows us to re-use all these codes&#44; with minimal modifications&#46;</p><p id="par0290" class="elsevierStylePara elsevierViewall">The results obtained in parallel show that the performance is more stable as the workload for each processor is increased&#46; In particular we obtained a very good efficiency for 4000 realizations and 96 processors&#46; In this case we have an efficiency of 0&#46;75 which makes our codes scalable and useful for large scale applications&#46; During the development of this work&#44; we have not installed any complicated software&#44; we just use the common libraries installed in the Miztli cluster&#46; In addition&#44; we made a very simple modification of our original FORTRAN code to calculate the global covariance matrix&#46;</p><p id="par0295" class="elsevierStylePara elsevierViewall">We believe that our strategy is simple but effective for a large number of simulations and can be applied to study more complicated problems&#44; where the execution times can be very large&#46;</p><p id="par0300" class="elsevierStylePara elsevierViewall">We show in <a class="elsevierStyleCrossRef" href="#fig0025">Figure 5</a> that the speedup of 1000&#44; 2000 and 4000 realizations has a good load balancing&#44; because the Amdahl&#39;s law assumes a perfect load balancing&#44; and the speedup meets the conditions described in the discussion section&#44; for this reason&#44; we assume that our speedup had a good load balancing&#46;</p></span><span id="sec0055" class="elsevierStyleSection elsevierViewall"><span class="elsevierStyleSectionTitle" id="sect0075">Appendix</span><p id="par0305" class="elsevierStylePara elsevierViewall">In what follows we describe parts of the script written to parallelize the process described in section 4&#46;</p><p id="par0310" class="elsevierStylePara elsevierViewall">1&#41; A first step is to create directories to facilitate the parallelization and storing of the information&#46; We use the rank of the processor to define the name of each directory&#58;</p><p id="par0315" class="elsevierStylePara elsevierViewall">if os&#46;path&#46;isdir&#40;&#8216;&#37;s&#8217; &#37; t &#43; &#8216;&#37;d&#8217; &#37; rank&#41;&#58;</p><p id="par0320" class="elsevierStylePara elsevierViewall">shutil&#46;rmtree&#40;&#8216;&#37;s&#8217; &#37; t &#43; &#8216;&#37;d&#8217; &#37; rank&#41;</p><p id="par0325" class="elsevierStylePara elsevierViewall">os&#46;mkdir&#40;&#8216;&#37;s&#8217; &#37; t &#43; &#8216;&#37;d&#8217; &#37; rank&#41;</p><p id="par0330" class="elsevierStylePara elsevierViewall">os&#46;chdir&#40;&#8216;&#37;s&#8217; &#37; t &#43; &#8216;&#37;d&#8217; &#37; rank&#41;</p><p id="par0335" class="elsevierStylePara elsevierViewall">2&#41; Four input files need to be modified&#44; these are&#58; gwqmonitor&#46;par&#44; sgsim&#46;par&#44; nrm2log&#46;par and randTS2&#46;par&#46; Each file contains inputs for codes rndcsim&#44; sgsim&#44; nrlm2log and randTS2 respectively&#46; Modification of file sgsim&#46;par is shown below&#58;</p><p id="par0340" class="elsevierStylePara elsevierViewall">ofile &#61; open&#40;&#8220;sgsim&#46;par&#8221;&#44; &#8216;w&#8217;&#41;</p><p id="par0345" class="elsevierStylePara elsevierViewall">i&#61;0</p><p id="par0350" class="elsevierStylePara elsevierViewall">for line in lines&#58;</p><p id="par0355" class="elsevierStylePara elsevierViewall">i&#43;&#61;1</p><p id="par0360" class="elsevierStylePara elsevierViewall">if i&#61;&#61;21&#58;</p><p id="par0365" class="elsevierStylePara elsevierViewall">ofile&#46;write&#40;&#8216;&#37;d &#92;n&#8217; &#37; local&#95;realizaciones&#41;</p><p id="par0370" class="elsevierStylePara elsevierViewall">elif i&#61;&#61;25&#58;</p><p id="par0375" class="elsevierStylePara elsevierViewall">j&#43;&#61;2</p><p id="par0380" class="elsevierStylePara elsevierViewall">ofile&#46;write&#40;&#8216;&#37;d &#92;n&#8217; &#37; j&#41;</p><p id="par0385" class="elsevierStylePara elsevierViewall">else&#58;</p><p id="par0390" class="elsevierStylePara elsevierViewall">ofile&#46;write&#40;&#8216;&#37;s&#8217; &#37; line&#41;</p><p id="par0395" class="elsevierStylePara elsevierViewall">ofile&#46;close&#40;&#41;</p><p id="par0400" class="elsevierStylePara elsevierViewall">3&#41; All input files are copied in each cluster node in order to run the programs sgsim&#44; nrm2log&#44; randTS2 and GWQMonitor&#46; Once the copy of the input files is done&#44; we execute each one of these programs&#46; Note that the FORTRAN executable codes are run using a system call from the python script&#58;</p><p id="par0405" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;&#46;&#47;sgsim &#60; sgsim&#46;par &#62; sgsim&#46;OUTPY&#8217;&#41;</p><p id="par0410" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;&#46;&#47;nrm2log &#62; nrm2log&#46;OUTPY&#8217;&#41;</p><p id="par0415" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;&#46;&#47;randts2 &#62; randts2&#46;OUTPY&#8217;&#41;</p><p id="par0420" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;&#46;&#47;gwqmonitor &#62; gwqmonitor&#46;OUTPY&#8217;&#41;</p><p id="par0425" class="elsevierStylePara elsevierViewall">4&#41; For the calculation of the covariance matrix&#44; we use a barrier to ensure that the information from the different processors has been arrived to the memory of processor that construct the covariance matrix&#46; Calculation of the covariance matrix is carried out after this information is gathered&#46;</p><p id="par0430" class="elsevierStylePara elsevierViewall">MPI&#46;COMM&#95;WORLD&#46;Barrier&#40;&#41;</p><p id="par0435" class="elsevierStylePara elsevierViewall">if &#40;rank&#61;&#61;0&#41;&#58;</p><p id="par0440" class="elsevierStylePara elsevierViewall">def checkfile&#40;archivo&#41;&#58;</p><p id="par0445" class="elsevierStylePara elsevierViewall">import os&#46;path</p><p id="par0450" class="elsevierStylePara elsevierViewall">if os&#46;path&#46;isfile&#40;archivo&#41;&#58;</p><p id="par0455" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;rm &#37;s&#8217;&#37;archivo&#41;</p><p id="par0460" class="elsevierStylePara elsevierViewall">os&#46;chdir&#40;&#8216;&#47;home&#47;estherl&#47;NV3-MPI&#47;&#8217;&#41;</p><p id="par0465" class="elsevierStylePara elsevierViewall">checkfile&#40;&#8216;covarianza&#46;out&#8217;&#41;</p><p id="par0470" class="elsevierStylePara elsevierViewall">checkfile&#40;&#8216;media&#46;out&#8217;&#41;</p><p id="par0475" class="elsevierStylePara elsevierViewall">print&#40;&#8220;tiempo sgsim &#61; &#37;e&#8217; &#37; &#40;t2-t1&#41;&#41;</p><p id="par0480" class="elsevierStylePara elsevierViewall">print&#40;&#8220;tiempo nrmlog &#61; &#37;e&#8217; &#37; &#40;t3-t2&#41;&#41;</p><p id="par0485" class="elsevierStylePara elsevierViewall">print&#40;&#8220;tiempo randts2 &#61; &#37;e&#8217; &#37; &#40;t4-t3&#41;&#41;</p><p id="par0490" class="elsevierStylePara elsevierViewall">print&#40;&#8220;tiempo gwqmonitor &#61; &#37;e&#8217; &#37; &#40;t5-t4&#41;&#41;</p><p id="par0495" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;&#46;&#47;matriz &#37;d&#8217; &#37;size&#41;</p><p id="par0500" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;mv meanvect&#42;&#46;out basura&#47;&#8217;&#41;</p><p id="par0505" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;mv meanplume&#42;&#46;out basura&#47;&#8217;&#41;</p><p id="par0510" class="elsevierStylePara elsevierViewall">os&#46;system&#40;&#8216;mv covmatrx&#42;&#46;out basura&#47;&#8217;&#41;</p><p id="par0515" class="elsevierStylePara elsevierViewall">Observe that the steps 1&#41; to 4&#41; are all executed by all processors in parallel&#59; it is only using the rank of each processor that is possible to assign different tasks to each processor&#46; Actually&#44; this latter is done in the step 4&#41;&#46;</p></span></span>"
    "textoCompletoSecciones" => array:1 [
      "secciones" => array:17 [
        0 => array:3 [
          "identificador" => "xres551700"
          "titulo" => "Resumen"
          "secciones" => array:1 [
            0 => array:1 [
              "identificador" => "abst0005"
            ]
          ]
        ]
        1 => array:2 [
          "identificador" => "xpalclavsec569114"
          "titulo" => "Palabras clave"
        ]
        2 => array:3 [
          "identificador" => "xres551701"
          "titulo" => "Abstract"
          "secciones" => array:1 [
            0 => array:1 [
              "identificador" => "abst0010"
            ]
          ]
        ]
        3 => array:2 [
          "identificador" => "xpalclavsec569115"
          "titulo" => "Keywords"
        ]
        4 => array:2 [
          "identificador" => "sec0005"
          "titulo" => "Introduction"
        ]
        5 => array:2 [
          "identificador" => "sec0010"
          "titulo" => "Methodology"
        ]
        6 => array:2 [
          "identificador" => "sec0015"
          "titulo" => "Python - MPI"
        ]
        7 => array:2 [
          "identificador" => "sec0020"
          "titulo" => "Application problem"
        ]
        8 => array:2 [
          "identificador" => "sec0025"
          "titulo" => "Flow and transport model"
        ]
        9 => array:2 [
          "identificador" => "sec0030"
          "titulo" => "Stochastic model"
        ]
        10 => array:2 [
          "identificador" => "sec0035"
          "titulo" => "Performance"
        ]
        11 => array:2 [
          "identificador" => "sec0040"
          "titulo" => "Parallel metrics"
        ]
        12 => array:2 [
          "identificador" => "sec0045"
          "titulo" => "Discussion"
        ]
        13 => array:2 [
          "identificador" => "sec0050"
          "titulo" => "Conclusions"
        ]
        14 => array:2 [
          "identificador" => "sec0055"
          "titulo" => "Appendix"
        ]
        15 => array:2 [
          "identificador" => "xack186043"
          "titulo" => "Acknowledgements"
        ]
        16 => array:1 [
          "titulo" => "References"
        ]
      ]
    ]
    "pdfFichero" => "main.pdf"
    "tienePdf" => true
    "fechaRecibido" => "2013-08-15"
    "fechaAceptado" => "2014-01-01"
    "PalabrasClave" => array:2 [
      "es" => array:1 [
        0 => array:4 [
          "clase" => "keyword"
          "titulo" => "Palabras clave"
          "identificador" => "xpalclavsec569114"
          "palabras" => array:5 [
            0 => "Agua subterr&#225;nea"
            1 => "flujo y transporte"
            2 => "simulaci&#243;n Monte Carlo"
            3 => "c&#243;mputo paralelo distribuido"
            4 => "Python&#46;"
          ]
        ]
      ]
      "en" => array:1 [
        0 => array:4 [
          "clase" => "keyword"
          "titulo" => "Keywords"
          "identificador" => "xpalclavsec569115"
          "palabras" => array:5 [
            0 => "groundwater"
            1 => "flow and transport"
            2 => "Monte Carlo simulation"
            3 => "distributed parallel computing"
            4 => "Python&#46;"
          ]
        ]
      ]
    ]
    "tieneResumen" => true
    "resumen" => array:2 [
      "es" => array:2 [
        "titulo" => "Resumen"
        "resumen" => "<span id="abst0005" class="elsevierStyleSection elsevierViewall"><p id="spar0005" class="elsevierStyleSimplePara elsevierViewall">En este art&#237;culo se presentan los resultados de una estrategia de paralelizaci&#243;n para reducir el tiempo de ejecuci&#243;n al aplicar la simulaci&#243;n Monte Carlo con un gran n&#250;mero de realizaciones obtenidas utilizando un modelo de flujo y transporte de agua subterr&#225;nea&#46; Desarrollamos un script en Python usando mpi4py&#44; a fin de ejecutar GWMC y programas relacionados en paralelo aplicando la biblioteca MPI&#46; Nuestro enfoque consiste en calcular las entradas iniciales para cada realizaci&#243;n y correr grupos de estas realizaciones en procesadores separados y despu&#233;s calcular el vector medio y la matriz de covarianza de las mismas&#46; Esta estrategia se aplic&#243; al estudio de un acu&#237;fero simplificado en un dominio rectangular de una sola capa&#46; Presentamos los resultados de aceleraci&#243;n y eficiencia para 1000&#44; 2000 y 4000 realizaciones para diferente n&#250;mero de procesadores&#46; Eficiencias de 0&#44;70&#44; 0&#44;76 y 0&#44;75 se obtuvieron para 64&#44; 64 y 96 procesadores&#44; respectivamente&#46; Observamos una mejora ligera del rendimiento a medida que aumenta el n&#250;mero de realizaciones&#46;</p></span>"
      ]
      "en" => array:2 [
        "titulo" => "Abstract"
        "resumen" => "<span id="abst0010" class="elsevierStyleSection elsevierViewall"><p id="spar0010" class="elsevierStyleSimplePara elsevierViewall">In this paper we present the results of a parallelization strategy to reduce the execution time for applying Monte Carlo simulation with a large number of realizations obtained using a groundwater flow and transport model&#46; We develop a script in Python using mpi4py&#44; in order to execute GWMC and related programs in parallel&#44; applying the MPI library&#46; Our approach is to calculate the initial inputs for each realization&#44; and run groups of these realizations in separate processors and afterwards to calculate the mean vector and the covariance matrix of them&#46; This strategy was applied to the study of a simplified aquifer in a rectangular domain of a single layer&#46; We report the results of speedup and efficiency for 1000&#44; 2000 and 4000 realizations for different number of processors&#46; Efficiencies of 0&#46;70&#44; 0&#46;76 and 0&#46;75 were obtained for 64&#44; 64 and 96 processors&#44; respectively&#46; We observe a slightly improvement of the performance as the number of realizations is increased&#46;</p></span>"
      ]
    ]
    "multimedia" => array:17 [
      0 => array:7 [
        "identificador" => "fig0005"
        "etiqueta" => "Figure 1"
        "tipo" => "MULTIMEDIAFIGURA"
        "mostrarFloat" => true
        "mostrarDisplay" => false
        "figura" => array:1 [
          0 => array:4 [
            "imagen" => "gr1.jpeg"
            "Alto" => 1502
            "Ancho" => 1873
            "Tamanyo" => 208769
          ]
        ]
        "descripcion" => array:1 [
          "en" => "<p id="spar0015" class="elsevierStyleSimplePara elsevierViewall">Parallelization process&#46; Task 3 to 10 are done in parallel&#44; while task 12 is calculated in processor 1&#46;</p>"
        ]
      ]
      1 => array:7 [
        "identificador" => "fig0010"
        "etiqueta" => "Figure 2"
        "tipo" => "MULTIMEDIAFIGURA"
        "mostrarFloat" => true
        "mostrarDisplay" => false
        "figura" => array:1 [
          0 => array:4 [
            "imagen" => "gr2.jpeg"
            "Alto" => 965
            "Ancho" => 1719
            "Tamanyo" => 194903
          ]
        ]
        "descripcion" => array:1 [
          "en" => "<p id="spar0020" class="elsevierStyleSimplePara elsevierViewall">a&#41; Problem set up with the estimation mesh and boundary conditions for the flow model &#40;h is in meters&#41;&#44; b&#41; Stochastic simulation mesh and boundary conditions for the transport model &#40;modified from <a class="elsevierStyleCrossRef" href="#bib0065">Olivares-V&#225;zquez&#44; 2002</a>&#41;&#46;</p>"
        ]
      ]
      2 => array:7 [
        "identificador" => "fig0015"
        "etiqueta" => "Figure 3"
        "tipo" => "MULTIMEDIAFIGURA"
        "mostrarFloat" => true
        "mostrarDisplay" => false
        "figura" => array:1 [
          0 => array:4 [
            "imagen" => "gr3.jpeg"
            "Alto" => 758
            "Ancho" => 1253
            "Tamanyo" => 98436
          ]
        ]
        "descripcion" => array:1 [
          "en" => "<p id="spar0025" class="elsevierStyleSimplePara elsevierViewall">Speedup versus number of processors for 1000&#44; 2000 and 4000 realizations&#46;</p>"
        ]
      ]
      3 => array:7 [
        "identificador" => "fig0020"
        "etiqueta" => "Figure 4"
        "tipo" => "MULTIMEDIAFIGURA"
        "mostrarFloat" => true
        "mostrarDisplay" => false
        "figura" => array:1 [
          0 => array:4 [
            "imagen" => "gr4.jpeg"
            "Alto" => 756
            "Ancho" => 1255
            "Tamanyo" => 96379
          ]
        ]
        "descripcion" => array:1 [
          "en" => "<p id="spar0030" class="elsevierStyleSimplePara elsevierViewall">Efficiency versus num-ber of processors for 1000&#44; 2000 and 4000 realizations&#46;</p>"
        ]
      ]
      4 => array:7 [
        "identificador" => "fig0025"
        "etiqueta" => "Figure 5"
        "tipo" => "MULTIMEDIAFIGURA"
        "mostrarFloat" => true
        "mostrarDisplay" => false
        "figura" => array:1 [
          0 => array:4 [
            "imagen" => "gr5.jpeg"
            "Alto" => 632
            "Ancho" => 1255
            "Tamanyo" => 87275
          ]
        ]
        "descripcion" => array:1 [
          "en" => "<p id="spar0035" class="elsevierStyleSimplePara elsevierViewall">The comparative bet-ween the Amdahl&#39;s law and the speedup to 1000&#44; 2000 and 4000 realizations&#46;</p>"
        ]
      ]
      5 => array:7 [
        "identificador" => "tbl0005"
        "etiqueta" => "Table 1"
        "tipo" => "MULTIMEDIATABLA"
        "mostrarFloat" => true
        "mostrarDisplay" => false
        "tabla" => array:1 [
          "tablatextoimagen" => array:1 [
            0 => array:2 [
              "tabla" => array:1 [
                0 => """
                  <table border="0" frame="\n
                  \t\t\t\t\tvoid\n
                  \t\t\t\t" class=""><thead title="thead"><tr title="table-row"><th class="td" title="table-head  " align="" valign="top" scope="col">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="" valign="top" scope="col">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col">S<span class="elsevierStyleInf">p</span>&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="" valign="top" scope="col">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="" valign="top" scope="col">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col">E<span class="elsevierStyleInf">p</span>&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="" valign="top" scope="col">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col">Amdahl&#39;s law&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="" valign="top" scope="col">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="" valign="top" scope="col">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th></tr><tr title="table-row"><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">Realizations Processors&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">1000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">2000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">4000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">1000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">2000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">4000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">1000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">2000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th><th class="td" title="table-head  " align="left" valign="top" scope="col" style="border-bottom: 2px solid black">4000&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</th></tr></thead><tbody title="tbody"><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">2&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&#46;96&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&#46;88&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&#46;90&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;98&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;94&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;95&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&#46;99&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&#46;99&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">1&#46;99&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">4&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">3&#46;96&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">3&#46;47&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">3&#46;75&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;99&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;87&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;94&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">3&#46;99&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">3&#46;99&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">3&#46;97&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">8&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">6&#46;22&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">7&#46;25&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">7&#46;12&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;78&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;91&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;89&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">7&#46;97&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">7&#46;98&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">7&#46;88&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">12&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">11&#46;36&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">9&#46;89&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">10&#46;30&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;95&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;82&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;86&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">11&#46;94&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">11&#46;96&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">11&#46;73&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">16&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">14&#46;33&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">13&#46;50&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">12&#46;49&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;90&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;84&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;78&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">15&#46;90&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">15&#46;93&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">15&#46;52&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">24&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">21&#46;38&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">17&#46;29&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">19&#46;34&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;89&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;72&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;81&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">23&#46;77&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">23&#46;85&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">22&#46;92&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">32&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">26&#46;75&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">26&#46;80&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">25&#46;04&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;84&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;84&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;78&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">31&#46;60&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">31&#46;74&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">30&#46;09&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">48&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">40&#46;47&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">39&#46;50&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">37&#46;62&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;84&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;82&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;78&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">47&#46;10&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">47&#46;42&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">43&#46;79&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">64&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">45&#46;06&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">48&#46;64&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">49&#46;07&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;70&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;76&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;77&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">62&#46;41&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">62&#46;96&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">56&#46;70&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">80&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">59&#46;85&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;75&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">77&#46;52&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">78&#46;39&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">68&#46;88&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr><tr title="table-row"><td class="td" title="table-entry  " align="left" valign="top">96&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">72&#46;18&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="" valign="top">&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">0&#46;75&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">92&#46;45&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">93&#46;68&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td><td class="td" title="table-entry  " align="left" valign="top">80&#46;40&nbsp;\t\t\t\t\t\t\n
                  \t\t\t\t</td></tr></tbody></table>
                  """
              ]
              "imagenFichero" => array:1 [
                0 => "xTab890450.png"
              ]
            ]
          ]
        ]
        "descripcion" => array:1 [
          "en" => "<p id="spar0040" class="elsevierStyleSimplePara elsevierViewall">Speedup &#40;Sp&#41;&#44; efficiency &#40;Ep&#41; and Amdahl&#39;s law data with different number of processors for 1000&#44; 2000 and 4000 realizations&#46;</p>"
        ]
      ]
      6 => array:6 [
        "identificador" => "eq0005"
        "etiqueta" => "&#40;1&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx1.jpeg"
              "Tamanyo" => 25651
              "Alto" => 160
              "Ancho" => 1125
            ]
          ]
        ]
      ]
      7 => array:6 [
        "identificador" => "eq0010"
        "etiqueta" => "&#40;2&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx2.jpeg"
              "Tamanyo" => 35287
              "Alto" => 177
              "Ancho" => 1429
            ]
          ]
        ]
      ]
      8 => array:6 [
        "identificador" => "eq0015"
        "etiqueta" => "&#40;3&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx3.jpeg"
              "Tamanyo" => 17645
              "Alto" => 63
              "Ancho" => 924
            ]
          ]
        ]
      ]
      9 => array:6 [
        "identificador" => "eq0020"
        "etiqueta" => "&#40;4&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx4.jpeg"
              "Tamanyo" => 30698
              "Alto" => 197
              "Ancho" => 1191
            ]
          ]
        ]
      ]
      10 => array:6 [
        "identificador" => "eq0025"
        "etiqueta" => "&#40;5&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx5.jpeg"
              "Tamanyo" => 24808
              "Alto" => 74
              "Ancho" => 1153
            ]
          ]
        ]
      ]
      11 => array:6 [
        "identificador" => "eq0030"
        "etiqueta" => "&#40;6&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx6.jpeg"
              "Tamanyo" => 41771
              "Alto" => 196
              "Ancho" => 1239
            ]
          ]
        ]
      ]
      12 => array:6 [
        "identificador" => "eq0035"
        "etiqueta" => "&#40;7&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx7.jpeg"
              "Tamanyo" => 19874
              "Alto" => 217
              "Ancho" => 871
            ]
          ]
        ]
      ]
      13 => array:6 [
        "identificador" => "eq0040"
        "etiqueta" => "&#40;8&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx8.jpeg"
              "Tamanyo" => 30642
              "Alto" => 205
              "Ancho" => 873
            ]
          ]
        ]
      ]
      14 => array:6 [
        "identificador" => "eq0045"
        "etiqueta" => "&#40;9&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx9.jpeg"
              "Tamanyo" => 41197
              "Alto" => 192
              "Ancho" => 1044
            ]
          ]
        ]
      ]
      15 => array:6 [
        "identificador" => "eq0050"
        "etiqueta" => "&#40;10&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx10.jpeg"
              "Tamanyo" => 42481
              "Alto" => 228
              "Ancho" => 1267
            ]
          ]
        ]
      ]
      16 => array:6 [
        "identificador" => "eq0055"
        "etiqueta" => "&#40;11&#41;"
        "tipo" => "MULTIMEDIAFORMULA"
        "mostrarFloat" => false
        "mostrarDisplay" => true
        "Formula" => array:1 [
          "imagen" => array:1 [
            0 => array:4 [
              "Fichero" => "fx11.jpeg"
              "Tamanyo" => 49547
              "Alto" => 222
              "Ancho" => 1169
            ]
          ]
        ]
      ]
    ]
    "bibliografia" => array:2 [
      "titulo" => "References"
      "seccion" => array:1 [
        0 => array:2 [
          "identificador" => "bibs0005"
          "bibliografiaReferencia" => array:16 [
            0 => array:3 [
              "identificador" => "bib0005"
              "etiqueta" => "Babu et al&#46;&#44; 1993"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Babu D&#46;K&#46;&#44; Pinder G&#46;F&#46;&#44; Niemi A&#46;&#44; Ahlfeld D&#46;P&#46;&#44; Stothoff S&#46;A&#46;&#44; 1993&#46; Chemical transport by three-dimensional groundwater flows&#46; Tech&#46; Rep&#46; 84-WR-3&#44; Dep&#46; of Civ&#46; Eng&#46;&#44; Princeton Univ&#46;&#44; Princeton&#44; N&#46;J&#46;"
                ]
              ]
            ]
            1 => array:3 [
              "identificador" => "bib0010"
              "etiqueta" => "Dalcin&#44; 2012"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Dalcin L&#46;&#44; 2012&#46; MPI for Python&#44; Release 1&#46;3&#46; URL&#58; http&#58;&#47;&#47;mpi4py&#46;scipy&#46;org&#47;&#46;"
                ]
              ]
            ]
            2 => array:3 [
              "identificador" => "bib0015"
              "etiqueta" => "Deutsch and Journel&#44; 1997"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Deutsch C&#46;V&#46;&#44; Journel A&#46;G&#46;&#44; 1997&#46; GSLIB&#46; Geostatistical Software Library and User&#39;s Guide&#46; Ed&#46; OXFORD UNIVERSITY PRESS&#44; 2a&#46; ed&#46;&#44; New York&#44; 1998&#44; 369 p&#46;"
                ]
              ]
            ]
            3 => array:3 [
              "identificador" => "bib0020"
              "etiqueta" => "Dong et al&#46;&#44; 2012"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Dong Y&#46;&#44; Li G&#46;&#44; Xu H&#46;&#44; 2012&#44; Distributed Parallel Computing in Stochastic Modeling of Groundwater Systems&#46; <span class="elsevierStyleItalic">Groundwater Journal</span>&#46; 51&#44; 2&#44; 293-297 p&#46;"
                ]
              ]
            ]
            4 => array:3 [
              "identificador" => "bib0025"
              "etiqueta" => "Foster et al&#46;&#44; 2001"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Foster I&#46;&#44; Kesselman C&#46;&#44; Tuecke S&#46;&#44; 2001&#44; The Anatomy of the Grid&#58; Enabling Scalable Virtual Organizations&#46; <span class="elsevierStyleItalic">International Journal of High Performance Computing Fall</span>&#44; 15&#44; 200-222 p&#46;"
                ]
              ]
            ]
            5 => array:3 [
              "identificador" => "bib0030"
              "etiqueta" => "Freeze&#44; 1975"
              "referencia" => array:1 [
                0 => array:2 [
                  "contribucion" => array:1 [
                    0 => array:2 [
                      "titulo" => "A stochastic-conceptual analysis of one dimensional groundwater flow in nonuniform homogeneous media"
                      "autores" => array:1 [
                        0 => array:2 [
                          "etal" => false
                          "autores" => array:1 [
                            0 => "R&#46;A&#46; Freeze"
                          ]
                        ]
                      ]
                    ]
                  ]
                  "host" => array:1 [
                    0 => array:1 [
                      "Revista" => array:6 [
                        "tituloSerie" => "Water Resources Research"
                        "fecha" => "1975"
                        "volumen" => "11"
                        "numero" => "5"
                        "paginaInicial" => "725"
                        "paginaFinal" => "741"
                      ]
                    ]
                  ]
                ]
              ]
            ]
            6 => array:3 [
              "identificador" => "bib0035"
              "etiqueta" => "Gropp et al&#46;&#44; 1999"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Gropp W&#46;&#44; Lusk E&#46;&#44; Skjellum A&#46;&#44; 1999&#44; Using MPI-2&#58; Advanced Features of the Message-Passing Interface&#46; MIT Press Cambridge&#44; MA&#44; USA&#46; ISBN 0262571331&#46;"
                ]
              ]
            ]
            7 => array:3 [
              "identificador" => "bib0040"
              "etiqueta" => "Herrera de Olivares&#44; 1998"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Herrera de Olivares G&#46;S&#46;&#44; 1998&#44; Cost Effective Groundwater Quality Sampling Network Design&#44; Ph&#46;D&#46; Thesis&#44; University of Vermont&#46;"
                ]
              ]
            ]
            8 => array:3 [
              "identificador" => "bib0045"
              "etiqueta" => "Herrera and Pinder&#44; 2005"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Herrera G&#46;S&#46;&#44; Pinder G&#46;F&#46;&#44; 2005&#44; Space-time optimization of groundwater quality sampling networks&#46; <span class="elsevierStyleItalic">Water Resources Research</span>&#44; 41&#44; 15 p&#46;"
                ]
              ]
            ]
            9 => array:3 [
              "identificador" => "bib0050"
              "etiqueta" => "Kirk and Hwu&#44; 2010"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Kirk D&#46;B&#46;&#44; Hwu W&#46;-M&#46;W&#46;&#44; 2010&#44; Programming Massively Parallel Processors&#58; A Hands-on Approach&#46; Ed&#46; Morgan Kaufmann Publishers Inc&#46;&#44; 1rs ed&#46;&#44; San Francisco&#44; CA&#44; USA&#46;"
                ]
              ]
            ]
            10 => array:3 [
              "identificador" => "bib0055"
              "etiqueta" => "Milman and Aivazis&#44; 2011"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Milman K&#46;J&#46;&#44; Aivazis M&#46;&#44; 2011&#44; Python for Scientists and Engineers&#46; Computing in Science &#38; Engineering&#44; 13&#44; 9-12 p&#46; URL&#58; http&#58;&#47;&#47;dx&#46;doi&#46;org&#47;10&#46;1109&#47;MCSE&#46;&#59;1&#59; 2011&#46;36&#46;"
                ]
              ]
            ]
            11 => array:3 [
              "identificador" => "bib0060"
              "etiqueta" => "Nowak et al&#46;&#44; 2010"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Nowak W&#46;&#44; De Barros F&#46;P&#46;J&#46;&#44; Rubin Y&#46;&#44; 2010&#44; Bayesian geostatistical design&#58; Task-driven optimal site investigation when the geostatistical model is uncertain&#46; <span class="elsevierStyleItalic">Water Resources Research</span>&#44; 46&#44; W03535&#44; doi&#58;10&#46;1029&#47;2009WR008312&#46;"
                ]
              ]
            ]
            12 => array:3 [
              "identificador" => "bib0065"
              "etiqueta" => "Olivares-V&#225;zquez&#44; 2002"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Olivares-V&#225;zquez J&#46;L&#46; Groundwater Quality Monitor GUI&#46; User&#39;s Guide&#46; 2002&#44; 26 p&#46;"
                ]
              ]
            ]
            13 => array:3 [
              "identificador" => "bib0070"
              "etiqueta" => "Renard&#44; 2007"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Renard P&#46;&#44; 2007&#44; Stochastic Hydrogeology&#58; What Professionals Really Need&#63; <span class="elsevierStyleItalic">Groundwater</span>&#44; 45&#44; No&#46; 5&#44; 531-541 p&#46;"
                ]
              ]
            ]
            14 => array:3 [
              "identificador" => "bib0075"
              "etiqueta" => "Ridgway et al&#46;&#44; 2005"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Ridgway S&#46;L&#46;&#44; Terry C&#46;&#44; Babak B&#46;&#44; 2005&#44; Scientific parallel computing&#46; New Jersey&#44; Princeton University Press&#44; 372 p&#46;"
                ]
              ]
            ]
            15 => array:3 [
              "identificador" => "bib0080"
              "etiqueta" => "Van Leeuwen and Evensen&#44; 1996"
              "referencia" => array:1 [
                0 => array:1 [
                  "referenciaCompleta" => "Van Leeuwen P&#46;J&#46;&#44; Evensen G&#46;&#44; 1996&#44; Data assimilation and inverse methods in terms of a probabilistic formulation&#46; <span class="elsevierStyleItalic">Monthly Weather Review</span>&#44; 124&#44; 2898-2913 p&#46;"
                ]
              ]
            ]
          ]
        ]
      ]
    ]
    "agradecimientos" => array:1 [
      0 => array:4 [
        "identificador" => "xack186043"
        "titulo" => "Acknowledgements"
        "texto" => "<p id="par0520" class="elsevierStylePara elsevierViewall">The authors gratefully acknowledge Leobardo Itehua for helping us running the numerical tests in Miztly and E&#46; Leyva the scholarship from CONACyT to pursue her Ph&#46;D&#46; studies&#46;</p>"
        "vista" => "all"
      ]
    ]
  ]
  "idiomaDefecto" => "en"
  "url" => "/00167169/0000005400000003/v2_201509120041/S0016716915000239/v2_201509120041/en/main.assets"
  "Apartado" => array:4 [
    "identificador" => "40021"
    "tipo" => "SECCION"
    "en" => array:2 [
      "titulo" => "Articles"
      "idiomaDefecto" => true
    ]
    "idiomaDefecto" => "en"
  ]
  "PDF" => "https://static.elsevier.es/multimedia/00167169/0000005400000003/v2_201509120041/S0016716915000239/v2_201509120041/en/main.pdf?idApp=UINPBA00004N&text.app=https://www.elsevier.es/"
  "EPUB" => "https://multimedia.elsevier.es/PublicationsMultimediaV1/item/epub/S0016716915000239?idApp=UINPBA00004N"
]
Article information
ISSN: 00167169
Original language: English
The statistics are updated each day
Year/Month Html Pdf Total
2024 November 4 1 5
2024 October 19 15 34
2024 September 29 10 39
2024 August 25 12 37
2024 July 19 7 26
2024 June 23 1 24
2024 May 16 3 19
2024 April 30 13 43
2024 March 42 7 49
2024 February 48 4 52
2024 January 54 2 56
2023 December 35 10 45
2023 November 40 7 47
2023 October 70 23 93
2023 September 47 8 55
2023 August 49 5 54
2023 July 51 8 59
2023 June 26 10 36
2023 May 50 10 60
2023 April 60 4 64
2023 March 78 16 94
2023 February 69 11 80
2023 January 90 19 109
2022 December 74 14 88
2022 November 43 10 53
2022 October 41 12 53
2022 September 53 9 62
2022 August 74 9 83
2022 July 52 6 58
2022 June 55 7 62
2022 May 39 7 46
2022 April 63 11 74
2022 March 66 9 75
2022 February 41 14 55
2022 January 81 10 91
2021 December 46 13 59
2021 November 60 15 75
2021 October 59 16 75
2021 September 45 13 58
2021 August 70 10 80
2021 July 59 13 72
2021 June 75 14 89
2021 May 65 2 67
2021 April 156 33 189
2021 March 105 12 117
2021 February 43 21 64
2021 January 45 12 57
2020 December 55 8 63
2020 November 29 7 36
2020 October 26 6 32
2020 September 14 10 24
2020 August 24 10 34
2020 July 19 8 27
2020 June 31 3 34
2020 May 55 11 66
2020 April 24 4 28
2020 March 30 9 39
2020 February 14 4 18
2020 January 30 8 38
2019 December 26 10 36
2019 November 17 11 28
2019 October 21 10 31
2019 September 20 17 37
2019 August 12 6 18
2019 July 21 12 33
2019 June 40 22 62
2019 May 101 51 152
2019 April 58 30 88
2019 March 16 8 24
2019 February 26 2 28
2019 January 20 7 27
2018 December 15 5 20
2018 November 26 15 41
2018 October 24 10 34
2018 September 29 19 48
2018 August 36 4 40
2018 July 15 6 21
2018 June 26 7 33
2018 May 29 9 38
2018 April 26 11 37
2018 March 19 4 23
2018 February 19 6 25
2018 January 17 5 22
2017 December 20 3 23
2017 November 20 3 23
2017 October 20 6 26
2017 September 26 7 33
2017 August 24 10 34
2017 July 18 1 19
2017 June 16 18 34
2017 May 18 3 21
2017 April 17 7 24
2017 March 11 98 109
2017 February 15 7 22
2017 January 16 0 16
2016 December 25 11 36
2016 November 31 12 43
2016 October 43 10 53
2016 September 20 4 24
2016 August 35 2 37
2016 July 24 1 25
2016 June 22 12 34
2016 May 25 12 37
2016 April 22 24 46
2016 March 20 12 32
2016 February 25 16 41
2016 January 25 20 45
2015 December 15 15 30
2015 November 22 13 35
2015 October 25 18 43
2015 September 11 8 19
Show all

Follow this link to access the full text of the article