Now possible to link statically latest ELPA (ELPA 2013.11-v8) compiled for a specific architecture. Both single- and multi-threaded version supported.

git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11042 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
spigafi 2014-06-13 16:21:44 +00:00
parent 623894c595
commit 89ce939d5d
5 changed files with 4654 additions and 2714 deletions

View File

@ -653,7 +653,7 @@ CONTAINS
USE mp_bands, ONLY: nproc_bgrp, me_bgrp, intra_bgrp_comm, root_bgrp
USE mp_diag, ONLY: ortho_comm
USE mp, ONLY: mp_comm_free
#ifdef __ELPA
#if defined(__ELPA)
USE elpa1
#endif
IMPLICIT NONE
@ -677,7 +677,7 @@ CONTAINS
INTEGER :: LWORK, LIWORK, info
CHARACTER :: jobv
INTEGER :: i
#ifdef __ELPA
#if defined(__ELPA)
INTEGER :: nprow,npcol,my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols
#endif
@ -700,10 +700,11 @@ CONTAINS
itmp = 0
rtmp = 0.0_DP
#ifdef __ELPA
#if defined(__ELPA)
CALL BLACS_Gridinfo(ortho_cntx,nprow, npcol, my_prow,my_pcol)
CALL GET_ELPA_ROW_COL_COMMS(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
CALL SOLVE_EVP_REAL(n, n, s, lds, w, vv, lds ,nb ,mpi_comm_rows, mpi_comm_cols)
CALL get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
CALL solve_evp_real(n, n, s, lds, w, vv, lds ,nb ,mpi_comm_rows, mpi_comm_cols)
IF( tv ) s = vv
IF( ALLOCATED( vv ) ) DEALLOCATE( vv )
@ -731,24 +732,6 @@ CONTAINS
DEALLOCATE( iwork )
#endif
!#ifdef __ELPA ! uncomment only if you want to printout eigenv* for debug
! ! purposes
! ALLOCATE ( work (n) )
! CALL PDLAPRNT( N, N, s, 1, 1, desch, 0, 0, 's', 99, WORK )
! DO i=1,N
! WRITE(88,*)i,w(i)
! END DO
! DEALLOCATE( work )
!#else
! ALLOCATE ( work (n) )
! write(*,*)n
! CALL PDLAPRNT( N, N, s, 1, 1, desch, 0, 0, 's', 100, WORK )
! DO i=1,N
! WRITE(200,*)i,w(i)
! END DO
! DEALLOCATE( work )
!#endif
RETURN
END SUBROUTINE pdsyevd_drv

View File

@ -1464,7 +1464,7 @@ CONTAINS
USE kinds, ONLY : DP
USE mp_diag, ONLY : ortho_comm
USE mp, ONLY : mp_comm_free
#ifdef __ELPA
#if defined(__ELPA)
USE elpa1
#endif
IMPLICIT NONE
@ -1489,7 +1489,7 @@ CONTAINS
INTEGER :: LWORK, LRWORK, LIWORK
INTEGER :: desch( 10 ), info
CHARACTER :: jobv
#ifdef __ELPA
#if defined(__ELPA)
INTEGER :: nprow,npcol,my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols
#endif
@ -1502,12 +1502,11 @@ CONTAINS
END IF
call descinit( desch, n, n, nb, nb, 0, 0, ortho_cntx, size(h,1), info )
#ifdef __ELPA
#if defined(__ELPA)
CALL BLACS_Gridinfo( ortho_cntx, nprow, npcol, my_prow, my_pcol )
call GET_ELPA_ROW_COL_COMMS(ortho_comm, my_prow, my_pcol,mpi_comm_rows,mpi_comm_cols)
call solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), nb, &
CALL get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows,mpi_comm_cols)
CALL solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), nb, &
mpi_comm_rows, mpi_comm_cols)
h = v

View File

@ -30,7 +30,7 @@ PROGRAM pwscf
CALL run_pwscf ( exit_status )
!
CALL stop_run( exit_status )
CALL do_stop( exit_status )
!CALL do_stop( exit_status )
!
STOP
!

7308
install/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1975,14 +1975,20 @@ fi
fi
done
# ELPA iff SCALAPACK
# ELPA iff SCALAPACK (statically linked)
elpa_libs_switch="disabled"
if test "$with_elpa" -eq 2 && test "$have_scalapack" -eq 1; then
scalapack_libs="-L$with_elpa_path/lib -lelpa $scalapack_libs"
# ELPA includes for FORTRAN, works with 2013.08
try_iflags="$try_iflags -I$with_elpa_path/include -I$with_elpa_path/include/elpa/modules "
try_dflags="$try_dflags -D__ELPA"
if test "$use_openmp" -eq 1 ; then
scalapack_libs="$with_elpa_path/lib/libelpa_mt.a $scalapack_libs"
try_iflags="$try_iflags -I$with_elpa_path/include/elpa/modules "
try_dflags="$try_dflags -D__ELPA"
else
scalapack_libs="$with_elpa_path/libelpa.a $scalapack_libs"
try_iflags="$try_iflags -I$with_elpa_path/include/elpa/modules "
try_dflags="$try_dflags -D__ELPA"
fi
fi
if test "$with_elpa" -eq 1 && test "$have_scalapack" -eq 1; then
scalapack_libs="\$(TOPDIR)/ELPA/libelpa.a $scalapack_libs"
try_dflags="$try_dflags -D__ELPA"