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
이것은 출력 결과의 끝 부분에 불과합니다. '내가 몇 게시물 및 포럼에있는 정보에서, 거기에 다른 옵션을 시도
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'를 빈 문자열로 설정해야합니다. –