- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, this is driving me crazy:
Assembled the simplest application just to test FFT on cluster (Linux SUSE 10.0). Could not compile it, always undefined reference just to specific Cluster FFT functions. Regular (non-cluster) FFT works just fine, but I wanted to try running it in parallel on our new cluster,a nd besides this is just a testbed for redesigning some larger project with mkl. Please help.
(Intel compiler 10.1.08, mkl: tried both 10.0.08 and 10.1.1.019, the same behaviour)
Bellow: Source code, command line, compiler/linker error.
--SOURCE------------------------------
include "mkl_cdft.f90"
program ff
Use MKL_CDFT
include "mpif.h"
Complex :: X(64)
type(DFTI_DESCRIPTOR_DM), POINTER :: My_Desc1_Handle
Integer :: Status, j
real :: rx
integer IERROR
call MPI_INIT(IERROR)
!Some simple input array
do j=1,64
rx = -10. +(j-1)*20./63.
x(j) = cmplx(exp(-(rx**2)/2.),0.)
end do
! Perform a complex to complex transform
Status = DftiCreateDescriptorDM(MPI_COMM_WORLD, My_Desc1_Handle, DFTI_SINGLE, DFTI_COMPLEX, 1, 64)
Status = DftiCommitDescriptorDM( My_Desc1_Handle )
Status = DftiComputeForwardDM( My_Desc1_Handle, X )
Status = DftiFreeDescriptorDM(My_Desc1_Handle)
call MPI_FINALIZE(IERROR)
end program ff
--COMPILER COMM. LINE--------------
ifort -O -mcmodel=large -i8 -lmkl_cdft_core -lmpi cfft.f90 -o cfft.exe
--COMPILER ERROR--------------------
/tmp/ifortVZq4Fs.o: In function `MAIN__':
cfft.f90:(.text+0x136): undefined reference to `DftiCreateDescriptorDM1_fortran'
cfft.f90:(.text+0x152): undefined reference to `DftiCommitDescriptorDM_fortran'
cfft.f90:(.text+0x177): undefined reference to `DftiComputeForwardDMi_fortran'
cfft.f90:(.text+0x18f): undefined reference to `DftiFreeDescriptorDM_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordmn_d_':
cfft.f90:(.text+0x1cd): undefined reference to `DftiCreateDescriptorDMn_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordmn_s_':
cfft.f90:(.text+0x1ed): undefined reference to `DftiCreateDescriptorDMn_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordm1_d_':
cfft.f90:(.text+0x210): undefined reference to `DftiCreateDescriptorDM1_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordm1_s_':
cfft.f90:(.text+0x234): undefined reference to `DftiCreateDescriptorDM1_fortran'
-------------------------------------
Assembled the simplest application just to test FFT on cluster (Linux SUSE 10.0). Could not compile it, always undefined reference just to specific Cluster FFT functions. Regular (non-cluster) FFT works just fine, but I wanted to try running it in parallel on our new cluster,a nd besides this is just a testbed for redesigning some larger project with mkl. Please help.
(Intel compiler 10.1.08, mkl: tried both 10.0.08 and 10.1.1.019, the same behaviour)
Bellow: Source code, command line, compiler/linker error.
--SOURCE------------------------------
include "mkl_cdft.f90"
program ff
Use MKL_CDFT
include "mpif.h"
Complex :: X(64)
type(DFTI_DESCRIPTOR_DM), POINTER :: My_Desc1_Handle
Integer :: Status, j
real :: rx
integer IERROR
call MPI_INIT(IERROR)
!Some simple input array
do j=1,64
rx = -10. +(j-1)*20./63.
x(j) = cmplx(exp(-(rx**2)/2.),0.)
end do
! Perform a complex to complex transform
Status = DftiCreateDescriptorDM(MPI_COMM_WORLD, My_Desc1_Handle, DFTI_SINGLE, DFTI_COMPLEX, 1, 64)
Status = DftiCommitDescriptorDM( My_Desc1_Handle )
Status = DftiComputeForwardDM( My_Desc1_Handle, X )
Status = DftiFreeDescriptorDM(My_Desc1_Handle)
call MPI_FINALIZE(IERROR)
end program ff
--COMPILER COMM. LINE--------------
ifort -O -mcmodel=large -i8 -lmkl_cdft_core -lmpi cfft.f90 -o cfft.exe
--COMPILER ERROR--------------------
/tmp/ifortVZq4Fs.o: In function `MAIN__':
cfft.f90:(.text+0x136): undefined reference to `DftiCreateDescriptorDM1_fortran'
cfft.f90:(.text+0x152): undefined reference to `DftiCommitDescriptorDM_fortran'
cfft.f90:(.text+0x177): undefined reference to `DftiComputeForwardDMi_fortran'
cfft.f90:(.text+0x18f): undefined reference to `DftiFreeDescriptorDM_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordmn_d_':
cfft.f90:(.text+0x1cd): undefined reference to `DftiCreateDescriptorDMn_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordmn_s_':
cfft.f90:(.text+0x1ed): undefined reference to `DftiCreateDescriptorDMn_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordm1_d_':
cfft.f90:(.text+0x210): undefined reference to `DftiCreateDescriptorDM1_fortran'
/tmp/ifortVZq4Fs.o: In function `mkl_cdft_mp_dfticreatedescriptordm1_s_':
cfft.f90:(.text+0x234): undefined reference to `DftiCreateDescriptorDM1_fortran'
-------------------------------------
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi sanjap,
Please refer to MKL User's Guide for correct linking lines, specifically the section "Working with Intel Math Kernel Library Cluster Software." Perhaps, the following line will do what you need:
Please refer to MKL User's Guide for correct linking lines, specifically the section "Working with Intel Math Kernel Library Cluster Software." Perhaps, the following line will do what you need:
ifort-O -mcmodel=large -i8 cfft.f90 -o cfft.exe -lmkl_cdft_core -lmkl_blacs_intelmpi_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmpi
Dima
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have already tried all the libraries mentioned in User's Guide - Working with cluster ..., butno progress.Also, when listing library contents with nm,specific cluster fft functions (for example DftiCreateDescriptorDM) are shown in libmkl_cdft_core.a, but I could not link it in, even if forcing static linking.
Perhaps I'm overseeing something wrong in program...?
Thanks anyway
I have already tried all the libraries mentioned in User's Guide - Working with cluster ..., butno progress.Also, when listing library contents with nm,specific cluster fft functions (for example DftiCreateDescriptorDM) are shown in libmkl_cdft_core.a, but I could not link it in, even if forcing static linking.
Perhaps I'm overseeing something wrong in program...?
Thanks anyway
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thank you for your interest in our Cluster FFT library. The symbols like DftiCreateDescriptorDM1_fortran represent the FORTRAN interface for CFFT and have to be resolved from one of the interface libraries libmkl_intel_lp64.a or libmkl_intel_ilp64.a depending on your needs. In general (according to the User's Guide) the link line should look like:
ifort myprog.f -L$MKLPATH -I$MKLINCLUDE -Wl,--start-group $MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a $MKLPATH/libmkl_cdft_core.a -Wl,--end-group -liomp5 -lpthread
But the best starting point to learn how to work with MKL is the examples directory (examples/cdftf in this case). In particular using compiler wrappers provided by MPI could save some time figuring out which MPI libraries to link with.
Hope this helps,
-Vladimir
Thank you for your interest in our Cluster FFT library. The symbols like DftiCreateDescriptorDM1_fortran represent the FORTRAN interface for CFFT and have to be resolved from one of the interface libraries libmkl_intel_lp64.a or libmkl_intel_ilp64.a depending on your needs. In general (according to the User's Guide) the link line should look like:
ifort myprog.f -L$MKLPATH -I$MKLINCLUDE -Wl,--start-group $MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a $MKLPATH/libmkl_cdft_core.a -Wl,--end-group -liomp5 -lpthread
But the best starting point to learn how to work with MKL is the examples directory (examples/cdftf in this case). In particular using compiler wrappers provided by MPI could save some time figuring out which MPI libraries to link with.
Hope this helps,
-Vladimir

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page