- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Having encountered the same problem with my own code, I tried to run the Intel provided Cluster FFT examples located at /opt/intel/oneapi/mkl/latest/examples/examples_cluster_c.tgz. As a first pick, I tried compiling and running dm_complex_2d_single_ex2.c. The code runs fine until it is time to allocate memory for the descriptor by calling DftiCreateDescriptorDM. This is where the code encounters the runtime fatal errors.
/*
** 2. Allocate memory for the descriptor by calling DftiCreateDescriptorDM
** (Create DftiDM descriptor for 2D single precision transform)
*/
printf("%2d: Creating Descriptor Handle.\n", MPI_Rank); fflush(stdout);
Status = DftiCreateDescriptorDM(MPI_COMM_WORLD,&desc,PREC,DFTI_COMPLEX,2,lengths);
printf("%2d: Descriptor Created.\n", MPI_Rank); fflush(stdout);
if (ADVANCED_DATA_PRINT && (MPI_Rank == 0))
printf("Create=%ld\n",(long)Status);
if (!DftiErrorClass(Status, DFTI_NO_ERROR)) local_failure++;
MPI_Allreduce(&local_failure, &global_failure, 1, MPI_INT, MPI_MAX, MPI_COMM_WORLD);
if (global_failure != 0) goto FREE_DESCRIPTOR;
Before the built executable actually starts running the code, I get the following startup warning from each process.
MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
When the code gets to the point where it has to call the DftiCreateDescriptorDM function, every process throws the following error and exits.
Intel MKL FATAL ERROR: Cannot load symbol MKLMPI_Get_wrappers.
I am not sure what the problem really is and how I should solve it. Any help is appreciated. Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We tried with the below Makefile and it worked fine at our end as seen in the attached screenshot below.
# Specify the compiler and the linker flags to use
CXX = mpiicc
CXXFLAGS = -c -mkl -Wall -Wextra
LDFLAGS = -mkl -L${MKLROOT}/lib/intel64 -lmkl_cdft_core -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -ldl
# Specify the names of the object and header files
OBJECTS = dm_complex_2d_single_ex2.o cdft_example_support.o
DEPS = mkl_cdft_examples.h
# RULE 0: (Run the executable, if it exists)
run: build
@mpirun -np 4 ./build ../data/dm_complex_2d_single_ex2.dat
# RULE 1: (Link object files into an executable)
build: $(OBJECTS)
$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
# RULE 2: (Comipile sources to object files)
%.o: %.c $(DEPS)
$(CXX) $(CXXFLAGS) $< -o $@@
Please make use of the Intel oneMKL Link Line Advisor for using the appropriate linker flags. Please find the link below:
https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html
If this resolves your issue, make sure to accept this as a solution. This would help others with a similar issue. Thank you!
Best Regards,
Santosh
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for reaching out to us.
>>"Intel MKL MPI 2020.4 Cluster FFT Fatal Errors when creating DftiDM descriptor"
Could you please try using the latest Intel MKL i.e Intel oneMKL 2021.4?
If your issue still persists, then could you please provide us with the steps(compilation and execution commands) to reproduce your issue at our end for further investigation?
Also, please provide your environment(OS) details.
Thanks & Regards,
Santosh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I first tested this with Intel MPI and MKL 2020.4 on a CentOS Linux release 8.4.2105 system. I subsequently tested this on Ubuntu 20.04.3 LTS running Intel MPI and MKL 2021.4 Build 20210831. I get exactly the same behaviour on the two systems.
The Makefile I wrote is the following.
# Specify the compiler and the linker flags to use
CXX = mpiicc
CXXFLAGS = -c -mkl -Wall -Wextra
LDFLAGS = -mkl
# Specify the names of the object and header files
OBJECTS = dm_complex_2d_single_ex2.o cdft_example_support.o
DEPS = mkl_cdft_examples.h
# RULE 0: (Run the executable, if it exists)
run: build
@mpirun -np 4 ./build ../data/dm_complex_2d_single_ex2.dat
# RULE 1: (Link object files into an executable)
build: $(OBJECTS)
$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
# RULE 2: (Comipile sources to object files)
%.o: %.c $(DEPS)
$(CXX) $(CXXFLAGS) $< -o $@@
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We tried with the below Makefile and it worked fine at our end as seen in the attached screenshot below.
# Specify the compiler and the linker flags to use
CXX = mpiicc
CXXFLAGS = -c -mkl -Wall -Wextra
LDFLAGS = -mkl -L${MKLROOT}/lib/intel64 -lmkl_cdft_core -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -ldl
# Specify the names of the object and header files
OBJECTS = dm_complex_2d_single_ex2.o cdft_example_support.o
DEPS = mkl_cdft_examples.h
# RULE 0: (Run the executable, if it exists)
run: build
@mpirun -np 4 ./build ../data/dm_complex_2d_single_ex2.dat
# RULE 1: (Link object files into an executable)
build: $(OBJECTS)
$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
# RULE 2: (Comipile sources to object files)
%.o: %.c $(DEPS)
$(CXX) $(CXXFLAGS) $< -o $@@
Please make use of the Intel oneMKL Link Line Advisor for using the appropriate linker flags. Please find the link below:
https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html
If this resolves your issue, make sure to accept this as a solution. This would help others with a similar issue. Thank you!
Best Regards,
Santosh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Santosh,
You have been really helpful and kind. Thank you so much for your time.
Best,
J.R.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for accepting our solution. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.
Thanks & Regards,
Santosh
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page