# Build IOMPI toolchain on LUCIA

Old EC-Earth versions are not compatible with recent **gcc/gfortran** (default on LUCIA with **gompi**).
I installed first the **iimpi** toolchain. Unfortunately, IntelMPI still required a lot of work on LUCIA.
So I decided to build an alternative: **iompi**

## Easybuild requirements

First, clone this git repository:

```bash
cd $HOME
git clone https://gogs.elic.ucl.ac.be/pbarriat/ECEARTHCFG.git
```

Then, create the custom easybuild & modules environment

```bash
mkdir -p /gpfs/projects/acad/ecearth/softs/easybuild
cd $HOME/ECEARTHCFG/eb
cp config.cfg /gpfs/projects/acad/ecearth/softs/easybuild
rsync -av sources easyconfigs /gpfs/projects/acad/ecearth/softs/easybuild
cd /gpfs/projects/acad/ecearth/softs/easybuild
mkdir build ebfiles_repo modules software
chown -R pbarriat:ecearth /gpfs/projects/acad/ecearth/softs
```

Final step, load the required env modules
```
module purge
module load EasyBuild/4.7.1
EASYBUILD_CONFIGFILES=/gpfs/projects/acad/ecearth/softs/easybuild/config.cfg
MODULEPATH=$MODULEPATH:/gpfs/projects/acad/ecearth/softs/easybuild/modules/all
LMOD_COLORIZE=yes
export EASYBUILD_CONFIGFILES
```

## Compile

```bash
sg ecearth -c "eb OpenMPI-4.1.1-intel-compilers-2022.1.0.eb --optarch="march=core-avx2" --hide-deps=M4,Bison,flex,zlib,pkg-config,binutils,OpenSSL,help2man,ncurses,libpng,bzip2,cURL,NASM,pkgconf,ncurses,jbigkit,gettext,XZ,libarchive,libjpeg-turbo,libdeflate,gzip,lz4,zstd,LibTIFF,Szip,libiconv,util-linux,libtool,expat,groff,libxml2,JasPer,Doxygen,googletest,libaec,libevent,libreadline,nlohmann_json,DB,UDUNITS,Tcl,SQLite,Autoconf,Automake,Autotools,numactl,xorg-macros,libpciaccess,PROJ,hwloc,UCC,ecCodes,Perl,JasPer,intltool,UnZip,gperf,Brotli,git,freetype,GMP,libffi,fontconfig,Rust,Meson,X11,ANTLR,libtirpc,GSL,PCRE,libdap,ESMF"

sg ecearth -c "eb iompi-2022.05.eb --optarch="march=core-avx2" --hide-deps=M4,Bison,flex,zlib,pkg-config,binutils,OpenSSL,help2man,ncurses,libpng,bzip2,cURL,NASM,pkgconf,ncurses,jbigkit,gettext,XZ,libarchive,libjpeg-turbo,libdeflate,gzip,lz4,zstd,LibTIFF,Szip,libiconv,util-linux,libtool,expat,groff,libxml2,JasPer,Doxygen,googletest,libaec,libevent,libreadline,nlohmann_json,DB,UDUNITS,Tcl,SQLite,Autoconf,Automake,Autotools,numactl,xorg-macros,libpciaccess,PROJ,hwloc,UCC,ecCodes,Perl,JasPer,intltool,UnZip,gperf,Brotli,git,freetype,GMP,libffi,fontconfig,Rust,Meson,X11,ANTLR,libtirpc,GSL,PCRE,libdap,ESMF"

sg ecearth -c "eb HDF5-1.12.2-iompi-2022.05.eb --optarch="march=core-avx2" --hide-deps=M4,Bison,flex,zlib,pkg-config,binutils,OpenSSL,help2man,ncurses,libpng,bzip2,cURL,NASM,pkgconf,ncurses,jbigkit,gettext,XZ,libarchive,libjpeg-turbo,libdeflate,gzip,lz4,zstd,LibTIFF,Szip,libiconv,util-linux,libtool,expat,groff,libxml2,JasPer,Doxygen,googletest,libaec,libevent,libreadline,nlohmann_json,DB,UDUNITS,Tcl,SQLite,Autoconf,Automake,Autotools,numactl,xorg-macros,libpciaccess,PROJ,hwloc,UCC,ecCodes,Perl,JasPer,intltool,UnZip,gperf,Brotli,git,freetype,GMP,libffi,fontconfig,Rust,Meson,X11,ANTLR,libtirpc,GSL,PCRE,libdap,ESMF"

sg ecearth -c "eb netCDF-4.9.0-iompi-2022.05.eb --optarch="march=core-avx2" --hide-deps=M4,Bison,flex,zlib,pkg-config,binutils,OpenSSL,help2man,ncurses,libpng,bzip2,cURL,NASM,pkgconf,ncurses,jbigkit,gettext,XZ,libarchive,libjpeg-turbo,libdeflate,gzip,lz4,zstd,LibTIFF,Szip,libiconv,util-linux,libtool,expat,groff,libxml2,JasPer,Doxygen,googletest,libaec,libevent,libreadline,nlohmann_json,DB,UDUNITS,Tcl,SQLite,Autoconf,Automake,Autotools,numactl,xorg-macros,libpciaccess,PROJ,hwloc,UCC,ecCodes,Perl,JasPer,intltool,UnZip,gperf,Brotli,git,freetype,GMP,libffi,fontconfig,Rust,Meson,X11,ANTLR,libtirpc,GSL,PCRE,libdap,ESMF"

sg ecearth -c "eb netCDF-Fortran-4.6.0-iompi-2022.05.eb --optarch="march=core-avx2" --hide-deps=M4,Bison,flex,zlib,pkg-config,binutils,OpenSSL,help2man,ncurses,libpng,bzip2,cURL,NASM,pkgconf,ncurses,jbigkit,gettext,XZ,libarchive,libjpeg-turbo,libdeflate,gzip,lz4,zstd,LibTIFF,Szip,libiconv,util-linux,libtool,expat,groff,libxml2,JasPer,Doxygen,googletest,libaec,libevent,libreadline,nlohmann_json,DB,UDUNITS,Tcl,SQLite,Autoconf,Automake,Autotools,numactl,xorg-macros,libpciaccess,PROJ,hwloc,UCC,ecCodes,Perl,JasPer,intltool,UnZip,gperf,Brotli,git,freetype,GMP,libffi,fontconfig,Rust,Meson,X11,ANTLR,libtirpc,GSL,PCRE,libdap,ESMF"
```

## Contributors

- ELIC members [@pbarriat](https://gogs.elic.ucl.ac.be/pbarriat)
