1. 16 Dec, 2015 1 commit
    • Andreas Marek's avatar
      Add interface to unify C and Fortran names · bb046d1c
      Andreas Marek authored
      This commit does not change the interfaces defined in ELPA_2015.11.001 !
      All functionality is available via the interface names and definitions
      as in ELPA_2015.11.001
      
      But some new interfaces have been added, in order to unfiy the
      references from C and Fortran codes:
      
      - The procedures to create the ELPA (row/column) communicators are now
        available from C _and_ Fortran with the name "get_elpa_communicators".
        The old Fortran name "get_elpa_row_col_comms" and the old C name
        "elpa_get_communicators" are from now on deprecated but still available
      
      - The 1-stage solver routines are available from C _and_ Fortran via
        the names "solve_evp_real_1stage" and "solve_evp_complex_1stage".
        The old Fortran names "solve_evp_real" and "solve_evp_complex" are
        from now on deprecated but still functional.
      
      All documentation (man pages, doxygen, and example test programs) have
      been changed accordingly.
      
      This commit implies a change in the API versioning number, but no
      changes to codes calling ELPA (if they have been already updated to the
      API of ELPA_2015.11.001)
      bb046d1c
  2. 11 Dec, 2015 1 commit
  3. 10 Dec, 2015 2 commits
    • Andreas Marek's avatar
      Create doxygen documentation for ELPA · 927f988a
      Andreas Marek authored
      The user functions of ELPA are now documented with doxygen tags.
      At the moment the interface of ELPA 2015.11.001 is decribed.
      
      The documentation has step by step to be implemented for all functions
      and test programms.
      927f988a
    • Andreas Marek's avatar
      Split file elpa1.F90 into elpa1.F90 and elpa1_compute.F90 · 9710bf08
      Andreas Marek authored
      For automatic generation of documentation, the file elpa1.F90
      has been splitted into two files, in order to have a lean,
      easy-to-understand user interface:
      
      elpa1.F90
      the visible user functios, which provide the library calls.
      The usage is the same as always
      
      elpa1_compute.F90
      all internal routines, which are used by ELPA1 and ELPA2, but
      which are never called by the user. These functions are now "hidden"
      in the module elpa1_compute, which is used by ELPA1 and ELPA2.
      
      The procedures in elpa1_compute.F90 are identical to the ones in
      elpa1.F90 before this split commit. The only -- but lot of --
      changes are intendation.
      9710bf08
  4. 05 Nov, 2015 1 commit
  5. 28 Oct, 2015 1 commit
    • Alexander Heinecke's avatar
      This commit improves ELPA's performance on Intel(R) Xeon(R) E5v2 and E5v3 series CPUs by: · fe63372d
      Alexander Heinecke authored
      - enabling fusing iterations of stage 5 in ELPA2 for every configuration
      - Changed reduction bandwidth in ELPA2 to be at least 64
      - partial OpenMP parallelization of the QR factorization in bandred_real
      - OpenMP parallelization of SYMM
      - OpenMP parallelization of SYR2K in bandred_real
      - OpenMP parallelization for elpa1_reduce_add_vectors and elpa1_transpose_vectors
      - AVX2 support in backtransformation elpa2_kernels (FMA3 instructions introduced with Haswell microarchitecture)
      fe63372d
  6. 16 Jun, 2015 2 commits
  7. 28 May, 2015 1 commit
  8. 09 Mar, 2015 1 commit
    • Andreas Marek's avatar
      Change of get_elpa_row_col_comms to a function · fc80ad07
      Andreas Marek authored
      The procedure "get_elpa_row_col_comms" is now a function instead
      a subroutine and returns an error code.
      
      This should have been done previously when all the other ELPA
      function have been updated to return an error code.
      
      This requires an ABI change in the next ELPA release !
      fc80ad07
  9. 06 Mar, 2015 2 commits
  10. 27 Feb, 2015 1 commit
  11. 11 Feb, 2015 1 commit
    • Andreas Marek's avatar
      Abort on error in QR-decomposition · ff13970b
      Andreas Marek authored
      If the QR-decomposition is used wrongly (matrix size is not a
      multiple of block size) the the execution will abort, in
      order to prevent the wrong results, discussed in a previous commit
      
      Debug messages are now available by setting the environment variable
      "ELPA_DEBUG_MESSAGES" to "yes".
      ff13970b
  12. 27 Jan, 2015 1 commit
  13. 25 Aug, 2014 1 commit
  14. 30 Jun, 2014 1 commit
    • Andreas Marek's avatar
      Another ABI change in ELPA_2014.06 pre-release · a2b2e6bf
      Andreas Marek authored
      Build servers recommend against calling "abort" functions in a
      library. Thus, from now on, ELPA  returns a success flag, which
      is a change of ABI!
      
      In order to force the user to honour this, the ELPA drivers
      are converted to functions, which implies an adaptation and
      rebuild of the user code. The driver functions return a
      logical "success", which, if it is false, indicates an
      error within the library.
      
      It is advised to check catch and check this
      return value in the user code, which calls ELPA.
      a2b2e6bf
  15. 26 May, 2014 2 commits
  16. 15 Nov, 2013 1 commit
    • Andreas Marek's avatar
      ELPA_2013.11 release (minor version 000) · ea970032
      Andreas Marek authored
      This is the release of the ELPA_development_version_OpenMP
      If OpenMP support is not used, this version has the same
      functionality as ELPA_2013.08.
      
      If OpenMP support is used, obviously, a hybrid version of ELPA will be
      build.
      
      Allthough this is a release, version ELPA_2013.11 is far from complete!
      During the next week optimizations of the OpenMP part will be published,
      however, the basic functionality is set by this commit
      ea970032
  17. 28 Oct, 2013 2 commits
    • Andreas Marek's avatar
      Introducing OpenMP functionality in ELPA_development_version_OpenMP · 48e712ef
      Andreas Marek authored
      This commit introduces OpenMP functionality in the
      ELPA_development_version_OpenMP branch.
      
      It contains several bugfixes to the OpenMP functionality in the
      branch "ELPA_development_version", the later will soon be deleted
      since the new branch is the new reference implementation.
      
      The current branch contains the following features/bugfixes:
      - building of the OpenMP version of ELPA via configure and the
        "--with-openmp" flag. The build library contains a "_mt"
        (multi-threaded) in its name.
        The configure procedure should (hopefully) determine for each
        compiler the neccessary OpenMP flags.
        If the "--with-openmp" flag is ommitted exactly the same code
        as in the ELPA 2013.08.001 release is used and build in the
        same way
      - The example test cases print which kernels have been used and
        how many OpenMP threads are used at runtime
      - correct handling of OpenMP stack arrays: the previous implementation
        caused compiler dependent segmentation faults
      - OpenMP capability with all available kernels: the correctness of
        the computations have been checked for all kernels except the
        Bluegene (P/Q) versions
      48e712ef
    • Andreas Marek's avatar
      Creating of ELPA_development_version_OpenMP · bc9a3d07
      Andreas Marek authored
      Based on the ELPA 2013.08.001 a development version for ELPA OpenMP
      has been created
      bc9a3d07
  18. 21 May, 2013 1 commit
    • Andreas Marek's avatar
      License cleanup · 6f563aff
      Andreas Marek authored
      On behalf of the Elpa Consortium and due to a remark of
      Volker Blum the license model of ELPA is "corrected"
      
      - each file now contains the appropiate header
      - the files in the subdirectory "COPYING" are now
        in accordance with LGPL v. 3, the license we choose
        to use
      6f563aff
  19. 30 Nov, 2011 1 commit
    • Volker Blum's avatar
      VB, TA, RJ, AM: · d7a57612
      Volker Blum authored
      We have taken the unusual (one-time) step to modify the structure
      of the ELPA git repository as follows:
      
      1) The current ELPA version has been designated as a "stable"
         version. It has proven to be rock solid for us so far, and
         deserves this name.
      
      2) We have decided on a stable version naming scheme,
         "ELPA_year.month". The first such version is
         ELPA_2011.12. This version will only ever be updated
         for clear and unambiguous bug fixes.
      
      3) All further development will happen in the directory named
         ELPA_development_version. At this time, ELPA_2011.12 is an
         exact copy of ELPA_development_version.
      
      No substantial changes have been made to either repository as yet.
      (But we are happy to say that the present "ELPA" publication, which
      we hope ELPA users will cite, now has its final volume and page
      numbers.)
      
      We apologize if this change causes any inconvenience for you. Please
      try to make sure that any changes you might make really affect the
      development version, and not the stable version. We do not plan any
      structural changes of a similar scope at any point in the future,
      but it had to be done once.
      
      Happy ELPA stable version day!
      d7a57612
  20. 12 May, 2011 1 commit