NBLK: Difference between revisions
(Created page with "{{TAGDEF|NBLK|[integer]}} {{DEF|NBLK|-1|VASP.4.6|256|in VASP.5.2, if dfast}} Description: {{TAG|NBLK}} determines the blocking factor in many BLAS level 3 routines. ---- In...") |
No edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 13: | Line 13: | ||
CBLOCK(M,N1)=C(M+IBLOCK,N1) | CBLOCK(M,N1)=C(M+IBLOCK,N1) | ||
C(M+IBLOCK,N1)=0 | C(M+IBLOCK,N1)=0 | ||
200 CONTINUE | |||
C C(IBLOCK+I,N)=SUM_(J,K) CH(I,K) CBLOCK(K,N) | C C(IBLOCK+I,N)=SUM_(J,K) CH(I,K) CBLOCK(K,N) | ||
CALL ZGEMM ('N', 'N', ILEN, N, N, (1.,0.), CBLOCK, NBLK, CH, N, | CALL ZGEMM ('N', 'N', ILEN, N, N, (1.,0.), CBLOCK, NBLK, CH, N, | ||
& (1.,0.), C(IBLOCK+1,1), NDIM) | & (1.,0.), C(IBLOCK+1,1), NDIM) | ||
100 CONTINUE | |||
ZGEMM is the matrix <math>\times</math> matrix multiplication command of the BLAS package. The task performed by this call is indicated by the comment line written above the ZGEMM call. Generally {{TAG|NBLK}}=16 or 32 is large enough for super-scalar machines. A large value might be necessary on vector machines for optimal performance ({{TAG|NBLK}}=128). | ZGEMM is the matrix <math>\times</math> matrix multiplication command of the BLAS package. The task performed by this call is indicated by the comment line written above the ZGEMM call. Generally {{TAG|NBLK}}=16 or 32 is large enough for super-scalar machines. A large value might be necessary on vector machines for optimal performance ({{TAG|NBLK}}=128). | ||
{{sc|NBLK|Examples|Examples that use this tag}} | |||
---- | ---- | ||
[[Category:INCAR]] | [[Category:INCAR tag]][[Category:Performance]] |
Latest revision as of 14:47, 8 April 2022
NBLK = [integer]
Default: NBLK | = -1 | VASP.4.6 |
= 256 | in VASP.5.2, if dfast |
Description: NBLK determines the blocking factor in many BLAS level 3 routines.
In some cases, VASP has to perform a unitary transformation of the current orbitals. This is done using a work array CBLOCK and the following FORTRAN code:
DO 100 IBLOCK=0,NPL-1,NBLK ILEN=MIN(NBLK,NPL-IBLOCK) DO 200 N1=1,N DO 200 M=1,ILEN CBLOCK(M,N1)=C(M+IBLOCK,N1) C(M+IBLOCK,N1)=0 200 CONTINUE C C(IBLOCK+I,N)=SUM_(J,K) CH(I,K) CBLOCK(K,N) CALL ZGEMM ('N', 'N', ILEN, N, N, (1.,0.), CBLOCK, NBLK, CH, N, & (1.,0.), C(IBLOCK+1,1), NDIM) 100 CONTINUE
ZGEMM is the matrix [math]\displaystyle{ \times }[/math] matrix multiplication command of the BLAS package. The task performed by this call is indicated by the comment line written above the ZGEMM call. Generally NBLK=16 or 32 is large enough for super-scalar machines. A large value might be necessary on vector machines for optimal performance (NBLK=128).