Commit 82d769af authored by Andreas Marek's avatar Andreas Marek

Update the documentation of the new bandwidth feature in ELPA2

parent 52d42aeb
.TH "elpa_solve_evp_complex_2stage_double" 3 "Tue Oct 18 2016" "ELPA" \" -*- nroff -*- .TH "elpa_solve_evp_complex_2stage_double" 3 "Wed Jan 15 2017" "ELPA" \" -*- nroff -*-
.ad l .ad l
.nh .nh
.SH NAME .SH NAME
...@@ -12,7 +12,7 @@ use elpa1 ...@@ -12,7 +12,7 @@ use elpa1
use elpa2 use elpa2
.br .br
.br .br
.RI "success = \fBelpa_solve_evp_real_2stage_double\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_COMPLEX_ELPA_KERNEL, useGPU)" .RI "success = \fBelpa_solve_evp_real_2stage_double\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_COMPLEX_ELPA_KERNEL, useGPU, bandwidth)"
.br .br
.RI " " .RI " "
.br .br
...@@ -47,6 +47,8 @@ use elpa2 ...@@ -47,6 +47,8 @@ use elpa2
.br .br
.RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not"
.br .br
.RI "integer, intent(in), optional: \fBbandwidth\fP: bandwidth of an already banded matrix"
.br
.RI "logical \fBsuccess\fP: return value indicating success or failure" .RI "logical \fBsuccess\fP: return value indicating success or failure"
.br .br
.SS C INTERFACE .SS C INTERFACE
...@@ -55,7 +57,7 @@ use elpa2 ...@@ -55,7 +57,7 @@ use elpa2
#include <complex.h> #include <complex.h>
.br .br
.RI "success = \fBelpa_solve_evp_complex_2stage_double\fP (\fBint\fP na, \fBint\fP nev, \fB double complex *\fPa, \fBint\fP lda, \fB double *\fPev, \fBdouble complex *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_COMPLEX_KERNEL, \fBint\fP useGPU);" .RI "success = \fBelpa_solve_evp_complex_2stage_double\fP (\fBint\fP na, \fBint\fP nev, \fB double complex *\fPa, \fBint\fP lda, \fB double *\fPev, \fBdouble complex *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_COMPLEX_KERNEL, \fBint\fP useGPU, \fBint\fP bandwidth);"
.br .br
.RI " " .RI " "
.br .br
...@@ -89,6 +91,9 @@ use elpa2 ...@@ -89,6 +91,9 @@ use elpa2
.RI "int \fBTHIS_ELPA_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver" .RI "int \fBTHIS_ELPA_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver"
.br .br
.RI "int \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "int \fBuseGPU\fP: decide whether GPUs should be used or not"
.br
.RI "int \fBbandwidth\fP: bandwidth of an already banded matrix"
.br
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0) .RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION .SH DESCRIPTION
......
.TH "elpa_solve_evp_complex_2stage_single" 3 "Tue Oct 18 2016" "ELPA" \" -*- nroff -*- .TH "elpa_solve_evp_complex_2stage_single" 3 "Wed Jan 15 2017" "ELPA" \" -*- nroff -*-
.ad l .ad l
.nh .nh
.SH NAME .SH NAME
...@@ -12,7 +12,7 @@ use elpa1 ...@@ -12,7 +12,7 @@ use elpa1
use elpa2 use elpa2
.br .br
.br .br
.RI "success = \fBelpa_solve_evp_real_2stage_single\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_COMPLEX_ELPA_KERNEL, useGPU)" .RI "success = \fBelpa_solve_evp_real_2stage_single\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_COMPLEX_ELPA_KERNEL, useGPU, bandwidth)"
.br .br
.RI " " .RI " "
.br .br
...@@ -47,6 +47,8 @@ use elpa2 ...@@ -47,6 +47,8 @@ use elpa2
.br .br
.RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not"
.br .br
.RI "integer, intent(in), optional: \fBbandwidth\fP: bandwidth of an already banded matrix"
.br
.RI "logical \fBsuccess\fP: return value indicating success or failure" .RI "logical \fBsuccess\fP: return value indicating success or failure"
.br .br
.SS C INTERFACE .SS C INTERFACE
...@@ -55,41 +57,44 @@ use elpa2 ...@@ -55,41 +57,44 @@ use elpa2
#include <complex.h> #include <complex.h>
.br .br
.RI "success = \fBelpa_solve_evp_complex_2stage_single\fP (\fBint\fP na, \fBint\fP nev, \fB complex *\fPa, \fBint\fP lda, \fB float *\fPev, \fBcomplex *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_COMPLEX_KERNEL, \fBint\fP useGPU);" .RI "success = \fBelpa_solve_evp_complex_2stage_single\fP (\fBint\fP na, \fBint\fP nev, \fB complex *\fPa, \fBint\fP lda, \fB float *\fPev, \fBcomplex *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_COMPLEX_KERNEL, \fBint\fP useGPU, \fBint\fP bandwidth);"
.br .br
.RI " " .RI " "
.br .br
.RI "With the definintions of the input and output variables:" .RI "With the definintions of the input and output variables:"
.br .br
.RI "int \fBna\fP: global dimension of quadratic matrix \fBa\fP to solve" .RI "int \fBna\fP: global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "int \fBnev\fP: number of eigenvalues to be computed; the first \fBnev\fP eigenvalules are calculated"
.br
.RI "complex *\fBa\fP: pointer to locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
.br .br
.RI "int \fBnev\fP: number of eigenvalues to be computed; the first \fBnev\fP eigenvalules are calculated" .RI "int \fBlda\fP: leading dimension of locally distributed matrix \fBa\fP"
.br .br
.RI "complex *\fBa\fP: pointer to locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP" .RI "float *\fBev\fP: pointer to memory containing on output the first \fBnev\fP computed eigenvalues"
.br .br
.RI "int \fBlda\fP: leading dimension of locally distributed matrix \fBa\fP" .RI "complex *\fBq\fP: pointer to memory containing on output the first \fBnev\fP computed eigenvectors"
.br .br
.RI "float *\fBev\fP: pointer to memory containing on output the first \fBnev\fP computed eigenvalues" .RI "int \fBldq\fP: leading dimension of matrix \fBq\fP which stores the eigenvectors"
.br .br
.RI "complex *\fBq\fP: pointer to memory containing on output the first \fBnev\fP computed eigenvectors" .RI "int \fBnblk\fP: blocksize of block cyclic distributin, must be the same in both directions"
.br .br
.RI "int \fBldq\fP: leading dimension of matrix \fBq\fP which stores the eigenvectors" .RI "int \fBmatrixCols\fP: number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br .br
.RI "int \fBnblk\fP: blocksize of block cyclic distributin, must be the same in both directions" .RI "int \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)"
.br .br
.RI "int \fBmatrixCols\fP: number of columns of locally distributed matrices \fBa\fP and \fBq\fP" .RI "int \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)"
.br .br
.RI "int \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)" .RI "int \fBmpi_comm_all\fP: communicator for all processes in the processor set involved in ELPA"
.br .br
.RI "int \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)" .RI "int \fBTHIS_ELPA_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver"
.br .br
.RI "int \fBmpi_comm_all\fP: communicator for all processes in the processor set involved in ELPA" .RI "int \fBuseGPU\fP: decide whether GPUs should be used or not"
.br .br
.RI "int \fBTHIS_ELPA_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver" .RI "int \fBbandwidth\fP: bandwidth of an already banded matrix"
.br .br
.RI "int \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION .SH DESCRIPTION
Solve the complex eigenvalue problem with the 2-stage solver. The ELPA communicators \fBmpi_comm_rows\fP and \fBmpi_comm_cols\fP are obtained with the \fBelpa_get_communicators\fP(3) function. The distributed quadratic marix \fBa\fP has global dimensions \fBna\fP x \fBna\fP, and a local size \fBlda\fP x \fBmatrixCols\fP. The solver will compute the first \fBnev\fP eigenvalues, which will be stored on exit in \fBev\fP. The eigenvectors corresponding to the eigenvalues will be stored in \fBq\fP. All memory of the arguments must be allocated outside the call to the solver. Solve the complex eigenvalue problem with the 2-stage solver. The ELPA communicators \fBmpi_comm_rows\fP and \fBmpi_comm_cols\fP are obtained with the \fBelpa_get_communicators\fP(3) function. The distributed quadratic marix \fBa\fP has global dimensions \fBna\fP x \fBna\fP, and a local size \fBlda\fP x \fBmatrixCols\fP. The solver will compute the first \fBnev\fP eigenvalues, which will be stored on exit in \fBev\fP. The eigenvectors corresponding to the eigenvalues will be stored in \fBq\fP. All memory of the arguments must be allocated outside the call to the solver.
......
.TH "elpa_solve_evp_real_2stage_double" 3 "Tue Oct 18 2016" "ELPA" \" -*- nroff -*- .TH "elpa_solve_evp_real_2stage_double" 3 "Wed Jan 15 2017" "ELPA" \" -*- nroff -*-
.ad l .ad l
.nh .nh
.SH NAME .SH NAME
...@@ -12,7 +12,7 @@ use elpa1 ...@@ -12,7 +12,7 @@ use elpa1
use elpa2 use elpa2
.br .br
.br .br
.RI "success = \fBelpa_solve_evp_real_2stage_double\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_REAL_ELPA_KERNEL, useQR, useGPU)" .RI "success = \fBelpa_solve_evp_real_2stage_double\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_REAL_ELPA_KERNEL, useQR, useGPU, bandwidth)"
.br .br
.RI " " .RI " "
.br .br
...@@ -49,13 +49,15 @@ use elpa2 ...@@ -49,13 +49,15 @@ use elpa2
.br .br
.RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not"
.br .br
.RI "integer, intent(in), optional: \fBbandwidth\fP: bandwidth of an already banded matrix"
.br
.RI "logical \fBsuccess\fP: return value indicating success or failure" .RI "logical \fBsuccess\fP: return value indicating success or failure"
.br .br
.SS C INTERFACE .SS C INTERFACE
#include "elpa.h" #include "elpa.h"
.br .br
.RI "success = \fBelpa_solve_evp_real_2stage_double\fP (\fBint\fP na, \fBint\fP nev, \fB double *\fPa, \fBint\fP lda, \fB double *\fPev, \fBdouble *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_REAL_KERNEL, \fBint\fP useQR, \fBint\fP useGPU);" .RI "success = \fBelpa_solve_evp_real_2stage_double\fP (\fBint\fP na, \fBint\fP nev, \fB double *\fPa, \fBint\fP lda, \fB double *\fPev, \fBdouble *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_REAL_KERNEL, \fBint\fP useQR, \fBint\fP useGPU, \fBint\fP bandwidth);"
.br .br
.RI " " .RI " "
.br .br
...@@ -92,6 +94,8 @@ use elpa2 ...@@ -92,6 +94,8 @@ use elpa2
.br .br
.RI "int \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "int \fBuseGPU\fP: decide whether GPUs should be used or not"
.br .br
.RI "int \fBbandwidth\fP: bandwidth of an already banded matrix"
.br
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0) .RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION .SH DESCRIPTION
......
.TH "elpa_solve_evp_real_2stage_single" 3 "Tue Oct 18 2016" "ELPA" \" -*- nroff -*- .TH "elpa_solve_evp_real_2stage_single" 3 "Wed Jan 15 2017" "ELPA" \" -*- nroff -*-
.ad l .ad l
.nh .nh
.SH NAME .SH NAME
...@@ -12,7 +12,7 @@ use elpa1 ...@@ -12,7 +12,7 @@ use elpa1
use elpa2 use elpa2
.br .br
.br .br
.RI "success = \fBelpa_solve_evp_real_2stage_single\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_REAL_ELPA_KERNEL, useQR, useGPU)" .RI "success = \fBelpa_solve_evp_real_2stage_single\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_REAL_ELPA_KERNEL, useQR, useGPU, bandwidth)"
.br .br
.RI " " .RI " "
.br .br
...@@ -49,13 +49,15 @@ use elpa2 ...@@ -49,13 +49,15 @@ use elpa2
.br .br
.RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "logical, intent(in), optional: \fBuseGPU\fP: decide whether GPUs should be used or not"
.br .br
.RI "integer, intent(in), optional: \fBbandwidth\fP: bandwidth of an already banded matrix"
.br
.RI "logical \fBsuccess\fP: return value indicating success or failure" .RI "logical \fBsuccess\fP: return value indicating success or failure"
.br .br
.SS C INTERFACE .SS C INTERFACE
#include "elpa.h" #include "elpa.h"
.br .br
.RI "success = \fBelpa_solve_evp_real_2stage_single\fP (\fBint\fP na, \fBint\fP nev, \fB float *\fPa, \fBint\fP lda, \fB float *\fPev, \fBfloat *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_REAL_KERNEL, \fBint\fP useQR, \fBint\fP useGPU);" .RI "success = \fBelpa_solve_evp_real_2stage_single\fP (\fBint\fP na, \fBint\fP nev, \fB float *\fPa, \fBint\fP lda, \fB float *\fPev, \fBfloat *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_REAL_KERNEL, \fBint\fP useQR, \fBint\fP useGPU, \fBint\fP bandwidth);"
.br .br
.RI " " .RI " "
.br .br
...@@ -92,6 +94,8 @@ use elpa2 ...@@ -92,6 +94,8 @@ use elpa2
.br .br
.RI "int \fBuseGPU\fP: decide whether GPUs should be used or not" .RI "int \fBuseGPU\fP: decide whether GPUs should be used or not"
.br .br
.RI "int \fBbandwidth\fP: bandwidth of an already banded matrix"
.br
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0) .RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION .SH DESCRIPTION
......
...@@ -164,6 +164,7 @@ module ELPA2 ...@@ -164,6 +164,7 @@ module ELPA2
!> !>
!> \param useQR (optional) use QR decomposition !> \param useQR (optional) use QR decomposition
!> \param useGPU (optional) decide whether to use GPUs or not !> \param useGPU (optional) decide whether to use GPUs or not
!> \param bandwidth (optional) the bandwidth of an allready banded-matrix
!> !>
!> \result success logical, false if error occured !> \result success logical, false if error occured
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -250,6 +251,7 @@ module ELPA2 ...@@ -250,6 +251,7 @@ module ELPA2
!> \param THIS_REAL_ELPA_KERNEL_API (optional) specify used ELPA2 kernel via API !> \param THIS_REAL_ELPA_KERNEL_API (optional) specify used ELPA2 kernel via API
!> !>
!> \param useGPU (optional) decide whether to use GPUs or not !> \param useGPU (optional) decide whether to use GPUs or not
!> \param bandwidth (optional) the bandwidth of an allready banded-matrix
!> !>
!> \result success logical, false if error occured !> \result success logical, false if error occured
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -305,6 +307,7 @@ module ELPA2 ...@@ -305,6 +307,7 @@ module ELPA2
!> !>
!> \param useQR (optional) use QR decomposition !> \param useQR (optional) use QR decomposition
!> \param useGPU (optional) decide whether to use GPUs or not !> \param useGPU (optional) decide whether to use GPUs or not
!> \param bandwidth (optional) the bandwidth of an allready banded-matrix
!> !>
!> \result success logical, false if error occured !> \result success logical, false if error occured
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -350,6 +353,7 @@ module ELPA2 ...@@ -350,6 +353,7 @@ module ELPA2
!> \param THIS_REAL_ELPA_KERNEL_API (optional) specify used ELPA2 kernel via API !> \param THIS_REAL_ELPA_KERNEL_API (optional) specify used ELPA2 kernel via API
!> !>
!> \param useGPU (optional) decide whether to use GPUs or not !> \param useGPU (optional) decide whether to use GPUs or not
!> \param bandwidth (optional) the bandwidth of an allready banded-matrix
!> !>
!> \result success logical, false if error occured !> \result success logical, false if error occured
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -495,7 +499,6 @@ module ELPA2 ...@@ -495,7 +499,6 @@ module ELPA2
!> \param THIS_REAL_ELPA_KERNEL_API (optional) specify used ELPA2 kernel via API !> \param THIS_REAL_ELPA_KERNEL_API (optional) specify used ELPA2 kernel via API
!> \param useGPU (optional) decide whether GPUs should be used or not !> \param useGPU (optional) decide whether GPUs should be used or not
!> !>
!>
!> \result success logical, false if error occured !> \result success logical, false if error occured
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
#include "elpa2_template.X90" #include "elpa2_template.X90"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment