dsyev eigenvalue solver

Open forum for general discussions relating to PLASMA.

dsyev eigenvalue solver

Postby nchilton » Wed Apr 04, 2012 9:11 pm

Hi,

I'm really interested in using the PLASMA library for eigenvalue solutions to large, double and complex double matrices. I have downloaded the latest 2.4.5 release, however the contained documentation is rather scant and the online documentation is well out of date and I cannot seem to find any reference to the usage of the dsyev or zheev routines, apart from the source files. I'm interested in an example or explanation of how to call these routines from fortran code, in addition to any initialization requirements for PLASMA. Initially I'd like to start with the 'lapack style' matrix input before I move to the 'tile' format.

Can anyone help?

Cheers!
Nick
nchilton
 
Posts: 16
Joined: Wed Apr 04, 2012 9:04 pm

Re: dsyev eigenvalue solver

Postby admin » Thu Apr 05, 2012 2:16 pm

...
admin
Site Admin
 
Posts: 79
Joined: Wed May 13, 2009 1:27 pm

Re: dsyev eigenvalue solver

Postby nchilton » Wed Apr 11, 2012 10:46 pm

So now that I have PLASMA installed, I'm trying to use the dsyev solver and as mentioned, it's a little unclear. The code fragment below shows how I'm trying to use it...



include "plasmaf.h"

integer::plas_info,n
real(kind=8)::A(10000,10000),EigVecs(10000,10000),EigVals(10000)

n = 10000

call PLASMA_INIT(4,plas_info)

call PLASMA_ALLOC_WORKSPACE_DSYEV(n,n,pointer?,plas_info)

call PLASMA_DSYEV('PlasmaNoVec','PlasmaUpper',n,A,n,EigVals,handle,EigVecs,n)

call PLASMA_DEALLOC_HANDLE(handle,plas_info)

call PLASMA_FINALIZE(plas_info)


I'm attempting to compile using:
ifort -O0 -openmp -fpp -Domp -check all -o Debug.x $(SOURCES) -L/opt/sw/intel-2011.9/mkl/lib/intel64 -lmkl_solver_lp64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -Wl,--start-group /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_intel_lp64.a /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_sequential.a /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -nofor_main -I/opt/sw/plasma-2.4.5/include/ -L/opt/sw/plasma-2.4.5/lib/ -lcoreblas -lplasma -lquark


Suffice to say, using code similar to this and the link line, it does not compile. All the definitions in the "plasmaf.h" file give me the following error: The attributes of this name conflict with those made accessible by a USE statement.

So my questions are:
Is 'plasmaf.h' the only include file I need?
Have I correctly linked the libraries?
What type do I need to define for the pointer in the alloc_workspace routine?
nchilton
 
Posts: 16
Joined: Wed Apr 04, 2012 9:04 pm

Re: dsyev eigenvalue solver

Postby mateo70 » Thu Apr 12, 2012 10:20 am

Hello,

since you are compiling with ifort. If your code is F90 or more recent and not f77. I would recommend you use the PLASMA module and not the plasma.f which is done for f77 code.
To compile this module, you need to define:
PLASMA_F90 = 1 in your make.inc

And if you look at the files control/plasma_f90.f90 and plasma_df90.F90, you will have the plasma interface to call the functions, and in plasma_df90.F90 you will get a wrapper with the exact same interface as in LAPACK if it's doable with the function you are looking for.

Regards,
Mathieu
mateo70
 
Posts: 94
Joined: Fri May 07, 2010 3:48 pm

Re: dsyev eigenvalue solver

Postby nchilton » Thu Apr 12, 2012 7:47 pm

Thanks Mathieu!

My code is indeed f90, so I will re-compile PLASMA with the PLASMA_F90 = 1 option set. I assume then instead of the include statement, I'll need:

use plasma
use plasma_d (and any other data types I need)

Then in the code, do I still need to call the PLASMA_INIT, PLASMA_ALLOC_WORKSPACE_DSYEV, PLASMA_DEALLOC_HANDLE and PLASMA_FINALIZE as well as the PLASMA_DSYEV call?

EDIT: Also, having looked at the df90 subroutines:

subroutine PLASMA_Alloc_Workspace_dsyev(M,N,descT,info)
use iso_c_binding
implicit none
integer(kind=c_int), intent(out) :: info
integer(kind=c_int), intent(in) :: M
integer(kind=c_int), intent(in) :: N
type(c_ptr) :: descT ! descT is **, so pass by reference
info = PLASMA_Alloc_Workspace_dsyev_c(M,N,descT)
end subroutine PLASMA_Alloc_Workspace_dsyev

subroutine PLASMA_dsyev(jobz,uplo,N,A,LDA,W,T,Q,LDQ,info)
use iso_c_binding
implicit none
integer(kind=c_int), intent(out) :: info
integer(kind=c_int), intent(in) :: LDA
integer(kind=c_int), intent(in) :: LDQ
integer(kind=c_int), intent(in) :: N
integer(kind=c_int), intent(in) :: jobz
integer(kind=c_int), intent(in) :: uplo
real(kind=c_double), intent(inout), target :: A(LDA,*)
real(kind=c_double), intent(out), target :: W(*)
real(kind=c_double), intent(out), target :: Q(LDQ,*)
type(c_ptr), value :: T ! Arg managed by PLASMA: opaque to Fortran
info = PLASMA_dsyev_c(jobz,uplo,N,c_loc(A),LDA,c_loc(W),T,c_loc(Q),LDQ)
end subroutine PLASMA_dsyev

What type of argument do I use for 'T'? A dummy integer or string?

Cheers, Nick
nchilton
 
Posts: 16
Joined: Wed Apr 04, 2012 9:04 pm

Re: dsyev eigenvalue solver

Postby mateo70 » Fri Apr 13, 2012 10:38 am

Hello Nick,

The best you can do is to follow the interface:
Code: Select all
use iso_c_binding
type(c_ptr) :: T


T and descT are the same. Let me know if you have any problem with it because I'm not sure you have the last version of the wrapper and some problems have been fixed but the fixes may have not been released.

Cheers,
Mathieu
mateo70
 
Posts: 94
Joined: Fri May 07, 2010 3:48 pm

Re: dsyev eigenvalue solver

Postby nchilton » Sun Apr 15, 2012 8:29 pm

Thanks Mathieu,

I've given it a go and now that T is properly defined I'm getting errors that look like I'm missing a library....

ifort -O0 -openmp -fpp -check all -o PHI_Debug.x -I/opt/sw/plasma-2.4.5/include/ /opt/sw/intel-2011.9/include/iso_c_binding.f90 $(SOURCES) -L/opt/sw/intel-2011.9/mkl/lib/intel64 -lmkl_solver_lp64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -Wl,--start-group /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_intel_lp64.a /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_sequential.a /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -nofor_main -L/opt/sw/plasma-2.4.5/lib/ -lcoreblas -lplasma -lquark

