Difference between revisions of "NEK"

From Tau Wiki
Jump to: navigation, search
 
 
(8 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
!Date
 
!Date
 
|-
 
|-
|[http://nek5000.mcs.anl.gov/index.php/GETNEK SVN repo
+
|[http://nek5000.mcs.anl.gov/index.php/GETNEK SVN repo]
 
|svn February 2012
 
|svn February 2012
 
|Keeneland
 
|Keeneland
|ebruary 2012
+
|February 2012
|}
 
 
|}
 
|}
 +
 +
== Build TAU/PDT ==
 +
 +
For PDT:
 +
 +
./configure ; make ; make install
 +
 +
For TAU:
 +
 +
./configure  -cc=pgcc -c++=pgCC -fortran=pgi -mpi -mpilibrary=-lpgbind -pdt=/lustre/medusa/biersdor/pdtoolkit-3.17/ -pdt_c++=g++
 +
make install
 +
 +
== Building NEK ==
 +
 +
use the pgi modules:
 +
module load PE-pgi openmpi/1.5.1-pgi
 +
 +
As an example we will build and run for the 3D vortex example:
 +
 +
cd examples/vortex
 +
cp ../../trunk/nek/makenek .
 +
cp ../../trunk/tools/scripts/nekbmpi .
 +
 +
This gives us the scripts needed to build and run NEK.
 +
 +
First edit '''makenek''' and change the compiler to the TAU wrapper scripts:
 +
# source path
 +
SOURCE_ROOT="<path to trunk/nek>"
 +
 +
# Fortran compiler
 +
F77="tau_f90.sh"
 +
 +
# C compiler
 +
CC="tau_cc.sh"
 +
 +
Setup your environment:
 +
 +
export TAU_MAKEFILE=<path to TAU>/x86_64/lib/Makefile.tau-mpi-pdt-pgi
 +
export TAU_OPTIONS="-optPreProcess -optVerbose -optRevert -optTauSelectFile=`pwd`/select.tau"
 +
 +
'''select.tau'''
 +
 +
BEGIN_FILE_EXCLUDE_LIST
 +
 +
comm_mpi.*
 +
 +
END_FILE_EXCLUDE_LIST
 +
 +
 +
Compile
 +
 +
./makenek r1854a
 +
make -f makefile
 +
 +
There is a auto-generated '''makefile''', any further changes can be made to this file. For example make sure that '''-r8''' option is passed to the compiler.
 +
 +
== Running NEK ==
 +
 +
If compiling was successful you should have '''nek5000' executable.
 +
 +
Use the '''nekbmpi''' script to run the example:
 +
 +
./nekbmpi r1854a <# of procs>
 +
 +
On 8 processors this example takes just less than one hour.
 +
 +
== Performance Data ==
 +
 +
Mean breakdown:
 +
 +
[[Image:nek-profile.png|750px]]
 +
 +
Major MPI routines across each node:
 +
 +
[[Image:nek-mpi-profile.png|750px]]
 +
 +
Profile:
 +
 +
[[Image:nek_vortex_8p.ppk]]

Latest revision as of 19:06, 29 February 2012


Background

Link Code Version Machine Date
SVN repo svn February 2012 Keeneland February 2012

Build TAU/PDT

For PDT:

./configure ; make ; make install

For TAU:

./configure  -cc=pgcc -c++=pgCC -fortran=pgi -mpi -mpilibrary=-lpgbind -pdt=/lustre/medusa/biersdor/pdtoolkit-3.17/ -pdt_c++=g++
make install 

Building NEK

use the pgi modules:

module load PE-pgi openmpi/1.5.1-pgi

As an example we will build and run for the 3D vortex example:

cd examples/vortex
cp ../../trunk/nek/makenek .
cp ../../trunk/tools/scripts/nekbmpi .

This gives us the scripts needed to build and run NEK.

First edit makenek and change the compiler to the TAU wrapper scripts:

# source path 
SOURCE_ROOT="<path to trunk/nek>"

# Fortran compiler
F77="tau_f90.sh"

# C compiler
CC="tau_cc.sh"

Setup your environment:

export TAU_MAKEFILE=<path to TAU>/x86_64/lib/Makefile.tau-mpi-pdt-pgi
export TAU_OPTIONS="-optPreProcess -optVerbose -optRevert -optTauSelectFile=`pwd`/select.tau"

select.tau

BEGIN_FILE_EXCLUDE_LIST

comm_mpi.*

END_FILE_EXCLUDE_LIST


Compile

./makenek r1854a
make -f makefile

There is a auto-generated makefile, any further changes can be made to this file. For example make sure that -r8 option is passed to the compiler.

Running NEK

If compiling was successful you should have nek5000' executable.

Use the nekbmpi script to run the example:

./nekbmpi r1854a <# of procs>

On 8 processors this example takes just less than one hour.

Performance Data

Mean breakdown:

Nek-profile.png

Major MPI routines across each node:

Nek-mpi-profile.png

Profile:

File:Nek vortex 8p.ppk