RFE: cross-compilation target detection

Issue #353 resolved
Paul Hargrove created an issue

We believe we could support --with-cross=cray-aries (without -slurm or -alps suffix) by checkin for srun and aprun in$PATH. Provided exactly one is found, we configure for it. Otherwise, we inform the user that they must specify cray-aries-slurm or cray-aries-alps.

Something like

   srun=$(type -p srun)
   aprun=$(type -p arpun)
   if [[ ( -z $srun && -z $aprun ) || ( -n $srun && -n $aprun ) ]]; then
      error case
   elif [[ -n $srun ]]; then
      CROSS+='-slurm'
   else
      CROSS+='-alps'
    fi

Comments (7)

  1. Dan Bonachea

    I'd like this to go a step further and automatically enable the correct --with-cross setting when the environment indicates a Cray XC by default (with NO command-line arguments), unless the user specifies --without-cross (to force frontend compilation).

    This way configure defaults to doing what the majority of users want without any arguments on Cray XC.

  2. Paul Hargrove reporter

    @Dan Bonachea I agree that a fully-automatic "do the right thing" is preferred.

    I think this means checking for craype-network-aries in $LOADEDMODULES as the first step, since PRGENV* would lead us astray on Perlmutter.
    It also means adding support for --without-cross, which currently just "falls through" to join $GASNET_CONFIGURE_ARGS

  3. Paul Hargrove reporter

    configure: automatically cross-compile on Cray XC

    This commit resolves issue 353 by adding logic to intelligently default $CROSS. This includes "auto completion" of cray-aries, as well as fully-automatic cross-compilation if the environment "looks right" and no --with-cross=... option was specified..

    A new option --without-cross is available in case one wants to build for the front-end of a Cray XC, or for another "ancillary" system such as Cori's GPU nodes.

    → <<cset 00f09a685566>>

  4. Dan Bonachea

    configure: automatically cross-compile on Cray XC

    This commit resolves issue 353 by adding logic to intelligently default $CROSS. This includes "auto completion" of cray-aries, as well as fully-automatic cross-compilation if the environment "looks right" and no --with-cross=... option was specified..

    A new option --without-cross is available in case one wants to build for the front-end of a Cray XC, or for another "ancillary" system such as Cori's GPU nodes.

    (cherry picked from commit 00f09a6855660b7735be2e569a520e698ad271b8)

    Conflicts: configure utils/system-checks.sh

    → <<cset 93e708b98d28>>

  5. Log in to comment