Create a SEMSDevEnv.cmake file to automatically use loaded SEMS dev env
Created by: bartlettroscoe
Next Action Status:
Working and providing value as part of new checkin-test-sems.sh script and CI build (see #482 (closed))
CC list: @rppawlo, @bathmatt, @jgfouca, @jwillenbring, @gdsjaar, @trilinos/framework
Blocking: #410 (closed), #370 (closed)
Description:
This story will be to create a SEMSDevEnv.cmake file that once included (with -DTrilinos_CONFIGURE_OPTIONS_FILES=/SEMSDevEnv.cmake), then TriBITS will automatically pick up the right compilers and TPL locations.
In addition, it would be desirable for the Trilinos configure to automatically pick up the loaded SEAMS env (like is done on the ATTB machines using the ATTB_ENV
env var, see #172 (closed)).
In addition to just providing the SEMSDevEnv.cmake
module, this story will also scope out what might be useful for a standard Trilinos dev env. However, a new story will be created to refine what a new expanded Trilinos Primary Tested build of TPLs and Packages will look like.
List of TPLs and other requirements needed for a standard Trilinos CI build:
This following list is the current consensus for this the standard Trilinos CI build (this list is updated as consensus changes).
- CMake 3.5.2 (There are huge speed advantages in using CMake 3.5.2 vs. 2.8.11) (see)
- GCC 4.8.4 (@crtrott, see)
- OpenMPI 1.8.7 (@crtrott, see)
- Python 2.7.9 (the only version of 2.x, x > 6 provided by SEMS dev env)
- OpenMP (i.e. Pthreads) (@crtrott, see)
- BLAS and LAPACK, provided by system? (see)
- Boost v1.55.0? (see)
- Zlib 1.2.8 (the version provided by SEMS)
- HDF5 v1.8.12 (the version provided by SEMS, used by SEMS NetCDF 4.3.2)
- NetCDF 4.3.2? (the version provided by SEMS)
- ParMETIS v4.0.3 built with 32-bit index types (@kddevin, see)
- SuperLU 4.3 (used by several Trilinos packages)
- Scotch v6.0.3 built with 32-bit index types (@kddevin, see)
Tasks:
- Get opinions on what TPLs should be included in the
SEMSDevEnv.cmake
module (targeting a standard Trilinos pre-push CI build) [Done] - Write out
SEMSDevEnv.cmake
to automatically set up Compilers TPLs for a given loaded SEMS env (usingmodule load <avail>
) by reading env vars starting withSEMS_
. (see below) [Done] - Create a
load_sems_dev_env.sh
module that can be called assource load_sems_dev_env.sh [<compiler-and-version>] [<openmpi-and-version>]
, for examplesource load_sems_dev_env.sh gcc/4.9.2 openmpi/1.10.1
(where<compiler-and-version>
and<openmpi-and-version>
are given defaults if not provided). (see below) [Done] - Test out on full shared lib MPI and serial builds of Trilinos with all Secondary Tested packages enabled that can be given this set of TPLs. (but forgot to enable Scott and ParMETIS TPLs, see below) [Done]
- Automatically load
SEMSDevEnv.cmake
if it is detected that the SEMS dev env is loaded. (see below) [Done] - Enable Scotch and ParMETIS TPLs in shared lib build and test with packages that support them ... Zoltan and Zoltan2 tests fail as expected (see below and #475 (closed) and #476 (closed)) [Done]
- Test and get working all-static builds (i.e. build static libs and use static TPL libs) ... see commit c334dd63 [Done]
- Investigate issues with Scotch and ParMETIS ... SEMS provides inconsistent 32-bit Scotch and 64-bit ParMETIS (see below) [Done]
- Try to enable SuperLU 4.3 (see below) [Done]
- Finish documentation on Trilinos GitHub Wiki (see below) [Done]
- Have documentation and implementation reviewed (see a, b, c, d, e, and f) ... Will fix any problems if they come up. [Done]