Building CVS Baselibs: Difference between revisions

mNo edit summary
mNo edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page will detail the process of building Baselibs. For the purposes of this page, <tt>GMAO-Baselibs-4_0_7</tt> as an example tag, but this process should work with any tag after <tt>GMAO-Baselibs-3_3_0</tt>.
This page will detail the process of building Baselibs. For the purposes of this page, <tt>GMAO-Baselibs-4_0_7</tt> as an example tag, but this process should work with any tag after <tt>GMAO-Baselibs-3_3_0</tt>.


==Check out Baselibs==
NOTE: This is now outdated as Baselibs has moved to GitHub.


The first step is to check out the tag you want.
== Obtaining Baselibs ==


=== Set up the 'bcvs' alias ===
=== Check out Baselibs ===
 
The first step is to check out the tag you want. Tags on CVS are versions of Baselibs 2.x.y, 3.x.y, and 4.x.y. For version 5.x.y, the recommended Baselibs is now hosted on NASA Internal Github and build instructions can be found on [[Building_Git_Baselibs|the Building Git Baselibs page]].
 
==== Set up the 'bcvs' alias ====


Something useful to set up first is an alias that you can use to refer to the CVS repo for Baselibs. This is because the Baselibs are hosted on progress while the GEOS-5 model and most other tools are on the CVSACL repo. So, I recommend setting a 'bcvs' alias:
Something useful to set up first is an alias that you can use to refer to the CVS repo for Baselibs. This is because the Baselibs are hosted on progress while the GEOS-5 model and most other tools are on the CVSACL repo. So, I recommend setting a 'bcvs' alias:
Line 13: Line 17:
where <tt>USERNAME</tt> is your username ''at progress''. Note that this works on discover and pleiades, but elsewhere you'll need to set up a tunnel to progress and alter the CVSROOT appropriately.
where <tt>USERNAME</tt> is your username ''at progress''. Note that this works on discover and pleiades, but elsewhere you'll need to set up a tunnel to progress and alter the CVSROOT appropriately.


=== Checking out the tag ===
==== Checking out the tag ====


Next, checkout the tag:
Next, checkout the tag:
Line 51: Line 55:
=== (OPTIONAL) Set MPICC_CC and MPICXX_CXX variables if using MPT ===
=== (OPTIONAL) Set MPICC_CC and MPICXX_CXX variables if using MPT ===


If you are using MPT at Pleiades, and you wish to use the Intel or PGI C and C++ compilers instead of GNU, you must set the MPICC_CC and MPICXX_CXX variables to be the "correct" compilers. This can be done either in the environment full (beware!) or during the install by adding at the end:
If you are using SGI MPT, and you wish to use, say, the PGI C and C++ compilers instead of GNU, you must set the MPICC_CC and MPICXX_CXX variables to be the "correct" compilers. This can be done either in the environment full (beware!) or during the install by adding at the end:


MPICC_CC=icc  MPICXX_CXX=icpc
  MPICC_CC=pgcc MPICXX_CXX=pgc++
  MPICC_CC=pgcc MPICXX_CXX=pgCC


=== Build and install ===
=== Build and install ===
Line 93: Line 96:
  -------+---------+---------+--------------
  -------+---------+---------+--------------


Note that this is not as comprehensive as looking at the log file as it is possible that some submakes will fail but not communicate that well enough to the main make process.  
Note that this is not as comprehensive as looking at the log file as it is possible that some submakes will fail but not communicate that well enough to the main make process. Test


== Checking Baselibs ==
== Checking Baselibs ==
Line 102: Line 105:


