On Linux 64, after creating an environment, I installed gfortran with conda install conda-forge::gfortran
. I see that it installed gfortran 14 and gcc 14. Then I installed openmpi with conda install openmpi
, and it installed mpi-1.0.
Commands like which mpirun
and which mpicc
give the locations /bin/mpirun and /bin/mpicc. Looks normal to me.
But when trying to configure FFTW, it fails to compile executable. And I used the following example c code:
#include <stdio.h>int main() { int number; printf("Enter an integer: "); // reads and stores input scanf("%d", &number); // displays output printf("You entered: %d", number); return 0;}
and tried to compile something myself with mpicc printInteger.c
, it gives the following output:
/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: warning: libstdc++.so.6, needed by /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73, not found (try using -rpath or -rpath-link)/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::condition_variable()@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__throw_system_error(int)@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::~condition_variable()@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::notify_all()@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__class_type_info@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_call@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_callable@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__once_proxy@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__gxx_personality_v0@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__dynamic_cast@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'collect2: error: ld returned 1 exit status
The config.log of fftw has similar message when trying to compile a test c code:
configure:4496: mpicc conftest.c >&5/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: warning: libstdc++.so.6, needed by /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73, not found (try using -rpath or -rpath-link)/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::condition_variable()@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__throw_system_error(int)@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::~condition_variable()@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::notify_all()@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__class_type_info@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_call@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `std::__once_callable@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__once_proxy@GLIBCXX_3.4.11'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__gxx_personality_v0@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `__dynamic_cast@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info@CXXABI_1.3'/home/zhangxifen/miniconda3/envs/f2018/bin/../lib/gcc/x86_64-conda-linux-gnu/14.1.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/zhangxifen/miniconda3/envs/f2018/lib/./././libicuuc.so.73: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
Reading a few posts here, I tried installing a different set of compilers with conda install conda-forge::compilers
and it installed version 13 of gfortran and gcc, and I can verify that version 13 is currently active, but mpicc compilation still fails.
Anything else I can try? Did I install the wrong version of gfortran/gcc to work with openmpi?