본문 바로가기
Engineer/프로그래밍관련

OpenMPI 4.0.X 오류 사항

by _제이빈_ 2020. 5. 18.

1. 시스템 환경

 

OS Version : Linux / CentOS 6.7

Mellanox OFED : MLNX_OFED_LINUX-4.4-2.0.7.0 (OFED-4.4-2.0.7)

   ☞  linux의 Infinitband / Ethernet 관련 소프트웨어인듯

MPI : OpenMPI-4.0.3

 

 

2. 오류 내용

 

[ $ mpirun -np 2 ./model.x ] 입력시

 

아래와 같은 내용이 출력

 

--------------------------------------------------------------------------
By default, for Open MPI 4.0 and later, infiniband ports on a device
are not used by default.  The intent is to use UCX for these devices.
You can override this policy by setting the btl_openib_allow_ib MCA parameter
to true.

  Local host:              head
  Local adapter:           mlx4_0
  Local port:              1

--------------------------------------------------------------------------
--------------------------------------------------------------------------
WARNING: There was an error initializing an OpenFabrics device.

  Local host:   head
  Local device: mlx4_0
--------------------------------------------------------------------------

 

그 후 프로세서 하나로 작업을 수행

 

 

 

 

3. 해결 방법 

 

OpenMPI 4.0.x 이전 버전에서는 아래와 같은 해결방안이 마련되어 있음. 3.1.6버전을 깔면 이미 디버깅 되어 있길래 3.1.6버전을 깔아 다시 모델 수행시 해결됨

 

- openmpi-3.1.0/opal/mca/btl/openib/btl_openib_component.c 파일 1666라인 수정

- 참고 : https://github.com/hppritcha/ompi/commit/8126779a354b3e0c720d3e1790f7b936dd5b93b2

 

[수정 전]

#if HAVE_DECL_IBV_EXP_QUERY_DEVICE 

    device->ib_exp_dev_attr.comp_mask = IBV_EXP_DEVICE_ATTR_RESERVED - 1;

 

[수정 후]

#if HAVE_DECL_IBV_EXP_QUERY_DEVICE 

    memset(&device->ib_exp_dev_attr, 0, sizeof(device->ib_exp_dev_attr));

    device->ib_exp_dev_attr.comp_mask = IBV_EXP_DEVICE_ATTR_RESERVED - 1;

 

 

 

4. 피드백

 

OpenMPI 4.0.x 버전에서도 해결방안 모색 필요

반응형

댓글