Note that at the moment, many will exit with errors. For example, NetCDF has tests that require internet access and if a check is done on a compute node with no external access, it will fail.  
Note that at the moment, many will exit with errors. For example, NetCDF has tests that require internet access and if a check is done on a compute node with no external access, it will fail.  
=== Checking with Intel MPI ===
Note that if you use an older Intel MPI as the MPI stack, when you run the check (on discover) you may have to manually run <tt>mpdboot</tt> to start a mpd ring:
$ mpdboot -n 8 -r ssh -f $PBS_NODEFILE
This example is for 8 nodes. This is not because of Intel MPI ''per se'' but because of codes like netcdf-C that use <tt>mpiexec</tt> as its call to start an MPI process. In Intel MPI older than 2017, mpiexec calls the old MPD version and not Hydra.
<!--
== Table of Modules ==
{| class="wikitable" width="95%"
!colspan="3"| Discover
|-
! Compiler || MPI Stack || Other Libraries
|- style="font-family: monospace"
|rowspan="4"|comp/intel-11.0.083 || mpi/impi-3.2.2.006 || rowspan="4"|lib/mkl-10.0.3.020 other/SIVO-PyD/spd_1.6.0_gcc-4.3.4-sp1
|- style="font-family: monospace"
| mpi/impi-4.0.3.008
|- style="font-family: monospace"
| other/mpi/mvapich2-1.8.1/intel-11.0.083
|- style="font-family: monospace"
| other/mpi/openmpi/1.6.0-intel-11.0.083
|- style="font-family: monospace"
|rowspan="2"| comp/intel-13.0.1.117 || other/mpi/mvapich2-1.8.1/intel-13.0.1.117 || rowspan="2"|other/comp/gcc-4.6.3-sp1 other/SIVO-PyD/spd_1.6.0_gcc-4.6.3-sp1
|- style="font-family: monospace"
| mpi/impi-4.0.3.008
|- style="font-family: monospace"
| rowspan="3" | comp/intel-13.1.0.146 || other/mpi/mvapich2-1.8.1/intel-13.1.0.146 || rowspan="4"| lib/mkl-13.0.1.117 other/comp/gcc-4.6.3-sp1 other/SIVO-PyD/spd_1.10.0_gcc-4.6.3-sp1
|- style="font-family: monospace"
| mpi/impi-4.0.3.008
|- style="font-family: monospace"
| other/mpi/openmpi/1.6.3-intel-13.1.0.146
|- style="font-family: monospace"
| rowspan="1" | comp/intel-13.1.1.163 || other/mpi/mvapich2-1.8.1/intel-13.1.1.163
|- style="font-family: monospace"
| rowspan="2"|comp/pgi-12.8.0 || other/mpi/openmpi/1.6.3-pgi-12.8.0 || rowspan="2"|other/comp/gcc-4.6.3-sp1 other/SIVO-PyD/spd_1.6.0_gcc-4.6.3-sp1
|- style="font-family: monospace"
| other/mpi/mvapich2-1.8/pgi-12.8.0
|-
!colspan="3"| Pleiades
|-
! Compiler || MPI Stack || Other Libraries
|- style="font-family: monospace"
| rowspan="3"|comp/intel/11.0.083_64 || mpi-intel/3.2.011 || rowspan="3"|math/intel_mkl_64_10.0.011 python/2.6.1
|- style="font-family: monospace"
| mpi-intel/4.0.2.003
|- style="font-family: monospace"
| mpi-sgi/mpt.2.06rp16
|- style="font-family: monospace"
| comp-intel/2012.0.032 || mpi-sgi/mpt.2.06a67 || rowspan="6"|python/2.6.1
|- style="font-family: monospace"
| rowspan="2"|comp-intel/2013.1.117 || mpi-sgi/mpt.2.06rp16
|- style="font-family: monospace"
| mpi-intel/4.0.2.003
|- style="font-family: monospace"
| rowspan="3"|pgi_12.8 || mvapich2_1.8.1_pgi_12.8
|- style="font-family: monospace"
| mpi-sgi/mpt.2.06a67
|- style="font-family: monospace"
| mpi-sgi/mpt.2.06rp16
|}
-->


[[Category:Baselibs]]
[[Category:Baselibs]]
[[Category:SI Team]]
[[Category:SI Team]]