diff --git a/net/mpich/Makefile b/net/mpich/Makefile index 9741b1b75d7f..295897406b27 100644 --- a/net/mpich/Makefile +++ b/net/mpich/Makefile @@ -1,108 +1,108 @@ PORTNAME= mpich PORTVERSION= 3.4.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net parallel MASTER_SITES= https://www.mpich.org/static/downloads/${DISTVERSION}/ MAINTAINER= ports@FreeBSD.org COMMENT= Portable implementation of MPI-1, MPI-2 and MPI-3 LICENSE= MPICH LICENSE_NAME= MPICH LICENSE_FILE= ${WRKSRC}/COPYRIGHT LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept # Unfortunately mpicc is BROKEN with sh (Bad substitution on arrays) BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS= libhwloc.so:devel/hwloc2 \ libjson-c.so:devel/json-c \ libfabric.so:net/libfabric \ libslurm.so:sysutils/slurm-wlm \ libepoll-shim.so:devel/libepoll-shim RUN_DEPENDS= bash:shells/bash CONFLICTS= lam-7.* mpd-[0-9]* mpiexec-0.* mpich2-[0-9]* GNU_CONFIGURE= yes INSTALL_TARGET= install-strip USES= compiler:c11 libtool perl5 pkgconfig USE_LDCONFIG= yes TEST_TARGET= check OPTIONS_DEFINE= DOCS FORTRAN L0 OPTIONS_GROUP= PM OPTIONS_GROUP_PM= GFORKER HYDRA OPTIONS_RADIO= DEFAULTPM OPTIONS_RADIO_DEFAULTPM=DGFORKER DHYDRA OPTIONS_DEFAULT= FORTRAN GFORKER HYDRA DHYDRA L0 OPTIONS_SUB= yes FORTRAN_USES= fortran FORTRAN_CONFIGURE_ENABLE= fortran FORTRAN_CONFIGURE_ON= \ MPICH_MPICC_LDFLAGS="${MPICH_LDFLAGS}" \ MPICH_MPICXX_LDFLAGS="${MPICH_LDFLAGS}" \ MPICH_MPIF77_LDFLAGS="${MPICH_LDFLAGS}" \ MPICH_MPIFORT_LDFLAGS="${MPICH_LDFLAGS}" MPICH_LDFLAGS= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \ -L${LOCALBASE}/lib/gcc${_GCC_VER} -B${LOCALBASE}/bin PM_DESC= Process managers GFORKER_DESC= Simple local process manager HYDRA_DESC= Parallel process manager DEFAULTPM_DESC= Default process manager DGFORKER_DESC= Make gforker the default process manager DHYDRA_DESC= Make hydra the default process manager L0_DESC= oneAPI Level Zero support L0_LIB_DEPENDS= libze_loader.so:devel/level-zero L0_CPPFLAGS= -DZE_IPC_MEMORY_FLAG_TBD=ZE_IPC_MEMORY_FLAG_BIAS_CACHED # 1.4.1 L0_CONFIGURE_ENV_OFF= ac_cv_header_level_zero_ze_api_h=no \ ac_cv_lib_ze_loader_zeInit=no CONFIGURE_ARGS= --enable-fast="" --with-hwloc-prefix=${LOCALBASE} \ --with-libfabric=${LOCALBASE} \ pkgconfigdir="${PREFIX}/libdata/pkgconfig" \ MPICHLIB_CFLAGS="${CFLAGS}" \ CFLAGS="-I${LOCALBASE}/include/json-c" \ MPICHLIB_CPPFLAGS="${CPPFLAGS}" CPPFLAGS="" \ MPICHLIB_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="" \ MPICHLIB_FFLAGS="${FFLAGS}" FFLAGS="" \ MPICHLIB_FCFLAGS="${FCFLAGS}" FCFLAGS="" \ MPICHLIB_LDFLAGS="${LDFLAGS}" LDFLAGS="" \ MPICHLIB_LIBS="${LIBS}" \ LIBS="-L${LOCALBASE}/lib -lepoll-shim -ljson-c -lm" \ BASH_SHELL=${LOCALBASE}/bin/bash CFLAGS_powerpc64= -D__BIG_ENDIAN .include .for pm in ${OPTIONS_GROUP_PM} . if ${PORT_OPTIONS:M${pm}} . if empty(PMLIST) PMLIST= ${pm:tl} . elif ${PORT_OPTIONS:MD${pm}} PMLIST:= ${pm:tl},${PMLIST} . else PMLIST:= ${PMLIST},${pm:tl} . endif . endif .endfor .if empty(PMLIST) CONFIGURE_ARGS+=--without-pm PLIST_SUB+= EXEC="@comment " EXECGFORKER="@comment " .else CONFIGURE_ARGS+=--with-pm=${PMLIST} PLIST_SUB+= EXEC="" .if ${PMLIST:M*,gforker*} PLIST_SUB+= EXECGFORKER="" .else PLIST_SUB+= EXECGFORKER="@comment " .endif .endif post-patch: ${RM} -r ${WRKSRC}/www .include diff --git a/net/mpich/files/patch-l0-fallback b/net/mpich/files/patch-l0-fallback new file mode 100644 index 000000000000..35f18dc272a5 --- /dev/null +++ b/net/mpich/files/patch-l0-fallback @@ -0,0 +1,44 @@ +$ pkg delete intel-compute-runtime +$ mpivars +PCI: Failed to initialize libpciaccess with pci_system_init(): 6 (Permission denied) +Abort(268484367) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init_thread: Other MPI error, error stack: +MPIR_Init_thread(153): gpu_init failed +[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=268484367 +: +system msg for write_line failure : Bad file descriptor +Attempting to use an MPI routine before initializing MPICH + +--- src/mpi/init/initthread.c.orig 2021-05-25 17:37:05 UTC ++++ src/mpi/init/initthread.c +@@ -150,7 +150,9 @@ int MPIR_Init_thread(int *argc, char ***argv, int user + * inside MPID_Init */ + if (MPIR_CVAR_ENABLE_GPU) { + int mpl_errno = MPL_gpu_init(); +- MPIR_ERR_CHKANDJUMP(mpl_errno != MPL_SUCCESS, mpi_errno, MPI_ERR_OTHER, "**gpu_init"); ++ MPIR_ERR_CHKANDJUMP( ++ mpl_errno != MPL_SUCCESS && mpl_errno != MPL_ERR_GPU_INTERNAL, ++ mpi_errno, MPI_ERR_OTHER, "**gpu_init"); + } + + MPL_atomic_store_int(&MPIR_Process.mpich_state, MPICH_MPI_STATE__IN_INIT); +--- src/mpid/ch4/netmod/ofi/ofi_init.c.orig 2021-05-25 17:37:05 UTC ++++ src/mpid/ch4/netmod/ofi/ofi_init.c +@@ -731,7 +731,6 @@ int MPIDI_OFI_mpi_init_hook(int rank, int size, int ap + MPL_gpu_malloc_host(&(MPIDI_OFI_global.am_bufs[i]), MPIDI_OFI_AM_BUFF_SZ); + MPIDI_OFI_global.am_reqs[i].event_id = MPIDI_OFI_EVENT_AM_RECV; + MPIDI_OFI_global.am_reqs[i].index = i; +- MPIR_Assert(MPIDI_OFI_global.am_bufs[i]); + MPIDI_OFI_global.am_iov[i].iov_base = MPIDI_OFI_global.am_bufs[i]; + MPIDI_OFI_global.am_iov[i].iov_len = MPIDI_OFI_AM_BUFF_SZ; + MPIDI_OFI_global.am_msg[i].msg_iov = &MPIDI_OFI_global.am_iov[i]; +--- src/mpl/src/gpu/mpl_gpu_ze.c.orig 2021-05-25 17:37:05 UTC ++++ src/mpl/src/gpu/mpl_gpu_ze.c +@@ -33,7 +33,7 @@ int MPL_gpu_get_dev_count(int *dev_cnt, int *dev_id) + { + int ret = MPL_SUCCESS; + if (!gpu_initialized) { +- ret = MPL_gpu_init(); ++ MPL_gpu_init(); + } + + *dev_cnt = device_count;