Commit 0ebe4802 authored by Lorenz Huedepohl's avatar Lorenz Huedepohl
Browse files

First implementation of an autotuning procedure

To be used like this

   class(elpa_t), pointer      :: e
   class(elpa_autotune_t), pointer :: tune_state

   e => elpa_allocate()
   call e%set(...)
   [...]
   assert_elpa_ok(e%setup())

   tune_state => e%autotune_setup(ELPA_AUTOTUNE_FAST, ELPA_AUTOTUNE_DOMAIN_REAL)

   ! Autotuning loop, continues until all combinations have been tried
   do while (e%autotune_step(tune_state))
     ! Do the steps that are representative of your calculation
     call e%eigenvectors(a, ev, z, error)
   end do

   ! Fix best parameters, and de-allocate the autotune object
   call e%autotune_set_best(tune_state)
   call elpa_autotune_deallocate(tune_state)
parent 67c4a5dd