私は成功なしでHPLを構築しようとしてきました。私はOpen MPIをインストールしており、正しく動作しています。私はBLASライブラリも持っています。 しかし私がビルドしようとすると、openmpiに関連するエラーが発生すると思います。たとえば、「opal_install_dirs」はlibopen-palのシンボルです。しかし、私はこれらの未定義の参照がどこから来たのかわからないので、私はそれを修正するために何をすべきかわかりません。HPLのエラーを構築する
fcoll_dynamic_file_write_all.c:(.text+0x20f0): undefined reference to `opal_output'
fcoll_dynamic_file_write_all.c:(.text+0x2122): undefined reference to `opal_output'
/usr/local/lib/libmpi.a(fcoll_dynamic_file_write_all.o):fcoll_dynamic_file_write_all.c:(.text+0x216e): more undefined references to `opal_output' follow
/usr/local/lib/libmpi.a(pinfo_create.o): In function `PMPI_Info_create':
pinfo_create.c:(.text+0x94): undefined reference to `opal_class_initialize'
/usr/local/lib/libmpi.a(ppack_external.o): In function `PMPI_Pack_external':
ppack_external.c:(.text+0xae): undefined reference to `opal_convertor_t_class'
ppack_external.c:(.text+0x129): undefined reference to `opal_convertor_prepare_for_send'
ppack_external.c:(.text+0x1ed): undefined reference to `opal_convertor_pack'
ppack_external.c:(.text+0x23c): undefined reference to `opal_class_initialize'
/usr/local/lib/libmpi.a(ppack_external_size.o): In function `PMPI_Pack_external_size':
ppack_external_size.c:(.text+0x7d): undefined reference to `opal_convertor_t_class'
ppack_external_size.c:(.text+0xf4): undefined reference to `opal_convertor_prepare_for_recv'
ppack_external_size.c:(.text+0x15c): undefined reference to `opal_class_initialize'
/usr/local/lib/libmpi.a(punpack_external.o): In function `PMPI_Unpack_external':
punpack_external.c:(.text+0xa2): undefined reference to `opal_convertor_t_class'
punpack_external.c:(.text+0x114): undefined reference to `opal_convertor_prepare_for_recv'
punpack_external.c:(.text+0x1d8): undefined reference to `opal_convertor_unpack'
punpack_external.c:(.text+0x22c): undefined reference to `opal_class_initialize'
/usr/local/lib/libmpi.a(pstatus_set_elements_x.o): In function `PMPI_Status_set_elements_x':
pstatus_set_elements_x.c:(.text+0xb2): undefined reference to `opal_datatype_set_element_count'
/usr/local/lib/libmpi.a(libdebuggers_la-ompi_debuggers.o): In function `check':
/home/snc/workspace/openmpi-2.0.1/ompi/debuggers/ompi_debuggers.c:146: undefined reference to `opal_argv_append_nosize'
/usr/local/lib/libmpi.a(libdebuggers_la-ompi_debuggers.o): In function `ompi_debugger_setup_dlls':
/home/snc/workspace/openmpi-2.0.1/ompi/debuggers/ompi_debuggers.c:171: undefined reference to `opal_install_dirs'
/home/snc/workspace/openmpi-2.0.1/ompi/debuggers/ompi_debuggers.c:172: undefined reference to `mca_base_var_register'
/home/snc/workspace/openmpi-2.0.1/ompi/debuggers/ompi_debuggers.c:181: undefined reference to `opal_argv_split'
/home/snc/workspace/openmpi-2.0.1/ompi/debuggers/ompi_debuggers.c:186: undefined reference to `opal_argv_free'
/usr/local/lib/libmpi.a(osc_rdma_frag.o):(.data.rel+0x8): undefined reference to `opal_free_list_item_t_class'
/usr/local/lib/libmpi.a(vprotocol_pessimist_event.o):(.data.rel+0x8): undefined reference to `opal_list_item_t_class'
collect2: error: ld returned 1 exit status
Makefile:76: recipe for target 'dexe.grd' failed
make[2]: *** [dexe.grd] Error 1
make[2]: Leaving directory '/home/mpiuser/cloud/hpl/testing/ptest/Linux_Intel64'
Make.top:64: recipe for target 'build_tst' failed
make[1]: *** [build_tst] Error 2
make[1]: Leaving directory '/home/mpiuser/cloud/hpl'
Makefile:72: recipe for target 'build' failed
make: *** [build] Error 2
これはmakeの出力の最後の部分です。 「私は、私はいくつかの記事やフォーラム上の情報から、そこにさまざまなオプションを試してみました
MPdir = /usr/local
MPinc = $(MPdir)/include
MPlib = $(MPdir)/lib/libmpi.a
...
LAdir = /usr/lib/libblas
ifndef LAinc
LAinc =
endif
ifndef LAlib
LAlib = $libblas.a
endif
...
# ----------------------------------------------------------------------
# - Compilers/linkers - Optimization flags ---------------------------
# ----------------------------------------------------------------------
#
CC = mpicc
CCNOOPT = $(HPL_DEFS)
CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -fopenmp
#
# On some platforms, it is necessary to use the Fortran linker to find
# the Fortran internals used in the BLAS library.
#
LINKER = $(CC)
LINKFLAGS = $(CCFLAGS)
#
ARCHIVER = ar
ARFLAGS = r
RANLIB = echo
、と私は他のいくつかの以前のエラーを乗り越え、私はすることができます:HPLのための設定ファイルで
私が持っていますこれを修正するために何かを見つける。誰かが何が間違っているのか見える?ありがとう。
を空にMPincとMPLIBを設定することで、問題を解決するには、自動的に基本的なコンパイラに含まれ、ライブラリパス。明示的に 'MPinc'と' MPlib'を設定するのは災害のレシピです! –
私もそれを試みたが、私はまだ問題があった。私はそれまで見たすべてのサンプル設定でなぜそれが設定されていますか? –
すべてのMPI実装がそのようなコンパイララッパーを提供するわけではないので、ライブラリを通常のコンパイラとリンカーを使用して明示的にリンクする必要があります。 Open MPI、Intel MPI、MPICH、MVAPICH、その他多数の最新のライブラリでは、 'MPinc'と' MPlib'の両方を空文字列に設定する必要があります。 –