This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
hpc:alpgenbuildingnotes [2014/01/09 16:40] jchilders old revision restored (2014/01/09 10:01) |
hpc:alpgenbuildingnotes [2014/03/24 13:08] (current) jchilders |
||
---|---|---|---|
Line 3: | Line 3: | ||
==== Machine dependent compile time changes ==== | ==== Machine dependent compile time changes ==== | ||
- | === For BG/P === | ||
- | ---- | ||
- | For now, use the IBM compiler. That requires '' | ||
- | to have the following changes | ||
- | <code fortran> | ||
- | ifeq ($(shell uname), | ||
- | # FFF = gfortran -fno-automatic | ||
- | # FF90 = gfortran -fno-automatic | ||
- | FFF = mpixlf77 | ||
- | FF90 = mpixlf77 | ||
- | #FFF = g77 -O1 -Wall -fno-automatic -Wno-globals -fno-backslash \ | ||
- | # -ffast-math | ||
- | endif | ||
- | </ | ||
- | Doing a '' | ||
- | <code bash> | ||
- | mpixlf77 | ||
- | ../ | ||
- | ../ | ||
- | </ | ||
- | (or similar) to pass the linking phase. | ||
===For BG/Q=== | ===For BG/Q=== | ||
Line 36: | Line 15: | ||
FFF = mpif77 -fno-automatic | FFF = mpif77 -fno-automatic | ||
FF90 = mpif90 -fno-automatic | FF90 = mpif90 -fno-automatic | ||
+ | # Or if you want optimization use this | ||
+ | # FFF = mpixlf77 -O5 -qarch=qp -qtune=qp -qsave -qsimd=auto -qhot=level=1 -qprefetch -qunroll=yes -qnoipa -qfloat=rsqrt: | ||
+ | # FF90 = mpixlf90 -O5 -qarch=qp -qtune=qp -qsave -qsimd=auto -qhot=level=1 -qprefetch -qunroll=yes -qnoipa -qfloat=rsqrt: | ||
#FFF = g77 -O1 -Wall -fno-automatic -Wno-globals -fno-backslash \ | #FFF = g77 -O1 -Wall -fno-automatic -Wno-globals -fno-backslash \ | ||
# -ffast-math | # -ffast-math | ||
Line 110: | Line 92: | ||
In subroutine '' | In subroutine '' | ||
'' | '' | ||
- | add these lines | + | add/ |
<code fortran> | <code fortran> | ||
integer mpirank | integer mpirank | ||
character*5 rankstring | character*5 rankstring | ||
common/ | common/ | ||
+ | | ||
+ | c local variables | ||
+ | double precision dummy, | ||
+ | integer i, | ||
+ | c | ||
</ | </ | ||
---- | ---- | ||
Near line 230, just before \\ | Near line 230, just before \\ | ||
'' | '' | ||
- | sdd the lines | + | add the lines |
<code fortran> | <code fortran> | ||
C MPI variables | C MPI variables | ||
Line 135: | Line 122: | ||
call MPI_FINALIZE(ierror) | call MPI_FINALIZE(ierror) | ||
write(6,*) 'MPI finalized: rank ', mpirank | write(6,*) 'MPI finalized: rank ', mpirank | ||
- | write( rankstring, '(i5.5)' ) mpirank | + | write( rankstring, '(i8.8)' ) mpirank |
- | c | + | c work in a unique directory |
- | | + | |
if(retval.ne.0) then | if(retval.ne.0) then | ||
- | | + | |
- | endif | + | |
- | call chdir(rankstring, | + | |
- | if(retval.ne.0) then | + | |
- | | + | |
endif | endif | ||
c end of MPI block | c end of MPI block | ||
Line 204: | Line 187: | ||
'' | '' | ||
This ensures everywhere is reading from the input file instead of '' | This ensures everywhere is reading from the input file instead of '' | ||
- | |||
- | |||