INSTALL 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. Installation Instructions
  2. *************************
  3. This file describes how to compile and install PvFMM. To install
  4. PvFMM you will need atleast: MPI C++ compiler, BLAS and FFTW3 libraries.
  5. The following section describes the installation steps.
  6. Basic Installation
  7. ==================
  8. Briefly, the shell commands `./configure; make; make install' should
  9. configure, build, and install this package.
  10. The simplest way to compile this package is:
  11. 1. `cd' to the directory containing the package's source code and type
  12. `./configure' to configure the package for your system.
  13. Running `configure' might take a while. While running, it prints
  14. some messages telling which features it is checking for.
  15. 2. Type `make' to compile the package.
  16. 3. The Doxygen source code documentation can be compiled using `make
  17. doxygen-doc' and documentation of algorithms, pseudocodes and
  18. results can be compiled using `make pdf-doc'.
  19. 4. Type `make install' to install the programs and any data files and
  20. documentation. When installing into a prefix owned by root, it is
  21. recommended that the package be configured and built as a regular
  22. user, and only the `make install' phase executed with root
  23. privileges.
  24. 5. You can remove the program binaries and object files from the
  25. source code directory by typing `make clean'. To also remove the
  26. files that `configure' created (so you can compile the package for
  27. a different kind of computer), type `make distclean'. There is
  28. also a `make maintainer-clean' target, but that is intended mainly
  29. for the package's developers. If you use it, you may have to get
  30. all sorts of other programs in order to regenerate files that came
  31. with the distribution.
  32. 6. To uninstall, `make uninstall' removes the installation.
  33. Compilers and Options
  34. =====================
  35. Some systems require unusual options for compilation or linking that
  36. the `configure' script does not know about. In most cases, running
  37. `./configure' will specify what options need to be specified manually.
  38. You can give `configure' initial values for configuration parameters
  39. by setting variables in the command line or in the environment. Here
  40. is an example:
  41. ./configure MPICXX="CC"
  42. Installation Names
  43. ==================
  44. By default, `make install' installs the package's library under
  45. `/usr/local/lib/pvfmm', header files under `/usr/local/include/pvfmm'
  46. and data files under '/usr/local/shared/pvfmm'. You can specify an
  47. installation prefix other than `/usr/local' by giving `configure' the
  48. option `--prefix=PREFIX', where PREFIX must be an absolute file name.
  49. Troubleshooting
  50. ===============
  51. Make sure that if you use special directories for compilers etc, that
  52. your LIBRARY_PATH enviroment variables are set correctly (e.g.,
  53. LD_LIBRARY_PATH on linux and DYLD_LIBRARY_PATH on macosx)
  54. Particular systems
  55. ==================
  56. Configure options for some systems on which this package was tested
  57. are given below:
  58. `Titan (ORNL)'
  59. module load fftw
  60. module swap PrgEnv-pgi PrgEnv-intel
  61. ./configure MPICXX="CC" F77="ftn"
  62. `Stampede (TACC)' (CUDA build)
  63. module load fftw3 cuda
  64. ./configure CXXFLAGS="-mavx -wd3218 -wd2570 -no-offload" --with-fftw="$TACC_FFTW3_DIR" FLIBS=" " --with-cuda="$TACC_CUDA_DIR" NVCCFLAGS="-arch=compute_35 -code=sm_35"
  65. `Stampede (TACC)' (Offload build)
  66. module load fftw3
  67. ./configure CXXFLAGS="-mavx -wd3218 -wd2570" --with-fftw="$TACC_FFTW3_DIR" FLIBS=" "
  68. `Stampede (TACC)' (Native build)
  69. ./configure --host=x86_64-k1om-linux CXXFLAGS="-mmic -wd3218 -wd2570 -I$TACC_MKL_INC -DFFTW3_MKL" F77=ifort FFLAGS="-mmic" FLIBS=" " --with-fftw-include="$TACC_MKL_INC/fftw" --with-fftw-lib="-mkl"
  70. `Ronaldo (ICES)'
  71. ./configure CXXFLAGS="-msse4" --with-fftw="$FFTW_DIR"
  72. 'Cafu (ICES)'
  73. ./configure CXXFLAGS="-mavx" --with-fftw="$FFTW_DIR" LDFLAGS="-L/usr/lib64/nvidia/" --with-cuda="$CUDA_DIR" NVCCFLAGS="-arch=compute_35 -code=sm_35"
  74. `configure' Invocation
  75. ======================
  76. `configure' recognizes the following options to control how it
  77. operates.
  78. `--help=short'
  79. Print a summary of the options unique to this package's
  80. `configure', and exit.
  81. `--prefix=DIR'
  82. Use DIR as the installation prefix.
  83. `MPICXX=<MPI-compiler>'
  84. Specify the MPI compiler and relevant flags.
  85. `CC=<C-compiler>'
  86. Specify the C compiler and relevant flags.
  87. `F77=<Fortran-compiler>'
  88. Specify the Fortran compiler and relevant flags.
  89. `NVCCFLAGS=<nvcc flags>'
  90. Additional flags (eg: NVCCFLAGS="-arch=compute_30 -code=sm_30")
  91. `--with-openmp-flag=FLAGS'
  92. FLAGS to enable OpenMP.
  93. `--with-fftw=DIR'
  94. Set FFTW installation directory to DIR
  95. `--with-fftw-include=DIR'
  96. Set fftw3.h directory path to DIR
  97. `--with-fftw-lib=LIB'
  98. Set FFTW library to LIB
  99. `--with-blas=<lib>'
  100. Use BLAS library <lib>
  101. `--with-lapack=<lib>'
  102. Use LAPACK library <lib>
  103. `--with-cuda=PATH'
  104. Set to prefix where CUDA is installed [default=no]
  105. `--with-precomp-dir=DIR'
  106. Set directory for precomputed data files to DIR. Default path is
  107. `PVFMM_DIR' environment variable if defined, or the current
  108. directory at execution.
  109. `CXXFLAGS=-DUSE_SSE'
  110. To use SSE optimized imlementation of kernel functions.
  111. `configure' also accepts some other, not widely useful, options. Run
  112. `configure --help' for more details.
  113. `make' Invocation
  114. ======================
  115. The following is a list of the available target for make:
  116. To compile the library: make
  117. To install the library: make install
  118. To compile all examples: make all-examples
  119. To compile documentation: make doxygen-doc pdf-doc