Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix build errors on MacOs #3800

Merged
merged 2 commits into from May 24, 2019
Merged

Conversation

jain-surabhi-23
Copy link

Pull Request Description

This PR fixes the build issues on MacOs which were caused due to Intra-node Topology aware trees.

The Linux-only header, sched.h, is also needed to be able to use the needed features in HWLOC.

Expected Performance Changes

Known Issues

Author Checklist

  • Reference appropriate issues (with "Fixes" or "See" as appropriate)
  • Passes tests (included warning check)
  • Confirm whitespace/style checkers are happy (or has a good reason for being bad)
  • Commits are self-contained and do not do two things at once
  • Remove xfail from the test suite when fixing a test
  • Commit message is of the form: module: short description and follows good practice
  • Add comments such that someone without knowledge of the code could understand
  • Add Devel Docs in the doc/ directory for any new code design

wesbland and others added 2 commits May 20, 2019 15:10
The (case-sensitive) automake macro HAVE_HWLOC was previously added in
the top level configure.ac to be able to detect when HWLOC was enabled
to help determine when to build topology-aware trees in CH4.

However, just knowing if HWLOC was available was actually not enough.
The Linux-only header, sched.h, is also needed to be able to use the
needed features in HWLOC. This became apparent when trying to build on
MacOS, which doesn't have this header.

So this patch moves the check down to CH4 (because that's the only place
where it's used) and adds a check to see if the needed features of
sched.h are available. Thus the new macro is called BUILD_TOPOTREES
instead of HAVE_HWLOC.

Then, this patch changes the ch4/shm makefile to check this macro before
building the topology aware trees code.
Not initialzing it to -1 was exposing some bugs when hwloc is not
present.
@wesbland wesbland added this to To do in Intel Work via automation May 20, 2019
@wesbland wesbland requested a review from raffenet May 20, 2019 21:06
@raffenet
Copy link
Contributor

test:jenkins/ch4/most
test:jenkins/ch3/most

@raffenet
Copy link
Contributor

Looks fine to me as long as tests pass.

@raffenet
Copy link
Contributor

Also how should this impact #3766? Maybe @yfguo is a better reviewer for this...

@raffenet raffenet requested a review from yfguo May 21, 2019 21:43
Copy link
Contributor

@yfguo yfguo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I understand, the topotree needs both HWLOC and sched.h to work. Then I think HAVE_HWLOC should not be removed as it is also used in topology related code in src/mpi. I don't think this PR would conflict with existing HWLOC cleanup PR.

configure.ac Show resolved Hide resolved
src/mpid/ch4/subconfigure.m4 Show resolved Hide resolved
@yfguo yfguo merged commit 60035bb into pmodels:master May 24, 2019
Intel Work automation moved this from To do to Done May 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Intel Work
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

5 participants