我要评分
获取效率
正确性
完整性
易理解

Installing Hyper MPI

Procedure

  1. Use PuTTY to log in to the server as the root user.
  2. Go to the /path/to/hmpi directory.
    cd /path/to/hmpi
  3. Decompress the Hyper MPI installation package.
    tar -zxvf HMPI_1.0.2_aarch64.tar.gz
  4. Go to the HUCX source code directory.
    cd HMPI_1.0.2_aarch64/source/hucx

    Hyper MPI consists of HUCX and Hyper MPI.

  5. Compile HUCX.
    1. If you use the BiSheng Compiler directly, HUCX cannot be compiled. You need to delete or comment out the content in src/ucs/arch/aarch64/cpu.h.
      static inline void ucs_arch_clear_cache(void *start, void *end)
      {
          uintptr_t ptr;
          unsigned ctr_el0, dcache;
          asm volatile ("mrs\t%0, ctr_el0":"=r" (ctr_el0));
          dcache = sizeof(int) << ((ctr_el0 >> 16) & 0xf);
      
          for (ptr = ucs_align_down((uintptr_t)start, dcache); ptr < (uintptr_t)end; ptr += dcache) {
              asm volatile ("dc cvac, %0" :: "r" (ptr) : "memory");
          }
          asm volatile ("dsb ish" ::: "memory");
      }
    2. Run the following commands:
      ./autogen.sh
      CC=clang CXX=clang++ FC=flang F77=flang ./configure --prefix=/path/to/hmpi/HMPI_1.0.2_aarch64/source/hucx --enable-mt --enable-devel-headers

      If the numactl plugin does not exist, add the --disable-numa parameter. Otherwise, an error is reported and you need to run the following command:

      CC=clang CXX=clang++ FC=flang F77=flang ./configure --prefix=/path/to/hmpi/HMPI_1.0.2_aarch64/source/hucx --enable-mt --enable-devel-headers --disable-numa

      make
      make install

      If the "limits file not found" error is reported, run the cd src/tools/perf/lib/ command based on the installation directory:

      ln -s /path/to/bisheng/1.3.2.b023/include/c++/v1/*
  6. Go to the HMPI source code directory.
    cd HMPI_1.0.2_aarch64/source/hmpi
  7. Compile HMPI.
    ./autogen.pl
    CC=clang CXX=clang++ F77=flang F90=flang FC=flang \
    ./configure --prefix=/path/to/hmpi/HMPI_1.0.2_aarch64/source/hmpi --with-platform=contrib/platform/mellanox/optimized --enable-mpi1-compatibility --with-ucx=/path/to/hmpi/HMPI_1.0.2_aarch64/source/hucx
    make
    make install
    • If the "C and C++ compilers are not link compatible" error is reported, check the log as prompted. A possible cause is that the libstdc library is missing. Use Yum to install the library.
      yum install libstdc++.aarch64
    • For the libstdc++.so file problem, install the file first.
  8. Set the environment variables.
    export PATH=/path/to/hmpi/HMPI_1.0.2_aarch64/source/hmpi/bin:$PATH
    export LD_LIBRARY_PATH=/path/to/hmpi/HMPI_1.0.2_aarch64/source/hmpi/lib:$LD_LIBRARY_PATH
    export OPAL_PREFIX=/path/to/hmpi/HMPI_1.0.2_aarch64/source/hmpi