1. 08 Jun, 2018 1 commit
  2. 05 Jun, 2018 1 commit
  3. 25 May, 2018 1 commit
  4. 17 Apr, 2018 1 commit
  5. 14 Mar, 2018 1 commit
  6. 07 Mar, 2018 1 commit
  7. 05 Mar, 2018 2 commits
  8. 05 Feb, 2018 1 commit
  9. 06 Dec, 2017 1 commit
  10. 28 Nov, 2017 2 commits
  11. 24 Nov, 2017 1 commit
  12. 23 Nov, 2017 3 commits
  13. 20 Nov, 2017 3 commits
  14. 19 Nov, 2017 1 commit
  15. 18 Nov, 2017 2 commits
  16. 30 Oct, 2017 1 commit
  17. 26 Oct, 2017 1 commit
    • 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
  18. 13 Oct, 2017 1 commit
  19. 05 Sep, 2017 1 commit
  20. 29 Aug, 2017 1 commit
  21. 25 Aug, 2017 1 commit
    • Pavel Kus's avatar
      templating test_analytic · 15a6cbc3
      Pavel Kus authored
      test analytic has been transformed to template to allow all
      real/complex and single/double variants. However, at this
      commit, only real double and real single variants are enabled
      15a6cbc3
  22. 10 Aug, 2017 3 commits
  23. 03 Aug, 2017 2 commits
  24. 25 Jul, 2017 2 commits
  25. 19 Jul, 2017 1 commit
  26. 18 Jul, 2017 3 commits
  27. 17 Jul, 2017 1 commit
    • Pavel Kus's avatar
      Introducing analytical test · 8a9c9df1
      Pavel Kus authored
      Introducing new test in which matrix and its eigendecomposition is
      known and thus can be easily created and checked directly, without the
      need to use scalapack or any other communication (apart from reducing
      error).
      
      The test is based on the fact, that if L_A and S_A are eigenvalues and
      eigenvectors of matrix A, respectively, and L_B and S_B eigenvalues and
      eigenvectors of B, then kron(L_A, L_B) and kron (S_A, S_B) are
      eigenvalues and eigenvectors of kron(A, B).
      Since it is easy to know exact eigendecomposition of a small matrix (e.g.
      2x2), and kron operator has very simple structure, we can construct
      arbitrarily large matrix and its eigendecomposition. We only have to
      select small matrices such that the resulting matrix has unique and
      ordered eigenvalues, so that the checking of the result is than easy.
      Each element of matrix, eigenvector matrix and eigenvalue vector can
      be quickly computed independently, just using its global coordinates.
      
      The test is currently limited to matrices of size 2^n, but by
      storing eigendecompositions of more small matrices (e.g. 3x3 and 5x5) we
      could construct any matrix of size 2^n*3^m*5^o, which would probably be
      sufficient, since most often used sizes (150, 1000, 5000, 2000, 60000)
      are of this form.
      8a9c9df1