• Lorenz Huedepohl's avatar
    First implementation of an autotuning procedure · 0ebe4802
    Lorenz Huedepohl authored
    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)
    0ebe4802
test.F90 17.3 KB