The esys-escript package is a programming environment for implementing mathematical models in python using the finite element method (FEM). It is very easy to run at all scales - from desktop computers through to highly parallel supercomputers without changes. Application areas for escript include earth mantle convection, geophysical inversion, earthquakes, porous media flow, reactive transport, plate subduction, erosion, and tsunamis.

The current version of escript deployed under project up99 is 5.10. It is configured with the following features:

Escript revision 1658965877
  Install prefix:  /g/data/up99/apps/escript/5.10
          Python:  /g/data/up99/apps/escript/5.10/bin/python3 (Version 3.7.7)
           boost:  ['/apps/boost/1.72.0/include', '/apps/boost/1.72.0/lib/GNU'] (Version 1.72.0)
     boost numpy:  YES
        trilinos:  ['/g/data/up99/apps/trilinos/13.0.1/include', '/g/data/up99/apps/trilinos/13.0.1/lib'] (Version 13.0.1)
           numpy:  YES (without headers)
             MPI:  OPENMPI (Version 4.1.2)
        ParMETIS:  ['/g/data/up99/apps/escript/deplibs_a/include', '/g/data/up99/apps/escript/deplibs_a/lib'] (Version 4.0.3)
            gmsh:  YES
  Solver library:  paso, trilinos
   Direct solver:  YES (mkl, umfpack, trilinos)
         domains:  dudley, finley, ripley, speckley
          netcdf:  YES (4 + 3)
           weipa:  YES
          openmp:  YES
         cppunit:  YES
            gdal:  YES
             mkl:  YES
          pyproj:  YES
           scipy:  YES
            silo:  YES
           sympy:  YES
         umfpack:  YES
           visit:  YES

To access esys-escript, you first need to join project up99 and once you are a member of this project, you can then run the following commands on Gadi to load in the escript module:

$ module use /g/data/up99/modulefiles
$ module load escript/5.10

You can find escript examples here and they are also available under ${escript_root}/examples.

An example PBS job script for running escript is given below:

PBS job script
#!/bin/bash
 
#PBS -q normalsr
#PBS -P <compute_project_code>
#PBS -l ncpus=104 
#PBS -l mem=400GB
#PBS -l jobfs=100GB
#PBS -l walltime=00:05:00
#PBS -l storage=gdata/up99+scratch/<project_code>
#PBS -l wd
#PBS -N escript_test

# Must include `#PBS -l storage=gdata/up99+scratch/ab00` if the job
# needs access to `/scratch/ab00/` and the escript module.
# Details on:
# https://opus.nci.org.au/display/Help/PBS+Directives+Explained
 
module use /g/data/up99/modulefiles
module load escript/5.10

cp -r ${ESCRIPT_ROOT}/examples .
cd examples/inversion
run-escript -n 1 -t 2 -p 52 mag_netcdf.py >& output.log


  • No labels