/opt/sw/plasma-2.4.5/lib//libplasma.a(pztile.o): In function `plasma_pzlapack_to_tile':
pztile.c:(.text+0x378): undefined reference to `CORE_zlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pztile.o): In function `plasma_pzlapack_to_tile_quark':
pztile.c:(.text+0x6fe): undefined reference to `QUARK_CORE_zlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pztile.o): In function `plasma_pztile_to_lapack':
pztile.c:(.text+0xad2): undefined reference to `CORE_zlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pztile.o): In function `plasma_pztile_to_lapack_quark':
pztile.c:(.text+0xe60): undefined reference to `QUARK_CORE_zlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pctile.o): In function `plasma_pclapack_to_tile':
pctile.c:(.text+0x373): undefined reference to `CORE_clacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pctile.o): In function `plasma_pclapack_to_tile_quark':
pctile.c:(.text+0x6fc): undefined reference to `QUARK_CORE_clacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pctile.o): In function `plasma_pctile_to_lapack':
pctile.c:(.text+0xad4): undefined reference to `CORE_clacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pctile.o): In function `plasma_pctile_to_lapack_quark':
pctile.c:(.text+0xe5b): undefined reference to `QUARK_CORE_clacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtile.o): In function `plasma_pdlapack_to_tile':
pdtile.c:(.text+0x373): undefined reference to `CORE_dlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtile.o): In function `plasma_pdlapack_to_tile_quark':
pdtile.c:(.text+0x6fc): undefined reference to `QUARK_CORE_dlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtile.o): In function `plasma_pdtile_to_lapack':
pdtile.c:(.text+0xad4): undefined reference to `CORE_dlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtile.o): In function `plasma_pdtile_to_lapack_quark':
pdtile.c:(.text+0xe5b): undefined reference to `QUARK_CORE_dlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pstile.o): In function `plasma_pslapack_to_tile':
pstile.c:(.text+0x373): undefined reference to `CORE_slacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pstile.o): In function `plasma_pslapack_to_tile_quark':
pstile.c:(.text+0x6fc): undefined reference to `QUARK_CORE_slacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pstile.o): In function `plasma_pstile_to_lapack':
pstile.c:(.text+0xad4): undefined reference to `CORE_slacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pstile.o): In function `plasma_pstile_to_lapack_quark':
pstile.c:(.text+0xe5b): undefined reference to `QUARK_CORE_slacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgecfi.o): In function `PLASMA_dgecfi_Async':
dgecfi.c:(.text+0x2a42): undefined reference to `CORE_dswpab'
dgecfi.c:(.text+0x2acf): undefined reference to `CORE_dswpab'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dsygv.o): In function `PLASMA_dsygv':
dsygv.c:(.text+0xa90): undefined reference to `LAPACKE_dsterf'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dsygv.o): In function `PLASMA_dsygv_Tile':
dsygv.c:(.text+0x243c): undefined reference to `LAPACKE_dsterf'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dsygv.o): In function `PLASMA_dsygv_Tile_Async':
dsygv.c:(.text+0x302c): undefined reference to `LAPACKE_dsterf'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dsyev.o): In function `PLASMA_dsyev':
dsyev.c:(.text+0xb4f): undefined reference to `LAPACKE_dsterf'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dsyev.o): In function `PLASMA_dsyev_Tile':
dsyev.c:(.text+0x175a): undefined reference to `LAPACKE_dsterf'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dsyev.o):dsyev.c:(.text+0x1eae): more undefined references to `LAPACKE_dsterf' follow
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgesvd.o): In function `PLASMA_dgesvd':
dgesvd.c:(.text+0xe04): undefined reference to `plasma_lapack_constants'
dgesvd.c:(.text+0xe21): undefined reference to `LAPACKE_dbdsqr'
dgesvd.c:(.text+0xe41): undefined reference to `plasma_lapack_constants'
dgesvd.c:(.text+0xe5e): undefined reference to `LAPACKE_dbdsqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgesvd.o): In function `PLASMA_dgesvd_Tile':
dgesvd.c:(.text+0x1c9a): undefined reference to `plasma_lapack_constants'
dgesvd.c:(.text+0x1cbd): undefined reference to `LAPACKE_dbdsqr'
dgesvd.c:(.text+0x1cd9): undefined reference to `plasma_lapack_constants'
dgesvd.c:(.text+0x1cfc): undefined reference to `LAPACKE_dbdsqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgesvd.o): In function `PLASMA_dgesvd_Tile_Async':
dgesvd.c:(.text+0x2726): undefined reference to `plasma_lapack_constants'
dgesvd.c:(.text+0x2741): undefined reference to `LAPACKE_dbdsqr'
dgesvd.c:(.text+0x275f): undefined reference to `plasma_lapack_constants'
dgesvd.c:(.text+0x277a): undefined reference to `LAPACKE_dbdsqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgelqf.o): In function `plasma_pdgelqf':
pdgelqf.c:(.text+0x648): undefined reference to `CORE_dgelqt'
pdgelqf.c:(.text+0xb91): undefined reference to `CORE_dtslqt'
pdgelqf.c:(.text+0x1194): undefined reference to `CORE_dormlq'
pdgelqf.c:(.text+0x198c): undefined reference to `CORE_dtsmlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgelqf.o): In function `plasma_pdgelqf_quark':
pdgelqf.c:(.text+0x1dc1): undefined reference to `QUARK_CORE_dgelqt'
pdgelqf.c:(.text+0x21c1): undefined reference to `QUARK_CORE_dormlq'
pdgelqf.c:(.text+0x2524): undefined reference to `QUARK_CORE_dtslqt'
pdgelqf.c:(.text+0x29c9): undefined reference to `QUARK_CORE_dtsmlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgeqrf.o): In function `plasma_pdgeqrf':
pdgeqrf.c:(.text+0x644): undefined reference to `CORE_dgeqrt'
pdgeqrf.c:(.text+0xba4): undefined reference to `CORE_dtsqrt'
pdgeqrf.c:(.text+0x1127): undefined reference to `CORE_dormqr'
pdgeqrf.c:(.text+0x1920): undefined reference to `CORE_dtsmqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgeqrf.o): In function `plasma_pdgeqrf_quark':
pdgeqrf.c:(.text+0x1d5c): undefined reference to `QUARK_CORE_dgeqrt'
pdgeqrf.c:(.text+0x2127): undefined reference to `QUARK_CORE_dormqr'
pdgeqrf.c:(.text+0x24c6): undefined reference to `QUARK_CORE_dtsqrt'
pdgeqrf.c:(.text+0x2946): undefined reference to `QUARK_CORE_dtsmqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdpotrf.o): In function `plasma_pdpotrf':
pdpotrf.c:(.text+0x3db): undefined reference to `CORE_dpotrf'
pdpotrf.c:(.text+0x7ec): undefined reference to `CORE_dsyrk'
pdpotrf.c:(.text+0xbf8): undefined reference to `CORE_dtrsm'
pdpotrf.c:(.text+0x12f0): undefined reference to `CORE_dgemm'
pdpotrf.c:(.text+0x151b): undefined reference to `CORE_dpotrf'
pdpotrf.c:(.text+0x1812): undefined reference to `CORE_dsyrk'
pdpotrf.c:(.text+0x1ba7): undefined reference to `CORE_dtrsm'
pdpotrf.c:(.text+0x2066): undefined reference to `CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdpotrf.o): In function `plasma_pdpotrf_quark':
pdpotrf.c:(.text+0x22dc): undefined reference to `QUARK_CORE_dpotrf'
pdpotrf.c:(.text+0x2558): undefined reference to `QUARK_CORE_dtrsm'
pdpotrf.c:(.text+0x280b): undefined reference to `QUARK_CORE_dsyrk'
pdpotrf.c:(.text+0x2aed): undefined reference to `QUARK_CORE_dgemm'
pdpotrf.c:(.text+0x2cd7): undefined reference to `QUARK_CORE_dpotrf'
pdpotrf.c:(.text+0x2f90): undefined reference to `QUARK_CORE_dtrsm'
pdpotrf.c:(.text+0x3227): undefined reference to `QUARK_CORE_dsyrk'
pdpotrf.c:(.text+0x3511): undefined reference to `QUARK_CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtrtri.o): In function `plasma_pdtrtri_quark':
pdtrtri.c:(.text+0x3ad): undefined reference to `QUARK_CORE_dtrsm'
pdtrtri.c:(.text+0x7c1): undefined reference to `QUARK_CORE_dgemm'
pdtrtri.c:(.text+0xa33): undefined reference to `QUARK_CORE_dtrsm'
pdtrtri.c:(.text+0xbb7): undefined reference to `QUARK_CORE_dtrtri'
pdtrtri.c:(.text+0xf34): undefined reference to `QUARK_CORE_dtrsm'
pdtrtri.c:(.text+0x136a): undefined reference to `QUARK_CORE_dgemm'
pdtrtri.c:(.text+0x1683): undefined reference to `QUARK_CORE_dtrsm'
pdtrtri.c:(.text+0x1812): undefined reference to `QUARK_CORE_dtrtri'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdlauum.o): In function `plasma_pdlauum_quark':
pdlauum.c:(.text+0x343): undefined reference to `QUARK_CORE_dsyrk'
pdlauum.c:(.text+0x666): undefined reference to `QUARK_CORE_dgemm'
pdlauum.c:(.text+0x915): undefined reference to `QUARK_CORE_dtrmm'
pdlauum.c:(.text+0xa58): undefined reference to `QUARK_CORE_dlauum'
pdlauum.c:(.text+0xd40): undefined reference to `QUARK_CORE_dsyrk'
pdlauum.c:(.text+0x1076): undefined reference to `QUARK_CORE_dgemm'
pdlauum.c:(.text+0x1344): undefined reference to `QUARK_CORE_dtrmm'
pdlauum.c:(.text+0x148c): undefined reference to `QUARK_CORE_dlauum'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgelqfrh.o): In function `plasma_pdgelqfrh_quark':
pdgelqfrh.c:(.text+0x37c): undefined reference to `QUARK_CORE_dgelqt'
pdgelqfrh.c:(.text+0x765): undefined reference to `QUARK_CORE_dormlq'
pdgelqfrh.c:(.text+0xaa9): undefined reference to `QUARK_CORE_dtslqt'
pdgelqfrh.c:(.text+0xf40): undefined reference to `QUARK_CORE_dtsmlq'
pdgelqfrh.c:(.text+0x134b): undefined reference to `QUARK_CORE_dttlqt'
pdgelqfrh.c:(.text+0x1802): undefined reference to `QUARK_CORE_dttmlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgeqrfrh.o): In function `plasma_pdgeqrfrh_quark':
pdgeqrfrh.c:(.text+0x36f): undefined reference to `QUARK_CORE_dgeqrt'
pdgeqrfrh.c:(.text+0x728): undefined reference to `QUARK_CORE_dormqr'
pdgeqrfrh.c:(.text+0xab1): undefined reference to `QUARK_CORE_dtsqrt'
pdgeqrfrh.c:(.text+0xf19): undefined reference to `QUARK_CORE_dtsmqr'
pdgeqrfrh.c:(.text+0x138e): undefined reference to `QUARK_CORE_dttqrt'
pdgeqrfrh.c:(.text+0x181a): undefined reference to `QUARK_CORE_dttmqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtrsm.o): In function `plasma_pdtrsm':
pdtrsm.c:(.text+0x51a): undefined reference to `CORE_dtrsm'
pdtrsm.c:(.text+0x89f): undefined reference to `CORE_dgemm'
pdtrsm.c:(.text+0xafc): undefined reference to `CORE_dtrsm'
pdtrsm.c:(.text+0xcbf): undefined reference to `CORE_dtrsm'
pdtrsm.c:(.text+0xe6c): undefined reference to `CORE_dtrsm'
pdtrsm.c:(.text+0x10bd): undefined reference to `CORE_dgemm'
pdtrsm.c:(.text+0x12cf): undefined reference to `CORE_dgemm'
pdtrsm.c:(.text+0x1510): undefined reference to `CORE_dgemm'
pdtrsm.c:(.text+0x1af2): undefined reference to `CORE_dtrsm'
pdtrsm.c:(.text+0x1e70): undefined reference to `CORE_dgemm'
pdtrsm.c:(.text+0x22dd): undefined reference to `CORE_dtrsm'
pdtrsm.c:(.text+0x287e): undefined reference to `CORE_dgemm'
pdtrsm.c:(.text+0x2b1c): undefined reference to `CORE_dgemm'
pdtrsm.c:(.text+0x2f2d): undefined reference to `CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtrsm.o): In function `plasma_pdtrsm_quark':
pdtrsm.c:(.text+0x3253): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x344f): undefined reference to `QUARK_CORE_dgemm'
pdtrsm.c:(.text+0x36dc): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x3896): undefined reference to `QUARK_CORE_dgemm'
pdtrsm.c:(.text+0x3b17): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x3cd0): undefined reference to `QUARK_CORE_dgemm'
pdtrsm.c:(.text+0x3f55): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x41a9): undefined reference to `QUARK_CORE_dgemm'
pdtrsm.c:(.text+0x445b): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x46a3): undefined reference to `QUARK_CORE_dgemm'
pdtrsm.c:(.text+0x4954): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x4bc6): undefined reference to `QUARK_CORE_dgemm'
pdtrsm.c:(.text+0x4e46): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x508c): undefined reference to `QUARK_CORE_dgemm'
pdtrsm.c:(.text+0x5312): undefined reference to `QUARK_CORE_dtrsm'
pdtrsm.c:(.text+0x5547): undefined reference to `QUARK_CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgemm.o): In function `plasma_pdgemm':
pdgemm.c:(.text+0x7b2): undefined reference to `CORE_dgemm'
pdgemm.c:(.text+0xd84): undefined reference to `CORE_dgemm'
pdgemm.c:(.text+0x1319): undefined reference to `CORE_dgemm'
pdgemm.c:(.text+0x1811): undefined reference to `CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgemm.o): In function `plasma_pdgemm_quark':
pdgemm.c:(.text+0x1dcd): undefined reference to `QUARK_CORE_dgemm'
pdgemm.c:(.text+0x225a): undefined reference to `QUARK_CORE_dgemm'
pdgemm.c:(.text+0x26ce): undefined reference to `QUARK_CORE_dgemm'
pdgemm.c:(.text+0x2afe): undefined reference to `QUARK_CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsymm.o): In function `plasma_pdsymm':
pdsymm.c:(.text+0x7bc): undefined reference to `CORE_dsymm'
pdsymm.c:(.text+0xc05): undefined reference to `CORE_dgemm'
pdsymm.c:(.text+0x104d): undefined reference to `CORE_dgemm'
pdsymm.c:(.text+0x15bd): undefined reference to `CORE_dsymm'
pdsymm.c:(.text+0x19fc): undefined reference to `CORE_dgemm'
pdsymm.c:(.text+0x1e41): undefined reference to `CORE_dgemm'
pdsymm.c:(.text+0x220b): undefined reference to `CORE_dsymm'
pdsymm.c:(.text+0x2380): undefined reference to `CORE_dgemm'
pdsymm.c:(.text+0x24f6): undefined reference to `CORE_dgemm'
pdsymm.c:(.text+0x2a56): undefined reference to `CORE_dsymm'
pdsymm.c:(.text+0x2eac): undefined reference to `CORE_dgemm'
pdsymm.c:(.text+0x328b): undefined reference to `CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsymm.o): In function `plasma_pdsymm_quark':
pdsymm.c:(.text+0x3953): undefined reference to `QUARK_CORE_dsymm'
pdsymm.c:(.text+0x3c8c): undefined reference to `QUARK_CORE_dgemm'
pdsymm.c:(.text+0x3fca): undefined reference to `QUARK_CORE_dgemm'
pdsymm.c:(.text+0x443c): undefined reference to `QUARK_CORE_dsymm'
pdsymm.c:(.text+0x476b): undefined reference to `QUARK_CORE_dgemm'
pdsymm.c:(.text+0x4a99): undefined reference to `QUARK_CORE_dgemm'
pdsymm.c:(.text+0x4ee6): undefined reference to `QUARK_CORE_dsymm'
pdsymm.c:(.text+0x505f): undefined reference to `QUARK_CORE_dgemm'
pdsymm.c:(.text+0x5279): undefined reference to `QUARK_CORE_dgemm'
pdsymm.c:(.text+0x56e1): undefined reference to `QUARK_CORE_dsymm'
pdsymm.c:(.text+0x59f8): undefined reference to `QUARK_CORE_dgemm'
pdsymm.c:(.text+0x5d04): undefined reference to `QUARK_CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsyrk.o): In function `plasma_pdsyrk':
pdsyrk.c:(.text+0x5b6): undefined reference to `CORE_dsyrk'
pdsyrk.c:(.text+0xb34): undefined reference to `CORE_dgemm'
pdsyrk.c:(.text+0xf58): undefined reference to `CORE_dsyrk'
pdsyrk.c:(.text+0x14be): undefined reference to `CORE_dgemm'
pdsyrk.c:(.text+0x1a6d): undefined reference to `CORE_dgemm'
pdsyrk.c:(.text+0x1f61): undefined reference to `CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsyrk.o): In function `plasma_pdsyrk_quark':
pdsyrk.c:(.text+0x23d0): undefined reference to `QUARK_CORE_dsyrk'
pdsyrk.c:(.text+0x2840): undefined reference to `QUARK_CORE_dgemm'
pdsyrk.c:(.text+0x2d00): undefined reference to `QUARK_CORE_dgemm'
pdsyrk.c:(.text+0x2ff9): undefined reference to `QUARK_CORE_dsyrk'
pdsyrk.c:(.text+0x3474): undefined reference to `QUARK_CORE_dgemm'
pdsyrk.c:(.text+0x38d6): undefined reference to `QUARK_CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtrsmpl.o): In function `plasma_pdtrsmpl':
pdtrsmpl.c:(.text+0x78c): undefined reference to `CORE_dgessm'
pdtrsmpl.c:(.text+0x1004): undefined reference to `CORE_dssssm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtrsmpl.o): In function `plasma_pdtrsmpl_quark':
pdtrsmpl.c:(.text+0x152f): undefined reference to `QUARK_CORE_dgessm'
pdtrsmpl.c:(.text+0x1abf): undefined reference to `QUARK_CORE_dssssm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdlange.o): In function `plasma_pdlange':
pdlange.c:(.text+0x3da): undefined reference to `CORE_dasum'
pdlange.c:(.text+0x69c): undefined reference to `CORE_dasum'
pdlange.c:(.text+0x930): undefined reference to `CORE_dlange'
pdlange.c:(.text+0xc0d): undefined reference to `CORE_dlange'
pdlange.c:(.text+0xce9): undefined reference to `CORE_dlange'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdlange.o): In function `plasma_pdlange_quark':
pdlange.c:(.text+0x10ee): undefined reference to `QUARK_CORE_dasum_f1'
pdlange.c:(.text+0x13e1): undefined reference to `QUARK_CORE_dasum_f1'
pdlange.c:(.text+0x16ca): undefined reference to `QUARK_CORE_dlange_f1'
pdlange.c:(.text+0x1756): undefined reference to `QUARK_CORE_dlange'
pdlange.c:(.text+0x177c): undefined reference to `QUARK_CORE_free'
pdlange.c:(.text+0x17e3): undefined reference to `QUARK_CORE_dlange'
pdlange.c:(.text+0x1809): undefined reference to `QUARK_CORE_free'
pdlange.c:(.text+0x1861): undefined reference to `QUARK_CORE_dlange'
pdlange.c:(.text+0x187b): undefined reference to `QUARK_CORE_free'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdlansy.o): In function `plasma_pdlansy':
pdlansy.c:(.text+0x41a): undefined reference to `CORE_dasum'
pdlansy.c:(.text+0x6b0): undefined reference to `CORE_dlansy'
pdlansy.c:(.text+0x90d): undefined reference to `CORE_dlange'
pdlansy.c:(.text+0xd3b): undefined reference to `CORE_dasum'
pdlansy.c:(.text+0xf16): undefined reference to `CORE_dasum'
pdlansy.c:(.text+0xf67): undefined reference to `CORE_dlange'
pdlansy.c:(.text+0x11e1): undefined reference to `CORE_dasum'
pdlansy.c:(.text+0x1367): undefined reference to `CORE_dasum'
pdlansy.c:(.text+0x157f): undefined reference to `CORE_dasum'
pdlansy.c:(.text+0x17f5): undefined reference to `CORE_dlange'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdlansy.o): In function `plasma_pdlansy_quark':
pdlansy.c:(.text+0x1b01): undefined reference to `QUARK_CORE_dasum_f1'
pdlansy.c:(.text+0x1cd4): undefined reference to `QUARK_CORE_dasum_f1'
pdlansy.c:(.text+0x1e46): undefined reference to `QUARK_CORE_dasum_f1'
pdlansy.c:(.text+0x20dd): undefined reference to `QUARK_CORE_dlansy_f1'
pdlansy.c:(.text+0x2293): undefined reference to `QUARK_CORE_dlange_f1'
pdlansy.c:(.text+0x2311): undefined reference to `QUARK_CORE_dlange'
pdlansy.c:(.text+0x2337): undefined reference to `QUARK_CORE_free'
pdlansy.c:(.text+0x2504): undefined reference to `QUARK_CORE_dasum_f1'
pdlansy.c:(.text+0x2679): undefined reference to `QUARK_CORE_dasum_f1'
pdlansy.c:(.text+0x2716): undefined reference to `QUARK_CORE_dlange'
pdlansy.c:(.text+0x2730): undefined reference to `QUARK_CORE_free'
pdlansy.c:(.text+0x28d8): undefined reference to `QUARK_CORE_dlange_f1'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsyr2k.o): In function `plasma_pdsyr2k':
pdsyr2k.c:(.text+0x4a8): undefined reference to `CORE_dsyr2k'
pdsyr2k.c:(.text+0xa20): undefined reference to `CORE_dgemm'
pdsyr2k.c:(.text+0xe6d): undefined reference to `CORE_dgemm'
pdsyr2k.c:(.text+0x1235): undefined reference to `CORE_dsyr2k'
pdsyr2k.c:(.text+0x178b): undefined reference to `CORE_dgemm'
pdsyr2k.c:(.text+0x1bc6): undefined reference to `CORE_dgemm'
pdsyr2k.c:(.text+0x217a): undefined reference to `CORE_dgemm'
pdsyr2k.c:(.text+0x25b3): undefined reference to `CORE_dgemm'
pdsyr2k.c:(.text+0x2a49): undefined reference to `CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsyr2k.o):pdsyr2k.c:(.text+0x2e82): more undefined references to `CORE_dgemm' follow
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsyr2k.o): In function `plasma_pdsyr2k_quark':
pdsyr2k.c:(.text+0x3457): undefined reference to `QUARK_CORE_dsyr2k'
pdsyr2k.c:(.text+0x38fb): undefined reference to `QUARK_CORE_dgemm'
pdsyr2k.c:(.text+0x3c42): undefined reference to `QUARK_CORE_dgemm'
pdsyr2k.c:(.text+0x4131): undefined reference to `QUARK_CORE_dgemm'
pdsyr2k.c:(.text+0x4478): undefined reference to `QUARK_CORE_dgemm'
pdsyr2k.c:(.text+0x46b8): undefined reference to `QUARK_CORE_dsyr2k'
pdsyr2k.c:(.text+0x4ad1): undefined reference to `QUARK_CORE_dgemm'
pdsyr2k.c:(.text+0x4c5f): undefined reference to `QUARK_CORE_dgemm'
pdsyr2k.c:(.text+0x50ec): undefined reference to `QUARK_CORE_dgemm'
pdsyr2k.c:(.text+0x540b): undefined reference to `QUARK_CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetrf_incpiv.o): In function `plasma_pdgetrf_incpiv':
pdgetrf_incpiv.c:(.text+0x56f): undefined reference to `CORE_dgetrf_incpiv'
pdgetrf_incpiv.c:(.text+0xb2f): undefined reference to `CORE_dtstrf'
pdgetrf_incpiv.c:(.text+0xfca): undefined reference to `CORE_dgessm'
pdgetrf_incpiv.c:(.text+0x184f): undefined reference to `CORE_dssssm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetrf_incpiv.o): In function `plasma_pdgetrf_incpiv_quark':
pdgetrf_incpiv.c:(.text+0x1c8f): undefined reference to `QUARK_CORE_dgetrf_incpiv'
pdgetrf_incpiv.c:(.text+0x1f40): undefined reference to `QUARK_CORE_dgessm'
pdgetrf_incpiv.c:(.text+0x238e): undefined reference to `QUARK_CORE_dtstrf'
pdgetrf_incpiv.c:(.text+0x2825): undefined reference to `QUARK_CORE_dssssm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdtrmm.o): In function `plasma_pdtrmm_quark':
pdtrmm.c:(.text+0x2c6): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0x447): undefined reference to `QUARK_CORE_dgemm'
pdtrmm.c:(.text+0x68a): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0x882): undefined reference to `QUARK_CORE_dgemm'
pdtrmm.c:(.text+0xae4): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0xca6): undefined reference to `QUARK_CORE_dgemm'
pdtrmm.c:(.text+0xee9): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0x1067): undefined reference to `QUARK_CORE_dgemm'
pdtrmm.c:(.text+0x12bb): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0x14ed): undefined reference to `QUARK_CORE_dgemm'
pdtrmm.c:(.text+0x1744): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0x18c7): undefined reference to `QUARK_CORE_dgemm'
pdtrmm.c:(.text+0x1c30): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0x1f2a): undefined reference to `QUARK_CORE_dgemm'
pdtrmm.c:(.text+0x219e): undefined reference to `QUARK_CORE_dtrmm'
pdtrmm.c:(.text+0x252d): undefined reference to `QUARK_CORE_dgemm'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdormqr.o): In function `plasma_pdormqr':
pdormqr.c:(.text+0x8de): undefined reference to `CORE_dormqr'
pdormqr.c:(.text+0x10a9): undefined reference to `CORE_dtsmqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdormqr.o): In function `plasma_pdormqr_quark':
pdormqr.c:(.text+0x1527): undefined reference to `QUARK_CORE_dormqr'
pdormqr.c:(.text+0x183d): undefined reference to `QUARK_CORE_dtsmqr'
pdormqr.c:(.text+0x1c17): undefined reference to `QUARK_CORE_dtsmqr'
pdormqr.c:(.text+0x205a): undefined reference to `QUARK_CORE_dormqr'
pdormqr.c:(.text+0x268a): undefined reference to `QUARK_CORE_dtsmqr'
pdormqr.c:(.text+0x2aaf): undefined reference to `QUARK_CORE_dormqr'
pdormqr.c:(.text+0x2f73): undefined reference to `QUARK_CORE_dormqr'
pdormqr.c:(.text+0x34cc): undefined reference to `QUARK_CORE_dtsmqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdormlq.o): In function `plasma_pdormlq':
pdormlq.c:(.text+0xb2a): undefined reference to `CORE_dtsmlq'
pdormlq.c:(.text+0xfd7): undefined reference to `CORE_dormlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdormlq.o): In function `plasma_pdormlq_quark':
pdormlq.c:(.text+0x1451): undefined reference to `QUARK_CORE_dormlq'
pdormlq.c:(.text+0x1742): undefined reference to `QUARK_CORE_dtsmlq'
pdormlq.c:(.text+0x1c23): undefined reference to `QUARK_CORE_dtsmlq'
pdormlq.c:(.text+0x2060): undefined reference to `QUARK_CORE_dormlq'
pdormlq.c:(.text+0x2678): undefined reference to `QUARK_CORE_dtsmlq'
pdormlq.c:(.text+0x2a97): undefined reference to `QUARK_CORE_dormlq'
pdormlq.c:(.text+0x2f5a): undefined reference to `QUARK_CORE_dormlq'
pdormlq.c:(.text+0x348f): undefined reference to `QUARK_CORE_dtsmlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdorgqr.o): In function `plasma_pdorgqr_quark':
pdorgqr.c:(.text+0x6ad): undefined reference to `QUARK_CORE_dtsmqr'
pdorgqr.c:(.text+0xac5): undefined reference to `QUARK_CORE_dormqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdorglq.o): In function `plasma_pdorglq_quark':
pdorglq.c:(.text+0x647): undefined reference to `QUARK_CORE_dtsmlq'
pdorglq.c:(.text+0xa90): undefined reference to `QUARK_CORE_dormlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdormqrrh.o): In function `plasma_pdormqrrh_quark':
pdormqrrh.c:(.text+0x3c8): undefined reference to `QUARK_CORE_dormqr'
pdormqrrh.c:(.text+0x6f2): undefined reference to `QUARK_CORE_dtsmqr'
pdormqrrh.c:(.text+0xa55): undefined reference to `QUARK_CORE_dttmqr'
pdormqrrh.c:(.text+0xe44): undefined reference to `QUARK_CORE_dttmqr'
pdormqrrh.c:(.text+0x11fa): undefined reference to `QUARK_CORE_dtsmqr'
pdormqrrh.c:(.text+0x148f): undefined reference to `QUARK_CORE_dormqr'
pdormqrrh.c:(.text+0x1892): undefined reference to `QUARK_CORE_dttmqr'
pdormqrrh.c:(.text+0x1c8e): undefined reference to `QUARK_CORE_dtsmqr'
pdormqrrh.c:(.text+0x1edf): undefined reference to `QUARK_CORE_dormqr'
pdormqrrh.c:(.text+0x221f): undefined reference to `QUARK_CORE_dormqr'
pdormqrrh.c:(.text+0x2535): undefined reference to `QUARK_CORE_dtsmqr'
pdormqrrh.c:(.text+0x28d3): undefined reference to `QUARK_CORE_dttmqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdorgqrrh.o): In function `plasma_pdorgqrrh_quark':
pdorgqrrh.c:(.text+0x6bf): undefined reference to `QUARK_CORE_dttmqr'
pdorgqrrh.c:(.text+0xd1e): undefined reference to `QUARK_CORE_dtsmqr'
pdorgqrrh.c:(.text+0x1173): undefined reference to `QUARK_CORE_dormqr'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdormlqrh.o): In function `plasma_pdormlqrh_quark':
pdormlqrh.c:(.text+0x3f1): undefined reference to `QUARK_CORE_dormlq'
pdormlqrh.c:(.text+0x6f2): undefined reference to `QUARK_CORE_dtsmlq'
pdormlqrh.c:(.text+0xa5b): undefined reference to `QUARK_CORE_dttmlq'
pdormlqrh.c:(.text+0xe5a): undefined reference to `QUARK_CORE_dttmlq'
pdormlqrh.c:(.text+0x11c8): undefined reference to `QUARK_CORE_dtsmlq'
pdormlqrh.c:(.text+0x1439): undefined reference to `QUARK_CORE_dormlq'
pdormlqrh.c:(.text+0x1855): undefined reference to `QUARK_CORE_dttmlq'
pdormlqrh.c:(.text+0x1bfc): undefined reference to `QUARK_CORE_dtsmlq'
pdormlqrh.c:(.text+0x1e41): undefined reference to `QUARK_CORE_dormlq'
pdormlqrh.c:(.text+0x217f): undefined reference to `QUARK_CORE_dormlq'
pdormlqrh.c:(.text+0x2479): undefined reference to `QUARK_CORE_dtsmlq'
pdormlqrh.c:(.text+0x2808): undefined reference to `QUARK_CORE_dttmlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdorglqrh.o): In function `plasma_pdorglqrh_quark':
pdorglqrh.c:(.text+0x679): undefined reference to `QUARK_CORE_dttmlq'
pdorglqrh.c:(.text+0xc3d): undefined reference to `QUARK_CORE_dtsmlq'
pdorglqrh.c:(.text+0x109a): undefined reference to `QUARK_CORE_dormlq'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdlaset2.o): In function `plasma_pdlaset2_quark':
pdlaset2.c:(.text+0x25d): undefined reference to `QUARK_CORE_dlaset2'
pdlaset2.c:(.text+0x3fd): undefined reference to `QUARK_CORE_dlaset2'
pdlaset2.c:(.text+0x607): undefined reference to `QUARK_CORE_dlaset2'
pdlaset2.c:(.text+0x811): undefined reference to `QUARK_CORE_dlaset2'
pdlaset2.c:(.text+0x9f9): undefined reference to `QUARK_CORE_dlaset2'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdpack.o): In function `plasma_pdpack':
pdpack.c:(.text+0x131): undefined reference to `CORE_dlacpy'
pdpack.c:(.text+0x2aa): undefined reference to `CORE_dlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdpack.o): In function `plasma_pdunpack':
pdpack.c:(.text+0x418): undefined reference to `CORE_dlacpy'
pdpack.c:(.text+0x577): undefined reference to `CORE_dlacpy'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetrf_reclap.o): In function `plasma_pdgetrf_reclap_quark':
pdgetrf_reclap.c:(.text+0x13b): undefined reference to `CORE_dgetrf_reclap_init'
pdgetrf_reclap.c:(.text+0x370): undefined reference to `QUARK_CORE_dgetrf_reclap'
pdgetrf_reclap.c:(.text+0x3ee): undefined reference to `QUARK_CORE_dgetrf'
pdgetrf_reclap.c:(.text+0x524): undefined reference to `QUARK_CORE_dlaswp'
pdgetrf_reclap.c:(.text+0x5ce): undefined reference to `QUARK_CORE_dtrsm'
pdgetrf_reclap.c:(.text+0x6d0): undefined reference to `QUARK_CORE_dgemm2'
pdgetrf_reclap.c:(.text+0x813): undefined reference to `QUARK_CORE_dgemm_f2'
pdgetrf_reclap.c:(.text+0xa21): undefined reference to `QUARK_CORE_dlaswp_f2'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetrf_reclap.o): In function `plasma_pdgetrf_reclap_ll_quark':
pdgetrf_reclap.c:(.text+0xb81): undefined reference to `CORE_dgetrf_reclap_init'
pdgetrf_reclap.c:(.text+0xd14): undefined reference to `QUARK_CORE_dlaswp'
pdgetrf_reclap.c:(.text+0xdc6): undefined reference to `QUARK_CORE_dtrsm'
pdgetrf_reclap.c:(.text+0xebf): undefined reference to `QUARK_CORE_dgemm2'
pdgetrf_reclap.c:(.text+0x1006): undefined reference to `QUARK_CORE_dgemm_f2'
pdgetrf_reclap.c:(.text+0x11dc): undefined reference to `QUARK_CORE_dgetrf_reclap'
pdgetrf_reclap.c:(.text+0x1242): undefined reference to `QUARK_CORE_dgetrf'
pdgetrf_reclap.c:(.text+0x13a9): undefined reference to `QUARK_CORE_dlaswp_f2'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetrf_rectil.o): In function `plasma_pdgetrf_rectil_quark':
pdgetrf_rectil.c:(.text+0x144): undefined reference to `CORE_dgetrf_rectil_init'
pdgetrf_rectil.c:(.text+0x4fc): undefined reference to `QUARK_CORE_dgetrf_rectil'
pdgetrf_rectil.c:(.text+0x864): undefined reference to `QUARK_CORE_dswptr_ontile'
pdgetrf_rectil.c:(.text+0xc6a): undefined reference to `QUARK_CORE_dgemm2'
pdgetrf_rectil.c:(.text+0x110e): undefined reference to `QUARK_CORE_dgemm_f2'
pdgetrf_rectil.c:(.text+0x1552): undefined reference to `QUARK_CORE_dlaswp_ontile_f2'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetrf_rectil.o): In function `plasma_pdgetrf_tile_ll_quark':
pdgetrf_rectil.c:(.text+0x1714): undefined reference to `CORE_dgetrf_rectil_init'
pdgetrf_rectil.c:(.text+0x1b53): undefined reference to `QUARK_CORE_dswptr_ontile'
pdgetrf_rectil.c:(.text+0x1f53): undefined reference to `QUARK_CORE_dgemm2'
pdgetrf_rectil.c:(.text+0x23f5): undefined reference to `QUARK_CORE_dgemm_f2'
pdgetrf_rectil.c:(.text+0x2712): undefined reference to `QUARK_CORE_dgetrf_rectil'
pdgetrf_rectil.c:(.text+0x2acd): undefined reference to `QUARK_CORE_dlaswp_ontile_f2'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdlaswp.o): In function `plasma_pdlaswp_quark':
pdlaswp.c:(.text+0x3fd): undefined reference to `QUARK_CORE_dlaswp_ontile'
pdlaswp.c:(.text+0x794): undefined reference to `QUARK_CORE_dlaswp_ontile'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdbarrier.o): In function `plasma_pdbarrier_tl2pnl_quark':
pdbarrier.c:(.text+0x194): undefined reference to `CORE_foo_quark'
pdbarrier.c:(.text+0x35d): undefined reference to `CORE_foo2_quark'
pdbarrier.c:(.text+0x48f): undefined reference to `CORE_foo_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdbarrier.o): In function `plasma_pdbarrier_pnl2tl_quark':
pdbarrier.c:(.text+0x674): undefined reference to `CORE_foo_quark'
pdbarrier.c:(.text+0x83d): undefined reference to `CORE_foo2_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdbarrier.o): In function `plasma_pdbarrier_tl2row_quark':
pdbarrier.c:(.text+0xa44): undefined reference to `CORE_foo_quark'
pdbarrier.c:(.text+0xc0d): undefined reference to `CORE_foo2_quark'
pdbarrier.c:(.text+0xd3f): undefined reference to `CORE_foo_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdbarrier.o): In function `plasma_pdbarrier_row2tl_quark':
pdbarrier.c:(.text+0xf24): undefined reference to `CORE_foo_quark'
pdbarrier.c:(.text+0x10ed): undefined reference to `CORE_foo2_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsyrbt.o): In function `plasma_pdsyrbt_quark':
pdsyrbt.c:(.text+0x229): undefined reference to `QUARK_CORE_dgelqt'
pdsyrbt.c:(.text+0x3a3): undefined reference to `QUARK_CORE_dsyrfb'
pdsyrbt.c:(.text+0x587): undefined reference to `QUARK_CORE_dormlq'
pdsyrbt.c:(.text+0x782): undefined reference to `QUARK_CORE_dtslqt'
pdsyrbt.c:(.text+0x9cb): undefined reference to `QUARK_CORE_dtsmlq_sytra1'
pdsyrbt.c:(.text+0xe56): undefined reference to `QUARK_CORE_dtsmlq'
pdsyrbt.c:(.text+0x10da): undefined reference to `QUARK_CORE_dtsmlq_corner'
pdsyrbt.c:(.text+0x1389): undefined reference to `QUARK_CORE_dgeqrt'
pdsyrbt.c:(.text+0x16a4): undefined reference to `QUARK_CORE_dsyrfb'
pdsyrbt.c:(.text+0x1a82): undefined reference to `QUARK_CORE_dormqr'
pdsyrbt.c:(.text+0x1dff): undefined reference to `QUARK_CORE_dtsqrt'
pdsyrbt.c:(.text+0x2283): undefined reference to `QUARK_CORE_dtsmqr_sytra1'
pdsyrbt.c:(.text+0x2758): undefined reference to `QUARK_CORE_dtsmqr'
pdsyrbt.c:(.text+0x2c71): undefined reference to `QUARK_CORE_dtsmqr_corner'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsygst.o): In function `plasma_pdsygst_quark':
pdsygst.c:(.text+0xdd2): undefined reference to `QUARK_CORE_dsygst'
pdsygst.c:(.text+0x1b03): undefined reference to `QUARK_CORE_dsygst'
pdsygst.c:(.text+0x1df8): undefined reference to `QUARK_CORE_dsygst'
pdsygst.c:(.text+0x2b81): undefined reference to `QUARK_CORE_dsygst'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgbrdb.o): In function `plasma_pdgbrdb_quark':
pdgbrdb.c:(.text+0x5d9): undefined reference to `QUARK_CORE_dbrdalg'
pdgbrdb.c:(.text+0xda6): undefined reference to `LAPACKE_dlarfg_work'
pdgbrdb.c:(.text+0x13a9): undefined reference to `LAPACKE_dgebrd_work'
pdgbrdb.c:(.text+0x1a69): undefined reference to `LAPACKE_dlarfg_work'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdsbrdt.o): In function `plasma_pdsbrdt_quark':
pdsbrdt.c:(.text+0x5c7): undefined reference to `QUARK_CORE_dtrdalg'
pdsbrdt.c:(.text+0xf6c): undefined reference to `plasma_lapack_constants'
pdsbrdt.c:(.text+0xf84): undefined reference to `LAPACKE_dsytrd_work'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgecfi2.o): In function `ipt_dcm2ccrb':
dgecfi2.c:(.text+0x170): undefined reference to `CORE_foo2_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgecfi2.o): In function `ipt_dccrb2cm':
dgecfi2.c:(.text+0x3c6): undefined reference to `CORE_foo2_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgecfi2.o): In function `ipt_dcm2rcrb':
dgecfi2.c:(.text+0xf54): undefined reference to `CORE_foo2_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgecfi2.o): In function `ipt_drcrb2cm':
dgecfi2.c:(.text+0x11b7): undefined reference to `CORE_foo2_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgecfi2.o): In function `ipt_drm2rcrb':
dgecfi2.c:(.text+0x2445): undefined reference to `CORE_foo2_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(dgecfi2.o):dgecfi2.c:(.text+0x2781): more undefined references to `CORE_foo2_quark' follow
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdshift.o): In function `plasma_dshift':
pdshift.c:(.text+0x201): undefined reference to `CORE_foo_quark'
pdshift.c:(.text+0x291): undefined reference to `QUARK_CORE_dshift'
pdshift.c:(.text+0x2c0): undefined reference to `CORE_foo_quark'
pdshift.c:(.text+0x844): undefined reference to `CORE_dshiftw'
pdshift.c:(.text+0xd50): undefined reference to `CORE_dshiftw'
pdshift.c:(.text+0xf3c): undefined reference to `CORE_dshiftw'
pdshift.c:(.text+0x10ad): undefined reference to `CORE_dshiftw'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdshift.o): In function `plasma_pdshift':
pdshift.c:(.text+0x1313): undefined reference to `CORE_dshiftw'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdshift.o):pdshift.c:(.text+0x1402): more undefined references to `CORE_dshiftw' follow
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdshift.o): In function `plasma_pdshift_quark':
pdshift.c:(.text+0x14f4): undefined reference to `CORE_foo_quark'
pdshift.c:(.text+0x1577): undefined reference to `QUARK_CORE_dshift'
pdshift.c:(.text+0x15a1): undefined reference to `CORE_foo_quark'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetmi2.o): In function `plasma_pdgetmi2':
pdgetmi2.c:(.text+0x12b): undefined reference to `CORE_dgetrip'
/opt/sw/plasma-2.4.5/lib//libplasma.a(pdgetmi2.o): In function `plasma_pdgetmi2_quark':
pdgetmi2.c:(.text+0x2f2): undefined reference to `QUARK_CORE_dgetrip_f1'
pdgetmi2.c:(.text+0x3b7): undefined reference to `QUARK_CORE_dgetrip_f2'
pdgetmi2.c:(.text+0x464): undefined reference to `QUARK_CORE_dgetrip_f1'
pdgetmi2.c:(.text+0x54a): undefined reference to `QUARK_CORE_dgetrip_f2'
pdgetmi2.c:(.text+0x5ec): undefined reference to `QUARK_CORE_dgetrip_f1'
pdgetmi2.c:(.text+0x658): undefined reference to `QUARK_CORE_dgetrip_f1'
pdgetmi2.c:(.text+0x6f1): undefined reference to `QUARK_CORE_dgetrip_f1'
pdgetmi2.c:(.text+0x78e): undefined reference to `QUARK_CORE_dgetrip_f1'
pdgetmi2.c:(.text+0x7dc): undefined reference to `QUARK_CORE_dgetrip'
nchilton
 
Posts: 16
Joined: Wed Apr 04, 2012 9:04 pm

Re: dsyev eigenvalue solver

Postby mateo70 » Mon Apr 16, 2012 9:32 am

Hello,

Your compilation line to link is not correct. You should have -llib1 -llib2 with lib1 which depends on lib2. Here you have -llib2 -llib1, giving you a lot of undefined symbols. An you also forgot lapacke in the libraries.

You should have something as:

-lplasma -lcoreblas -lplasma -lquark -llapacke -L/opt/sw/intel-2011.9/mkl/lib/intel64 -lmkl_solver_lp64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -Wl,--start-group /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_intel_lp64.a /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_sequential.a /opt/sw/intel-2011.9/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm

Mathieu
mateo70
 
Posts: 94
Joined: Fri May 07, 2010 3:48 pm

Re: dsyev eigenvalue solver

Postby nchilton » Mon Apr 16, 2012 7:47 pm

Thanks Mathieu,

Do you have any advice for how to use the intel mkl for the lapacke function calls? This page seems to say it's a fortran style interface and not the lapacke_xxxx style interface in plasma - is the best way to install a reference lapacke from netlib and link that or should I modify the source?

Cheers,
Nick
nchilton
 
Posts: 16
Joined: Wed Apr 04, 2012 9:04 pm

Re: dsyev eigenvalue solver

Postby mateo70 » Mon Apr 16, 2012 8:01 pm

Hello,

Be carefull because PLASMA requires the Netlib LAPACKE which contains more functions than the one provided by Intel for now. The Netlib version includes some auxiliary routines that are called by PLASMA kernels.
Now, if you want to call this interface, you have two ways to do it: one where you provide the workspaces as in LAPACK, the second one which allocates the workspaces for you.

The interface of the first one is lapacke_XXXXX_work and follow the same priniple as cblas_XXXXX, except that all the enum parameters are replaced by char. For example CblasNoTrans, which is a enum, needs to be pass as 'N' or 'n' in lapacke.
The second interface is lapacke_XXXXX without the _work, and takes the same parameters from which you remove any workspace arguments.

Mathieu
mateo70
 
Posts: 94
Joined: Fri May 07, 2010 3:48 pm

Next

Return to User discussion

Who is online

Users browsing this forum: No registered users and 1 guest