- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Hellow, Intel experts.
Thank you for the nice MKL library. I have one question.
I try to compile CDFTF example on ia32 PC, everything work fine. Then I compile this example on 64 cluster, work OK too. But when I remove
"SUBROUTINE Dfti_Example_Status_Print" from example files, I have such errors on 64 cluster:
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_blacs_intelmpi_ilp64.a(blacs_extended.o): In function `MKL_Waitall':
_blacs_extended.c:(.text+0x1da): undefined reference to `mkl_serv_mkl_print'
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_blacs_intelmpi_ilp64.a(blacs_extended.o): In function `MKL_Waitany':
_blacs_extended.c:(.text+0x2a9): undefined reference to `mkl_serv_mkl_print'
When I compile example without "SUBROUTINE Dfti_Example_Status_Print" on my ia32 PC, everything is OK.
What is the problem. Why I can't compile example without this subroutine on 64 cluster?
Thank you,
Svyatoslav
Thank you for the nice MKL library. I have one question.
I try to compile CDFTF example on ia32 PC, everything work fine. Then I compile this example on 64 cluster, work OK too. But when I remove
"SUBROUTINE Dfti_Example_Status_Print" from example files, I have such errors on 64 cluster:
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_blacs_intelmpi_ilp64.a(blacs_extended.o): In function `MKL_Waitall':
_blacs_extended.c:(.text+0x1da): undefined reference to `mkl_serv_mkl_print'
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_blacs_intelmpi_ilp64.a(blacs_extended.o): In function `MKL_Waitany':
_blacs_extended.c:(.text+0x2a9): undefined reference to `mkl_serv_mkl_print'
When I compile example without "SUBROUTINE Dfti_Example_Status_Print" on my ia32 PC, everything is OK.
What is the problem. Why I can't compile example without this subroutine on 64 cluster?
Thank you,
Svyatoslav
1 Solución
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Hello Svyatoslav,
In order to make your modified example work please try placing the core library after the BLACS library on the link line (near the end of the makefile) like this:
... $(MKL_LIBS) $(MKL_PATH)/libmkl_blacs$(Bs)$(BLACS_PART).$(EXT) $(CORE_LIB) -lpthread ...
Best regards,
Vladimir
Enlace copiado
9 Respuestas
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Quoting - svyatoslav.korneev
Problem compiling under ia64
Can you elaborate more on theproblems you're having? -Shane
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Quoting - Shane Story (Intel)
Can you elaborate more on theproblems you're having? -Shane
I try to compile CDFTF example under 64 cluster. (/opt/intel/Compiler/11.0/083/mkl/examples/cdftf)
When I remove "SUBROUTINE Dfti_Example_Status_Print" from examples files, I have such errors:
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_blacs_intelmpi_ilp64.a(blacs_extended.o): In function `MKL_Waitall':
_blacs_extended.c:(.text+0x1da): undefined reference to `mkl_serv_mkl_print'
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_blacs_intelmpi_ilp64.a(blacs_extended.o): In function `MKL_Waitany':
_blacs_extended.c:(.text+0x2a9): undefined reference to `mkl_serv_mkl_print'
This errors occur under 64 system, but not under 32.
Can you explain me, this errors and why this subroutine play such role in compiling under 64
P.S.
I suppose that this subroutine contains USE MKL_DFTI
Svyatoslav
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Hello Svyatoslav,
In order to make your modified example work please try placing the core library after the BLACS library on the link line (near the end of the makefile) like this:
... $(MKL_LIBS) $(MKL_PATH)/libmkl_blacs$(Bs)$(BLACS_PART).$(EXT) $(CORE_LIB) -lpthread ...
Best regards,
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Quoting - Vladimir Petrov (Intel)
Hello Svyatoslav,
In order to make your modified example work please try placing the core library after the BLACS library on the link line (near the end of the makefile) like this:
... $(MKL_LIBS) $(MKL_PATH)/libmkl_blacs$(Bs)$(BLACS_PART).$(EXT) $(CORE_LIB) -lpthread ...
Best regards,
Vladimir
Thank you for the answer.
But core library is included in:
MKL_LIBS= -Wl,--start-group $(MKL_PATH)/libmkl_cdft_core.a $(IFACE_LIB) $(THREADING_LIB) $(CORE_LIB) -Wl,--end-group $(OMP_LIB)
So I try to place MKL_LIBS after BLACS like this:
$(_CS) $(SPEC_OPT) $(RES_DIR)/$*.o $(RES_DIR)/cdft_example_support.o $(RES_DIR)/mkl_cdft.o -L $(MKL_PATH) $(MKL_PATH)/libmkl_blacs$(Bs)$(BLACS_PART).$(EXT) $(MKL_LIBS) -lpthread -lm -o $(RES_DIR)/$*.exe
And after start make file:
make libem64t interface=ilp64 mpi=mpich
I have a lot of errors:
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_cdft_core.a(CreateDesc.o): In function `DftiCreateDescriptorDM':
head_CreateDesc.c:(.text+0xdb): undefined reference to `MKL_Comm_size'
head_CreateDesc.c:(.text+0xed): undefined reference to `MKL_SUCCESS'
head_CreateDesc.c:(.text+0x15e): undefined reference to `MKL_Comm_rank'
head_CreateDesc.c:(.text+0x170): undefined reference to `MKL_SUCCESS'
/opt/intel/mkl/10.1.0.015/lib/em64t/libmkl_cdft_core.a(computend.o): In function `mkl_cdft_CDFT_Compute_nd':
head_computend.c:(.text+0x248): undefined reference to `MKL_DOUBLE'
head_computend.c:(.text+0x26a): undefined reference to `MKL_Alltoallv'
head_computend.c:(.text+0x274): undefined reference to `MKL_SUCCESS'
head_computend.c:(.text+0x346): undefined reference to `MKL_DOUBLE'
head_computend.c:(.text+0x368): undefined reference to `MKL_Alltoallv'
head_computend.c:(.text+0x372): undefined reference to `MKL_SUCCESS'
........................................................................
Regards,
Svyatoslav
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Svyatoslav,
There are circular references between the libraries. To resolve all of them successfully the libraries have to be either repeated or placed inside the --start-group ... --end-group.
Have you tried my previous suggestion?
Best regards,
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Quoting - Vladimir Petrov (Intel)
Svyatoslav,
There are circular references between the libraries. To resolve all of them successfully the libraries have to be either repeated or placed inside the --start-group ... --end-group.
Have you tried my previous suggestion?
Best regards,
Vladimir
Thanks, It work.
Can you explain me plz, what was the reason of the error.
Why in the initial make file core library was'n inside --start-group ... --end-group
What about $(MKL_PATH)/libmkl_cdft_core.a $(IFACE_LIB) $(THREADING_LIB), shoud I place it inside group block?
Regards,
Svyatoslav
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Quoting - svyatoslav.korneev
Thanks, It work.
Can you explain me plz, what was the reason of the error.
Why in the initial make file core library was'n inside --start-group ... --end-group
What about $(MKL_PATH)/libmkl_cdft_core.a $(IFACE_LIB) $(THREADING_LIB), shoud I place it inside group block?
Regards,
Svyatoslav
Svyatoslav,
The core library (libmkl_core.a) is inside the group block. It's probably a good idea to place the BLACS and cdft_core libraries inside the group block as well.
In general you can easily find answers to questions on how to link with MKL with the help of our Link Line Advisor:
http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
Best regards,
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Quoting - Vladimir Petrov (Intel)
Svyatoslav,
The core library (libmkl_core.a) is inside the group block. It's probably a good idea to place the BLACS and cdft_core libraries inside the group block as well.
In general you can easily find answers to questions on how to link with MKL with the help of our Link Line Advisor:
http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
Best regards,
Vladimir
Thank you for the all answers. Can you plz refer me to article, where I can read about difference between group block lib and outgroup.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Quoting - svyatoslav.korneev
Thanks, It work.
Can you explain me plz, what was the reason of the error.
Why in the initial make file core library was'n inside --start-group ... --end-group
What about $(MKL_PATH)/libmkl_cdft_core.a $(IFACE_LIB) $(THREADING_LIB), shoud I place it inside group block?
Regards,
Svyatoslav
In this post I was wrong. I mixed up inside with outside :)
Right questions:
Why in the initial make file core library was'n OUTside --start-group ... --end-group
What about $(MKL_PATH)/libmkl_cdft_core.a $(IFACE_LIB) $(THREADING_LIB), shoud I place it OUTside group block?
Thank you
Regards,
Svyatoslav
Responder
Opciones de temas
- Suscribirse a un feed RSS
- Marcar tema como nuevo
- Marcar tema como leído
- Flotar este Tema para el usuario actual
- Favorito
- Suscribir
- Página de impresión sencilla