Difference between revisions of "Compiling the Einstein Toolkit"
Line 16: | Line 16: | ||
If your operating system is not supported, you will need to write your own optionlist. | If your operating system is not supported, you will need to write your own optionlist. | ||
+ | |||
+ | The following guidelines are based on the ubuntu.cfg optionlist. | ||
+ | |||
+ | <pre> | ||
+ | VERSION = 2012-09-28 | ||
+ | |||
+ | CPP = cpp | ||
+ | FPP = cpp | ||
+ | CC = gcc | ||
+ | CXX = g++ | ||
+ | F77 = gfortran | ||
+ | F90 = gfortran | ||
+ | |||
+ | CPPFLAGS = -DMPICH_IGNORE_CXX_SEEK | ||
+ | FPPFLAGS = -traditional | ||
+ | CFLAGS = -g3 -march=native -std=gnu99 | ||
+ | CXXFLAGS = -g3 -march=native -std=gnu++0x | ||
+ | F77FLAGS = -g3 -march=native -fcray-pointer -m128bit-long-double -ffixed-line-length-none | ||
+ | F90FLAGS = -g3 -march=native -fcray-pointer -m128bit-long-double -ffixed-line-length-none | ||
+ | LDFLAGS = -rdynamic | ||
+ | |||
+ | LIBDIRS = | ||
+ | |||
+ | C_LINE_DIRECTIVES = yes | ||
+ | F_LINE_DIRECTIVES = yes | ||
+ | |||
+ | DEBUG = no | ||
+ | CPP_DEBUG_FLAGS = -DCARPET_DEBUG | ||
+ | FPP_DEBUG_FLAGS = -DCARPET_DEBUG | ||
+ | C_DEBUG_FLAGS = -O0 | ||
+ | CXX_DEBUG_FLAGS = -O0 | ||
+ | F77_DEBUG_FLAGS = -O0 | ||
+ | F90_DEBUG_FLAGS = -O0 | ||
+ | |||
+ | OPTIMISE = yes | ||
+ | CPP_OPTIMISE_FLAGS = -DKRANC_VECTORS # -DCARPET_OPTIMISE -DNDEBUG | ||
+ | FPP_OPTIMISE_FLAGS = # -DCARPET_OPTIMISE -DNDEBUG | ||
+ | C_OPTIMISE_FLAGS = -O2 -ffast-math | ||
+ | CXX_OPTIMISE_FLAGS = -O2 -ffast-math | ||
+ | F77_OPTIMISE_FLAGS = -O2 -ffast-math | ||
+ | F90_OPTIMISE_FLAGS = -O2 -ffast-math | ||
+ | |||
+ | PROFILE = no | ||
+ | CPP_PROFILE_FLAGS = | ||
+ | FPP_PROFILE_FLAGS = | ||
+ | C_PROFILE_FLAGS = -pg | ||
+ | CXX_PROFILE_FLAGS = -pg | ||
+ | F77_PROFILE_FLAGS = -pg | ||
+ | F90_PROFILE_FLAGS = -pg | ||
+ | |||
+ | OPENMP = yes | ||
+ | CPP_OPENMP_FLAGS = -fopenmp | ||
+ | FPP_OPENMP_FLAGS = -fopenmp | ||
+ | C_OPENMP_FLAGS = -fopenmp | ||
+ | CXX_OPENMP_FLAGS = -fopenmp | ||
+ | F77_OPENMP_FLAGS = -fopenmp | ||
+ | F90_OPENMP_FLAGS = -fopenmp | ||
+ | |||
+ | WARN = yes | ||
+ | CPP_WARN_FLAGS = -Wall | ||
+ | FPP_WARN_FLAGS = -Wall | ||
+ | C_WARN_FLAGS = -Wall | ||
+ | CXX_WARN_FLAGS = -Wall | ||
+ | F77_WARN_FLAGS = -Wall | ||
+ | F90_WARN_FLAGS = -Wall | ||
+ | |||
+ | |||
+ | |||
+ | HDF5_ENABLE_FORTRAN = no | ||
+ | HDF5_ENABLE_CXX = no | ||
+ | |||
+ | MPI_DIR = /usr | ||
+ | MPI_INC_DIRS = /usr/include/mpich2 | ||
+ | MPI_LIB_DIRS = /usr/lib | ||
+ | MPI_LIBS = mpich fmpich mpl | ||
+ | |||
+ | PTHREADS = yes | ||
+ | |||
+ | </pre> |
Revision as of 01:45, 6 June 2013
The recommended way to compile the Einstein Toolkit is to use the Simulation Factory ("SimFactory").
Supercomputers
SimFactory comes with support for many of the large supercomputers. If you are compiling on one of these, it should be sufficient to run
sim build --thornlist path/to/thornlist.th
Generic operating systems
SimFactory also contains general support for specific operating systems, including Mac OS, Ubuntu, and Scientific Linux. To build a configuration, you need to determine the correct optionlist to use from simfactory/mdb/optionlists. You can then choose the optionlist to use on the "sim build" command line:
sim build --thornlist path/to/thornlist.th --optionlist <optionlist-name>
Writing your own optionlist
If your operating system is not supported, you will need to write your own optionlist.
The following guidelines are based on the ubuntu.cfg optionlist.
VERSION = 2012-09-28 CPP = cpp FPP = cpp CC = gcc CXX = g++ F77 = gfortran F90 = gfortran CPPFLAGS = -DMPICH_IGNORE_CXX_SEEK FPPFLAGS = -traditional CFLAGS = -g3 -march=native -std=gnu99 CXXFLAGS = -g3 -march=native -std=gnu++0x F77FLAGS = -g3 -march=native -fcray-pointer -m128bit-long-double -ffixed-line-length-none F90FLAGS = -g3 -march=native -fcray-pointer -m128bit-long-double -ffixed-line-length-none LDFLAGS = -rdynamic LIBDIRS = C_LINE_DIRECTIVES = yes F_LINE_DIRECTIVES = yes DEBUG = no CPP_DEBUG_FLAGS = -DCARPET_DEBUG FPP_DEBUG_FLAGS = -DCARPET_DEBUG C_DEBUG_FLAGS = -O0 CXX_DEBUG_FLAGS = -O0 F77_DEBUG_FLAGS = -O0 F90_DEBUG_FLAGS = -O0 OPTIMISE = yes CPP_OPTIMISE_FLAGS = -DKRANC_VECTORS # -DCARPET_OPTIMISE -DNDEBUG FPP_OPTIMISE_FLAGS = # -DCARPET_OPTIMISE -DNDEBUG C_OPTIMISE_FLAGS = -O2 -ffast-math CXX_OPTIMISE_FLAGS = -O2 -ffast-math F77_OPTIMISE_FLAGS = -O2 -ffast-math F90_OPTIMISE_FLAGS = -O2 -ffast-math PROFILE = no CPP_PROFILE_FLAGS = FPP_PROFILE_FLAGS = C_PROFILE_FLAGS = -pg CXX_PROFILE_FLAGS = -pg F77_PROFILE_FLAGS = -pg F90_PROFILE_FLAGS = -pg OPENMP = yes CPP_OPENMP_FLAGS = -fopenmp FPP_OPENMP_FLAGS = -fopenmp C_OPENMP_FLAGS = -fopenmp CXX_OPENMP_FLAGS = -fopenmp F77_OPENMP_FLAGS = -fopenmp F90_OPENMP_FLAGS = -fopenmp WARN = yes CPP_WARN_FLAGS = -Wall FPP_WARN_FLAGS = -Wall C_WARN_FLAGS = -Wall CXX_WARN_FLAGS = -Wall F77_WARN_FLAGS = -Wall F90_WARN_FLAGS = -Wall HDF5_ENABLE_FORTRAN = no HDF5_ENABLE_CXX = no MPI_DIR = /usr MPI_INC_DIRS = /usr/include/mpich2 MPI_LIB_DIRS = /usr/lib MPI_LIBS = mpich fmpich mpl PTHREADS = yes