Commit f6903d13 authored by Pavel Kus's avatar Pavel Kus

print parameters started

parent c6ebd29f
......@@ -153,6 +153,7 @@ module elpa_api
elpa_solve_tridiagonal_d, & !< matrix
elpa_solve_tridiagonal_f
procedure(print_all_parameters_i), deferred, public :: print_all_parameters !< method to set the best options
#ifdef ENABLE_AUTOTUNING
! Auto-tune
procedure(elpa_autotune_setup_i), deferred, public :: autotune_setup !< method to prepare the ELPA autotuning
......@@ -246,6 +247,19 @@ module elpa_api
end function
end interface
!> \brief abstract definition of the print_all_parameters method
!> Parameters
!> \details
!> \param self class(elpa_t): the ELPA object, which should be tuned
!> Prints all the elpa parameters
abstract interface
subroutine print_all_parameters_i(self)
import elpa_t
implicit none
class(elpa_t), intent(inout) :: self
end subroutine
end interface
#ifdef ENABLE_AUTOTUNING
!> \brief abstract definition of the autotune setup method
!> Parameters
......
......@@ -154,6 +154,7 @@ module elpa_impl
procedure, private :: elpa_transform_back_generalized_fc
#endif
procedure, public :: print_all_parameters => elpa_print_all_parameters
#ifdef ENABLE_AUTOTUNING
procedure, public :: autotune_setup => elpa_autotune_setup
procedure, public :: autotune_step => elpa_autotune_step
......@@ -1027,6 +1028,20 @@ module elpa_impl
end subroutine
!> \brief function to print all the parameters, that have been set
!> Parameters
!> \param self class(elpa_impl_t) the allocated ELPA object
subroutine elpa_print_all_parameters(self)
implicit none
class(elpa_impl_t), intent(inout) :: self
print *, "The following parameters have been set"
if (elpa_index_print_all_parameters_c(self%index) /= 1) then
stop "This should not happen (in elpa_print_all_parameters())"
endif
end subroutine
!c> /*! \brief C interface for the implementation of the elpa_autotune_set_best method
!c> *
......
......@@ -1022,3 +1022,17 @@ int elpa_index_print_autotune_parameters(elpa_index_t index, int autotune_level,
/* Could set all values */
return 1;
}
int elpa_index_print_all_parameters(elpa_index_t index) {
for (int i = 0; i < nelements(int_entries); i++) {
fprintf(stderr, " %s = ", int_entries[i].base.name);
if (int_entries[i].to_string) {
fprintf(stderr, " %s\n", int_entries[i].to_string(index->int_options.values[i]));
} else {
fprintf(stderr, " %d\n", index->int_options.values[i]);
}
}
fprintf(stderr, "\n");
return 1;
}
......@@ -427,3 +427,16 @@ int elpa_index_set_autotune_parameters(elpa_index_t index, int autotune_level, i
!f>
*/
int elpa_index_print_autotune_parameters(elpa_index_t index, int autotune_level, int autotune_domain, int n);
/*
!f> interface
!f> function elpa_index_print_all_parameters_c(index) result(success) &
!f> bind(C, name="elpa_index_print_all_parameters")
!f> import c_int, c_ptr, c_char
!f> type(c_ptr), intent(in), value :: index
!f> integer(kind=c_int) :: success
!f> end function
!f> end interface
!f>
*/
int elpa_index_print_all_parameters(elpa_index_t index);
......@@ -607,6 +607,10 @@ program test
endif
#endif
! print all parameters
call e%print_all_parameters()
#ifdef TEST_ALL_KERNELS
call e%timer_start(elpa_int_value_to_string(KERNEL_KEY, kernel))
#endif
......
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