improve default network selection

Issue #354 resolved
Paul Hargrove created an issue

Currently, only the case of cross-compilation for the Cray XC has a proper default network.
All other cases have upcxx and make check defaulting to smp.

Since the use of upcxxx (and thus the "real work" of make check) cannot precede the build of GASNet, it seems reasonable that we interrogate the GASNet configure outputs (meaning generated files, not stdout) for a default network.

Comments (7)

  1. Dan Bonachea

    Now that we have pull request #242:

    • upcxx configure should leave GASNET_CONDUIT= unset if the user did not pass --with-default-network and this is not a Cray
    • blank-> post-configure logic for .mak extracts the GASNet one and picks the last one as default
  2. Paul Hargrove reporter

    I went to attempt this work today and ran into an unexpected hurdle:

    Currently configure encodes the default network into the bin/upcxx-meta it generates. So, either the generation of that wrapper needs to be deferred until after GASNet is configured or some level of indirection is needed. Either one faces a "chicken and egg" problem if the wrapper runs before GASNet is configured (currently a valid/supported scenario). This will require more thought some other time.

  3. Paul Hargrove reporter

    Move default network selection to post-configure

    This commit resolves issue 354 (improve default network selection) by deferring selection of a default network conduit in most cases.

    Now only cross-compilation for Cray systems, and the use of --with-default-network=... establish a default network at configure time. For all other cases, the default network is established after GASNet is configured, by taking the "best" network which is officially supported by UPC++ and located by GASNet's configure.

    The original plan was to use a script in utils/config/gasnet, but that turns out to have a circular dependency: those scripts are to be run with the environment mirroring the settings in the makefile fragment of the (not yet determined) default network. So, the approach taken in this commit is to inline the selection logic into bld/Makefile to run between GASNet's configure and the runs of the scripts in utils/config/gasnet.

    → <<cset e7b16b3fd308>>

  4. Log in to comment