Installation Guide
This page contains instructions for building Tramonto 4.0. Click the following links for archived build instructions: Tramonto v3.x. Click on a link below for printer-friendly Tramonto installation guides:
- Tramonto v4.0
-
# Tramonto: A molecular theory code for structured and uniform fluids # Copyright (2006) Sandia Corporation # # Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive # license for use of this work by or on behalf of the U.S. Government. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License # as published by the Free Software Foundation; either version 2.1 # of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA.
How to Build Tramonto 4.0
Note:
When accessing these instructions from the website, it is a good idea to verify that you have the version of the instructions that corresponds to your version of Tramonto. The correct version of the instructions can always be found in the README file in the top level directory of a Tramonto tarball, or a checked out copy of the Tramonto source code repository.
Contents: Prerequisites Building Trilinos Building Tramonto Building Trilinos and Tramonto on Windows Using Visual Studio
Prerequisites:
Tramonto depends on a number of other software packages. Below is a list of the required packages and links from which you can download any packages that are not available on your system. There is a good chance that BLAS, LAPACK and an MPI implementation are already installed on your system. It is especially important to have a BLAS library that is optimized for your machine. Package Web Reference BLAS http://www.netlib.org LAPACK http://www.netlib.org MPI http://www-unix.mcs.anl.gov/mpi/mpich2 http://www.open-mpi.org Trilinos (10.12.2) https://trilinos.github.io/download-older.html While BLAS, LAPACK and MPI could be available on your system, you will most likely have to build Trilinos yourself. Trilinos contains several packages of which Tramonto requires amesos, aztecoo, triutils, ifpack, epetraext, epetra, loca, ml, nox, and teuchos. Trilinos has a webpage for new users available at https://trilinos.github.io/getting_started.html. Below you will find a brief set of instructions that focus on building Trilinos for use with Tramonto. If these instructions prove insufficient, please visit the website listed above.
Building Trilinos:
As of April 2010, Tramonto requires Trilinos version 10.2.0 or later. Trilinos can be downloaded from the the Trilinos home page listed above. There are many options available in configuring Trilinos, some of the most important one are: CMAKE_INSTALL_PREFIX:PATH= This option specifies where to install Trilinos. For example, CMAKE_INSTALL_PREFIX:PATH=/path/TrilinosInstall will install Trilinos libraries in /path/TrilinosInstall/lib and Trilinos header files in /path/TrilinosInstall/include. TPL_ENABLE_MPI:BOOL=ON This option indicates that a parallel, rather than serial, version of Trilinos should be built. DMPI_BASE_DIR:PATH= Use this option to specify the base installation directory for MPI. In many cases when using a standard setup, this is not necessary, but the option is useful when a machine contains multiple mpi installations, or mpi is installed in a non-standard location. If /path is the base installation directory, /path/include contains mpi.h, /path/lib includes the mpi libraries, and /path/bin contains mpiexec (or equivalent mpi executable). TPL_BLAS_LIBRARIES:STRING= TPL_LAPACK_LIBRARIES:SRING= These options are used to specify the names or locations of the BLAS and LAPACK libraries. If the options are not specified, Trilinos will attempt to find BLAS and LAPACK. Again, it is best to explicitly list the libraries you want to use if there are multiple libraries available on your machine. Example usage: TPL_BLAS_LIBRARIES:STRING="-lcblas;-lf77blas;-latlas;-lgfortran" or TPL_BLAS_LIBRARIES:STRING=/usr/lib64/libblas.so and TPL_LAPACK_LIBRARIES:STRING=/usr/lib64/liblapack.so Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF Trilinos_ENABLE_<package>:BOOL=ON The best way to build only the packages that Tramonto uses is to use the Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF option in conjunction with a Trilinos_ENABLE_<package>:BOOL=ON option for each required Trilinos package. For example Trilinos_ENABLE_AztecOO:BOOL=ON, etc. Note that it is not necessary to disable all of the packages that Tramonto does not use; this is especially useful when building Tramonto on a machine that has a pre-installed version of Trilinos. It can be helpful to disable unneeded packages to make it easier and faster to build Trilinos. Below are examples of ways to properly configure Trilinos. You can find more examples in the "sampleScripts" directory in the Trilinos distribution. The configure command points up one directory because the preferred directory structure for building Trilinos has separate build and source trees. For example, for a build tree named "TramontoInstall", from the top-level Trilinos directory, type "mkdir TramontoInstall", then "cd TramontoInstall", and finally provide the proper configure arguments. Some users prefer for the build tree to be a peer to the top-level Trilinos directory. The source tree can be in any arbitrary location; the last argument in the configuration command simply has to point to the source tree with an absolute or relative path. Often it is convenient to create a script (like those in the sampleScripts directory mentioned above) in the build directory and then simply source the script. If a separate build tree is not used, the configure process will terminate with an error. Linux cmake \ -DTPL_ENABLE_MPI:BOOL=ON \ -DTrilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF \ -DTrilinos_ENABLE_Amesos:BOOL=ON \ -DTrilinos_ENABLE_AztecOO:BOOL=ON \ -DTrilinos_ENABLE_Triutils:BOOL=ON \ -DTrilinos_ENABLE_Ifpack:BOOL=ON \ -DTrilinos_ENABLE_EpetraExt:BOOL=ON \ -DTrilinos_ENABLE_Epetra:BOOL=ON \ -DNOX_ENABLE_LOCA:BOOL=ON \ -DTrilinos_ENABLE_ML:BOOL=ON \ -DTrilinos_ENABLE_NOX:BOOL=ON \ -DTrilinos_ENABLE_Teuchos:BOOL=ON \ -DTrilinos_ENABLE_TESTS:BOOL=ON \ -DCMAKE_CXX_FLAGS:STRING="-O3" \ -DCMAKE_C_FLAGS:STRING="-O3" \ -DCMAKE_Fortran_FLAGS:STRING="-O5" \ -DTPL_BLAS_LIBRARIES:STRING="-lcblas;-lf77blas;-latlas;-lgfortran" \ -DCMAKE_INSTALL_PREFIX:PATH=/home/jmwille/TramontoTestHarness/Tri10.2 \ .. Mac OSX cmake \ -DTrilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF \ -DTPL_ENABLE_MPI:BOOL=ON \ -DTrilinos_ENABLE_Amesos:BOOL=ON \ -DTrilinos_ENABLE_AztecOO:BOOL=ON \ -DTrilinos_ENABLE_Triutils:BOOL=ON \ -DTrilinos_ENABLE_Ifpack:BOOL=ON \ -DTrilinos_ENABLE_EpetraExt:BOOL=ON \ -DTrilinos_ENABLE_Epetra:BOOL=ON \ -DNOX_ENABLE_LOCA:BOOL=ON \ -DTrilinos_ENABLE_ML:BOOL=ON \ -DTrilinos_ENABLE_NOX:BOOL=ON \ -DTrilinos_ENABLE_Teuchos:BOOL=ON \ -DTrilinos_ENABLE_TESTS:BOOL=ON \ -DCMAKE_CXX_FLAGS:STRING="-O3" \ -DCMAKE_C_FLAGS:STRING="-O3" \ -DCMAKE_Fortran_FLAGS:STRING="-O5" \ -DMPI_BASE_DIR:PATH=/Users/jmwille/install \ -DCMAKE_INSTALL_PREFIX:PATH=/Users/jmwille/TramontoTestHarness/Tri10.2 \ .. Once you have configured Trilinos, build it by typing "make". This will build the libraries, tests (if Trilinos_ENABLE_TESTS:BOOL=ON), and examples for the packages that were enabled at configure time. If the tests were compiled, a test suite can be run by typing "ctest". Finally, install Trilinos using "make install".
Building Tramonto:
Once Trilinos has been built, building Tramonto tends to be straightforward because most of the options that were used to build Trilinos can be used automatically to build Tramonto. As with Trilinos, it is necessary to configure and then build Tramonto. Since Tramonto produces only a single executable, there is no need to install it and at this time there is not a make target for testing. To configure Tramonto, it is necessary to indicate the location of the installed Trilinos libraries and header files. This can be done using the TRILINOS_PATH option. This option points to the base of the installed version of Trilinos. For example, if Trilinos is configured with CMAKE_INSTALL_PREFIX:PATH=/Users/jmwille/TramontoTestHarness/Tri10.2, use -DTRILINOS_PATH:PATH=/Users/jmwille/TramontoTestHarness/Tri10.2 Beginning with Trilinos 10.7, it is also possible to use the standard CMake option CMAKE_PREFIX_PATH: -DCMAKE_PREFIX_PATH:PATH=/Users/jmwille/TramontoTestHarness/Tri10.7 Below are Tramonto configure invocations that correspond to the above Trilinos configure invocations. These, as well as other, scripts can be found in the directory "sampleConfigs" in the Tramonto distribution. Note that using a separate build tree is again required, as discussed in the Building Trilinos section. Linux cmake \ -DTRILINOS_PATH=/home/jmwille/TramontoTestHarness/Tri10.2 \ .. Mac OS X cmake \ -DTRILINOS_PATH=/Users/jmwille/TramontoTestHarness/Tri10.2 \ .. Once the configure script completes, you can type "make" to build Tramonto. After make finishes, the Tramonto binary, "dft_exec" can optionally be copied to a more convenient location.
Building Trilinos and Tramonto on Windows Using Visual Studio
Beginning with Tramonto 4.0, it is possible to build Tramonto on Windows using Microsoft Visual Studio. The below instructions assume some familiarity with Visual Studio. The Windows build process is not as polished as the process for Linux or Mac. Feedback for building on Windows, including improvements or additions for the information below can be sent to tramonto-help@software.sandia.gov. 1\. Install CMake, CLAPACK (or other BLAS & LAPACK implementations), and MPICH2 (or another MPI implementation) CMake: http://www.cmake.org/cmake/resources/software.html Download the latest 32-bit Windows installer (even if using a 64-bit machine. Follow the instructions for the self-extracting installer. CLAPACK: http://www.netlib.org/clapack Download the latest Visual Studio prebuilt zip file. Extract the contents of the zip file and note the directory where CLAPACK was extracted. Alternatively, use the CMake-aware version and build (and optionally install) CLAPACK through visual studio. MPICH2: http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads Download the latest Windows installer from the above website. Follow the instructions for the self-extracting installer. 2\. Build Trilinos Open the CMake GUI, select Trilinos source and build trees. Configure once. Set the following variables (Note that safety and clarity were the primary considerations for these instructions, not efficiency): TPL_ENABLE_MPI -> ON Trilinos_ENABLE_ALL_PACKAGES -> Leave box unchecked Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES -> Uncheck box Trilinos_ENABLE_Amesos -> ON Trilinos_ENABLE_AztecOO -> ON Trilinos_ENABLE_Triutils -> ON Trilinos_ENABLE_Ifpack -> ON Trilinos_ENABLE_EpetraExt -> ON Trilinos_ENABLE_Epetra -> ON Trilinos_ENABLE_ML -> ON Trilinos_ENABLE_NOX -> ON Trilinos_ENABLE_Teuchos -> ON TPL_ENABLE_BLAS -> ON TPL_ENABLE_LAPACK -> ON CMAKE_INSTALL_PREFIX -> Set to Trilinos installation path Configure again, switch to "Advanced View" MPI_BASE_DIR -> Set to top level of MPI installation (ex C:/Program Files/MPICH2) TPL_BLAS_LIBRARIES -> Set to find BLAS (ex (this is all one line) - C:/Program Files/CLAPACK 3.2.1/lib/ blas.lib;C:/Program Files/CLAPACK 3.2.1/lib/libf2c.lib ) configure again TPL_LAPACK_LIBRARIES -> Set to find LAPACK (ex C:/Program Files/CLAPACK 3.2.1/lib/lapack.lib ) configure again configure again generate Open the 'Trilinos.snl' file created during the generation process from the 'File' menu in Visual Studio. Right click on Solution 'Trilinos' and click 'Build Solution'. 3\. Build Tramonto Next, open the CMake GUI again. Select Tramonto source and build trees. Configure once. Trilinos_DIR -> delete the pre-filled value (if applicable) TRILINOS_PATH -> Set to the same value used for CMAKE_INSTALL_PREFIX for Trilinos. configure again generate Open the 'Tramonto.snl' file created during the generation process from the 'File' menu in Visual Studio. Right click on Solution 'Tramonto' and click 'Build Solution'. Notes for Windows build: - These instructions were created using Microsoft Visual Studio 2008. - Depending on the version of Trilinos used, the ML build may fail with an error indicating that 'unistd.h' cannot be found. Remove the reference to this file from 'ml_utils.h' and build again. - If the Tramonto build fails with an error indicating that LAPACK or BLAS cannot be found, do the following inside Visual Studio: Right-click the dft_exec target -> properties Under the C/C++ tab, add to the additional include directories the proper directories for the lapack and blas header files. Under the Linker tab, add to the additional library directories the proper directories for the lapack and blas library files. Under Linker->Input, add lapack.lib, blas.lib, and (if using clapack) libf2c.lib to the additional dependencies list.