Update build for NEC SX-Aurora

parent c4529810
......@@ -164,13 +164,28 @@ if test x"${enable_openmp}" = x"yes"; then
CFLAGS="$OPENMP_CFLAGS $CFLAGS"
fi
AX_CHECK_COMPILE_FLAG([-std=c11], [
CFLAGS+=" -std=c11"
c11_standard=no
AX_CHECK_COMPILE_FLAG([-std=gnu11], [
c11_standard=yes
], [
echo "C compiler cannot compile C11 code"
exit -1
echo "C compiler cannot compile -std=gnu11 code"
echo "testing -std=c11.."
])
if test x"$c11_standard" =x"yes"; then
CFLAGS+=" -std=gnu11"
fi
if test x"$c11_standard" =x"no"; then
AX_CHECK_COMPILE_FLAG([-std=c11], [
c11_standard=yes
], [
echo "C compiler cannot compile C11 code"
exit -1
])
if test x"$c11_standard" =x"yes"; then
CFLAGS+=" -std=c11"
fi
fi
AC_MSG_CHECKING(whether C compiler can use _Generic )
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
......@@ -1323,6 +1338,29 @@ if test x"${enable_kcomputer}" = x"yes"; then
fi
fi
AC_MSG_CHECKING(whether we build for NEC SX-Auroa)
AC_ARG_ENABLE([SX-Aurora],
AS_HELP_STRING([--enable-SX-Aurora],
[enable builds on SX-Aurora, default no.]),
[if test x"$enableval"=x"yes"; then
enable_sxaurora=yes
else
enable_sxaurora=no
fi],
[enable_kcomputer=no])
AC_MSG_RESULT([${enable_sxaurora}])
AM_CONDITIONAL([BUILD_KCOMPUTER],[test x"$enable_sxaurora" = x"yes"])
if test x"${enable_sxaurora}" = x"yes"; then
AC_DEFINE([BUILD_SXAURORA], [1], [build for SX-Aurora])
FC_MODINC="-I"
#if test x"${USE_ASSUMED_SIZE}" = x"yes" ; then
# AC_MSG_ERROR(on K-computer you have to switch off assumed-size arrays!)
#fi
if test x"${enable_fortran2008_features}" = x"yes" ; then
AC_MSG_ERROR(on SX-Aurora you have to switch off Fortran 2008 features!)
fi
fi
if test x"${want_single_precision}" = x"yes" ; then
AC_DEFINE([WANT_SINGLE_PRECISION_REAL],[1],[build also single-precision for real calculation])
AC_DEFINE([WANT_SINGLE_PRECISION_COMPLEX],[1],[build also single-precision for complex calculation])
......
......@@ -31,7 +31,6 @@ module elpa_autotune_impl
#else
integer, intent(out) :: error
#endif
!print *, "Print me"
end subroutine
!> \brief function to destroy an elpa autotune object
......
......@@ -897,7 +897,12 @@ module elpa_impl
class(elpa_impl_t), intent(in) :: self
character(kind=c_char, len=*), intent(in) :: option_name
type(c_ptr) :: ptr
#ifdef USE_FORTRAN2008
integer, intent(out), optional :: error
#else
integer, intent(out) :: error
#endif
integer :: val, actual_error
character(kind=c_char, len=elpa_index_int_value_to_strlen_c(self%index, option_name // C_NULL_CHAR)), pointer :: string
......@@ -905,9 +910,13 @@ module elpa_impl
call self%get(option_name, val, actual_error)
if (actual_error /= ELPA_OK) then
#ifdef USE_FORTRAN2008
if (present(error)) then
error = actual_error
endif
#else
error = actual_error
#endif
return
endif
......@@ -916,9 +925,13 @@ module elpa_impl
call c_f_pointer(ptr, string)
endif
#ifdef USE_FORTRAN2008
if (present(error)) then
error = actual_error
endif
#else
error = actual_error
#endif
end function
......
......@@ -231,13 +231,13 @@ program test
call prepare_matrix_random(na, myid_sub, sc_desc, a, z, as)
as(:,:) = a(:,:)
e => elpa_allocate()
e => elpa_allocate(error)
call set_basic_params(e, na, nev, na_rows, na_cols, mpi_sub_comm, my_prow, my_pcol)
call e%set("timings",1, error)
call e%set("debug",1)
call e%set("gpu", 0)
call e%set("debug",1, error)
call e%set("gpu", 0, error)
!call e%set("max_stored_rows", 15, error)
assert_elpa_ok(e%setup())
......@@ -267,14 +267,14 @@ program test
call e%print_times("eigenvectors")
endif
call elpa_deallocate(e)
call elpa_deallocate(e, error)
deallocate(a)
deallocate(as)
deallocate(z)
deallocate(ev)
call elpa_uninit()
call elpa_uninit(error)
call blacs_gridexit(my_blacs_ctxt)
call mpi_finalize(mpierr)
......
......@@ -54,7 +54,11 @@ module test_blacs_infrastructure
implicit none
integer(kind=c_int), intent(in), value :: mpi_comm_parent, np_rows, np_cols
#ifdef SXAURORA
character(len=1), intent(in) :: layout
#else
character(len=1), intent(in), value :: layout
#endif
integer(kind=c_int), intent(out) :: my_blacs_ctxt, my_prow, my_pcol
#ifdef WITH_MPI
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment