Skip to content
Snippets Groups Projects
  1. Oct 16, 2018
    • Patrick Jaap's avatar
      Implementation of CHOLMOD solver · 34895d18
      Patrick Jaap authored
      A simple implementation for the SuiteSparse CHOLMOD solver for real valued
      (double) linear systems.
      Ignore dof's are supported.
      The user has to take care of the correct size of
      vectors in the "apply" method.
      34895d18
  2. Aug 07, 2018
  3. Jul 23, 2018
    • Dominic Kempf's avatar
      [!227] Do not allow OpenMP to get more than one core in CI · 573e9e01
      Dominic Kempf authored
      Merge branch 'feature/disallow-multithreaded-suitesparse' into 'master'
      
      Suitesparse, as installed with Debian, is thread-parallel using OpenMP. OpenMP
      silently assumes, it can spawn as many threads as there are cores. In a worst
      case scenario, this leads to a number of threads quadratic in the core count,
      if you also do parallel test execution with the maximum number of cores. We
      solve the issue by disallowing OpenMP to allocate more than one thread.
      
      See merge request [core/dune-istl!227]
      
        [core/dune-istl!227]: gitlab.dune-project.org/core/dune-istl/merge_requests/227
      573e9e01
  4. Jul 19, 2018
    • Dominic Kempf's avatar
      Do not allow OpenMP to get more than one core. · 9922ddaf
      Dominic Kempf authored
      Suitesparse, as installed with Debian, is thread-parallel using OpenMP.
      OpenMP silently assumes, it can spawn as many threads as there are cores.
      In a worst case scenario, this leads to a number of threads quadratic in
      the core count, if you also do parallel test execution with the maximum
      number of cores. We solve the issue by disallowing OpenMP to allocate more
      than one thread.
      9922ddaf
  5. Jul 11, 2018
    • Jö Fahlke's avatar
      [!226] [bugfix] [solvers.hh] Set initial search direction of the flexible cg solver to zero · 34f8fff9
      Jö Fahlke authored
      Merge branch 'bugfix/fcg-initial-direction' into 'master'
      
      This adds a missing reset of the vector for the initial direction in the first
      iteration of the apply method.
      
      In the current state the vector for the search direction contains the initial
      solution in the first iteration. Most of the standard preconditioners will add
      their result to the vector instead of replacing it. If the initial solution is
      not zero, this results in an incorrect first search direction.
      
      See merge request [core/dune-istl!226]
      
        [core/dune-istl!226]: gitlab.dune-project.org/core/dune-istl/merge_requests/226
      34f8fff9
  6. Jul 10, 2018
  7. Jul 06, 2018
  8. Jul 05, 2018
    • Jö Fahlke's avatar
      [!221] [TLIME] Relax convergence criterion. · 9da2de98
      Jö Fahlke authored
      Merge branch 'fix-tlime-residual-limit' into 'master'
      
      The previous convergence limit was originally determined experimentally as
      1e-11. This worked for many blas implementations and architectures. However,
      when used with openblas on skylake, apparently the residual norm would not go
      below ~1e-10, so convergence was never achieved. In fact, even on non-skylake
      the residual norm would go above 1e-11 again after briefly dipping below, if
      iterating further.
      
      We believe that this is due to openblas selecting -- at runtime -- some
      skylake specific algorithm leading to a different ordering of operations, in
      turn leading to differences in numerical cancellation. We have however not
      verified this conclusively, nor have we identified precisely which blas
      algorithm is causing this.
      
      This patch raises the convergence limit to
      `sqrt(numeric_limits<field_type>::epsilon())`. This limit has no theoretical
      justification -- it was selected because it usually works as a convergence
      limit for other (completely unrelated) algorithms, and because it works for
      both Skylake and other architectures (AMD Epyc) in this particular case.
      
      Developed together with Sebastian Westerheide.
      
      Fixes: \#48.
      
      
      See merge request core/dune-istl!221
      9da2de98
    • Jö Fahlke's avatar
      [TLIME] Relax convergence criterion. · 0bb1e69d
      Jö Fahlke authored
      The previous convergence limit was originally determined experimentally
      as 1e-11.  This worked for many blas implementations and architectures.
      However, when used with openblas on skylake, apparently the residual norm
      would not go below ~1e-10, so convergence was never achieved.  In fact, even
      on non-skylake the residual norm would go above 1e-11 again after briefly
      dipping below, if iterating further.
      
      We believe that this is due to openblas selecting -- at runtime -- some
      skylake specific algorithm leading to a different ordering of operations, in
      turn leading to differences in numerical cancellation.  We have however not
      verified this conclusively, nor have we identified precisely which blas
      algorithm is causing this.
      
      This patch raises the convergence limit to
      `sqrt(numeric_limits<field_type>::epsilon())`.  This limit has no theoretical
      justification -- it was selected because it usually works as a convergence
      limit for other (completely unrelated) algorithms, and because it works for
      both Skylake and other architectures (AMD Epyc) in this particular case.
      
      Developed together with Sebastian Westerheide.
      
      Fixes: #48.
      0bb1e69d
  9. Jun 27, 2018
  10. Jun 26, 2018
  11. Jun 21, 2018
  12. Jun 11, 2018
  13. Jun 08, 2018
  14. Jun 07, 2018
  15. Jun 04, 2018
Loading