|
|
* [Serial Build Instructions](#serial)
|
|
|
* [Parallel Build Instructions](#parallel)
|
|
|
|
|
|
### <a name="serial"></a>Serial (OpenMP only)
|
|
|
1. Download the publicly available version [WARP3D 17.5.8](https://www.dropbox.com/s/fm296uoalcphrli/warp3d_distribution_17.5.8.tar.gz?dl=0) to Oakley
|
|
|
2. Extract the tarball
|
|
|
|
|
|
```bash
|
|
|
$ tar xzf warp3d_distribution_17.5.8.tar.gz
|
|
|
```
|
|
|
|
|
|
3. Go into the extracted directory and set the `$WARP3D_HOME` environment variable
|
|
|
|
|
|
```bash
|
|
|
$ cd warp3d_distribution_17.5.8
|
|
|
$ export WARP3D_HOME=$PWD
|
|
|
```
|
|
|
|
|
|
4. Add necessary modules and libraries
|
|
|
|
|
|
```bash
|
|
|
$ module load intel/14.0.0.080
|
|
|
```
|
|
|
|
|
|
Note, this should swap the currently loaded intel compiler libraries (as of writing this --- intel/12.1.4.319) with intel/14.0.0.080.
|
|
|
|
|
|
5. Go into the `src` directory and run `Makewarp.bash`. Then follow the interactive prompt
|
|
|
|
|
|
```bash
|
|
|
$ cd $WARP3D_HOME/src
|
|
|
$ ./Makewarp.bash
|
|
|
|
|
|
** Driver shell script to build WARP3D on Linux and Mac OS X **
|
|
|
|
|
|
Select supported platform:
|
|
|
1) Linux (64-bit) 3) Windows (7,8)
|
|
|
2) Mac OS X (10.9.x) 4) Exit
|
|
|
Select choice: 1
|
|
|
|
|
|
Compile OpenMP-only version or hybrid (MPI/OpenMP) version?
|
|
|
1) OpenMP
|
|
|
2) Hybrid
|
|
|
3) Exit
|
|
|
Select choice: 1
|
|
|
|
|
|
Simple (defaults, no prompts) or advanced (prompt) mode?
|
|
|
1) Simple
|
|
|
2) Advanced
|
|
|
3) Help
|
|
|
4) Exit
|
|
|
Select choice: 1
|
|
|
|
|
|
... Setting default options & performing checks to
|
|
|
... ensure your system and the WARP3D directories
|
|
|
... are configured correctly.
|
|
|
|
|
|
> MPI source code already uninstalled...
|
|
|
> hypre source code already uninstalled...
|
|
|
|
|
|
>> Building filter program...
|
|
|
|
|
|
Number of concurrent compile processes allowed? (default 1): 1
|
|
|
... Starting make program for Linux ....
|
|
|
```
|
|
|
|
|
|
7. If all goes well, the executable should be located at `../run_linux_em64t/warp3d.omp`. Finally, copy the executable to any directory you would like.
|
|
|
|
|
|
```bash
|
|
|
$ cd $WARP3D_HOME/run_linux_em64t
|
|
|
$ cp warp3d.omp ~/bin/.
|
|
|
```
|
|
|
|
|
|
### <a name="parallel"></a>Parallel (OpenMP + MPI)
|
|
|
|
|
|
Repeat all the steps for the [Serial](#serial) build except where otherwise noted.
|
|
|
|
|
|
1. ...
|
|
|
2. ...
|
|
|
3. ...
|
|
|
4. ...
|
|
|
5. If you haven't already, you will need to compile hypre-2.9.0b and metis-4.0
|
|
|
|
|
|
```bash
|
|
|
$ cd $WARP3D_HOME/linux_packages/source/hypre-2.9.0b
|
|
|
```
|
|
|
|
|
|
Edit the `make_hypre` script with proper compilers
|
|
|
|
|
|
```bash
|
|
|
# $WARP3D_HOME/linux_packages/source/hypre-2.9.0b/make_hypre
|
|
|
...
|
|
|
MCC=mpicc
|
|
|
MCX=mpicxx
|
|
|
MFT=mpif90
|
|
|
...
|
|
|
```
|
|
|
|
|
|
You can ignore the `-m` warnings. Then continue with building...
|
|
|
|
|
|
```bash
|
|
|
$ ./make_hypre
|
|
|
$ cd $WARP3D_HOME/linux_packages/source/metis-4.0
|
|
|
$ ./compile_metis
|
|
|
Input C compiler (CC)
|
|
|
Default: gcc
|
|
|
: icc
|
|
|
```
|
|
|
|
|
|
Now compile WARP3D.
|
|
|
|
|
|
```bash
|
|
|
$ cd $WARP3D_HOME/src
|
|
|
$ ./Makewarp.bash
|
|
|
|
|
|
** Driver shell script to build WARP3D on Linux and Mac OS X **
|
|
|
|
|
|
Select supported platform:
|
|
|
1) Linux (64-bit) 3) Windows (7,8)
|
|
|
2) Mac OS X (10.9.x) 4) Exit
|
|
|
Select choice: 1
|
|
|
|
|
|
Compile OpenMP-only version or hybrid (MPI/OpenMP) version?
|
|
|
1) OpenMP
|
|
|
2) Hybrid
|
|
|
3) Exit
|
|
|
Select choice: 2
|
|
|
|
|
|
Simple (defaults, no prompts) or advanced (prompt) mode?
|
|
|
1) Simple
|
|
|
2) Advanced
|
|
|
3) Help
|
|
|
4) Exit
|
|
|
Select choice: 2
|
|
|
|
|
|
|
|
|
In the following prompts enter the values you want for each setting.
|
|
|
If you leave a line blank the value will be set to the default.
|
|
|
Note: these values will not be checked for correctness as in the simple mode.
|
|
|
|
|
|
Fortran compiler
|
|
|
Default: mpiifort
|
|
|
: mpif90
|
|
|
|
|
|
hypre root directory
|
|
|
Default: /nfs/17/jnicklas/dev/warp3d_distribution_17.5.8/linux_packages
|
|
|
:
|
|
|
|
|
|
|
|
|
> MPI source code already installed...
|
|
|
> hypre source code already installed...
|
|
|
|
|
|
>> Building filter program...
|
|
|
ld: warning: libhwloc.so.1, needed by /usr/local/mvapich2/1.9-intel/lib/libmpichf90.so, may conflict with libhwloc.so.5
|
|
|
ld: warning: libhwloc.so.1, needed by /usr/local/mvapich2/1.9-intel/lib/libmpichf90.so, may conflict with libhwloc.so.5
|
|
|
|
|
|
Number of concurrent compile processes allowed? (default 1): 1
|
|
|
|
|
|
... Starting make program for Linux ....
|
|
|
```
|
|
|
|
|
|
Note: I am not sure of the consequences incurred involving the `libhwloc.so` warnings.
|
|
|
|
|
|
7. If all goes well, the executable should be located at `../run_linux_em64t/warp3d.mpi_omp`. Finally, copy the executable to any directory you would like.
|
|
|
|
|
|
```bash
|
|
|
$ cd $WARP3D_HOME/run_linux_em64t
|
|
|
$ cp warp3d.mpi_omp ~/bin/.
|
|
|
```
|
|
|
|
|
|
8. You can also now compile `patwarp` by running...
|
|
|
|
|
|
```bash
|
|
|
$ cd $WARP3D_HOME/patwarp
|
|
|
$ ./compile_patwarp_linux64
|
|
|
$ cd $WARP3D_HOME/run_linux_em64t
|
|
|
$ cp patwarp.go ~/bin/.
|
|
|
``` |
|
|
\ No newline at end of file |