Skip to content

Cray support for boost#849

Merged
boegel merged 13 commits intoeasybuilders:developfrom
gppezzi:boost_cray
Jun 17, 2016
Merged

Cray support for boost#849
boegel merged 13 commits intoeasybuilders:developfrom
gppezzi:boost_cray

Conversation

@gppezzi
Copy link
Copy Markdown
Contributor

@gppezzi gppezzi commented Mar 2, 2016

This easyblock is a tweaked version of boost.py for supporting Cray.

I don't know if it is preferable to include Cray support on the original one (but I don't want to break existing builds...)

@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1735/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@ocaisa
Copy link
Copy Markdown
Member

ocaisa commented Mar 2, 2016

Wouldn't you be better off inheriting from the existing boost easyblock and only changing what you need to...or building the necessary logic into the existing boost easyblock?

@gppezzi
Copy link
Copy Markdown
Contributor Author

gppezzi commented Mar 2, 2016

@ocaisa sure, but I'd like to hear what's the recommended way before tackling that...

@pforai
Copy link
Copy Markdown
Contributor

pforai commented Mar 2, 2016

Just FIY: This block is based on my PR that I submitted some time ago and this has the problem that it expects aprun to be available on the machine where you build things.

@boegel
Copy link
Copy Markdown
Member

boegel commented Mar 2, 2016

+1 for deriving from existing Boost easyblock, (way) too much copy-pasting now...

@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1737/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1738/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@gppezzi
Copy link
Copy Markdown
Contributor Author

gppezzi commented Mar 2, 2016

@ocaisa @boegel @pforai @lucamar I did some clean up, can you please review the new version?

Comment thread easybuild/easyblocks/b/boostcray.py Outdated
self.log.info("PRGENV_MODULE_NAME_SUFFIX is %s " % (self.toolchain.PRGENV_MODULE_NAME_SUFFIX))
# self.log.info("TC_CONSTANT_CRAYPE is %s " % (self.toolchain.TC_CONSTANT_CRAYPE))
#if self.toolchain.TC_CONSTANT_CRAYPE in [toolchain.CRAYPE+'_GNU', toolchain.CRAYPE+'_Intel'] :
if self.toolchain.PRGENV_MODULE_NAME_SUFFIX in ['gnu', 'intel'] :
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This would need to be a bit more specific and should also contain a conditional branch for 'cce' and 'pgi' probably (even if that would be just to bail).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@pforai I've added cray to the list but since we check for a cray toolchain (and I'm not planning to fix boost on -cray or -intel right now), maybe I'll just drop this test for the moment?

unless someone volunteers to work on the intel/cray boost support...

@boegel
Copy link
Copy Markdown
Member

boegel commented Mar 2, 2016

Any chance to just enhance the existing boost.py?

Do we have a good way of checking whether we're running eb on a Cray system yet?

Or does self.toolchain.name.startswith('Cray') suffice (since it's really only if we're using the Cray* toolchains that we need to take special care; you can also build with foss on a Cray system but there's nothing really special about that imho).

@boegel boegel added this to the v2.7.0 milestone Mar 2, 2016
@gppezzi
Copy link
Copy Markdown
Contributor Author

gppezzi commented Mar 2, 2016

@boegel well I dont feel confident enough to modify the original easyblock without breaking other builds (meaning that I don't have much time for testing now, I'm just bulk pushing things that were waiting for the new cray toolchains).

But if that boils down to adding an extra test to check if TC is Cray*, then I think I can do it ;) I'll start with self.toolchain.name.startswith('Cray')

@boegel
Copy link
Copy Markdown
Member

boegel commented Mar 3, 2016

@gppezzi we can help out with testing and making sure you're not breaking backwards compatibility;

It's good that you're pushing out the things you've worked on, and are willing to take the effort to contribute back, thanks for that!

@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1767/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@gppezzi
Copy link
Copy Markdown
Contributor Author

gppezzi commented Mar 7, 2016

@boegel @pforai I've integrated the changes into boost.py, it seems to build, can you please review?

thx

Comment thread easybuild/easyblocks/b/boost.py Outdated
else:
f.write("using mpi : %s ;" % os.getenv("MPICXX"))

f.close()
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

please replace this with:

write_file('user-config.jam', txt, append=True)

and construct txt above

@boegel boegel modified the milestones: v2.8.0, v2.7.0 Mar 9, 2016
@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1799/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1800/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1801/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@hpcugentbot
Copy link
Copy Markdown

Easyblocks unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyblocks-pr-builder/1802/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@gppezzi
Copy link
Copy Markdown
Contributor Author

gppezzi commented Mar 9, 2016

@boegel fixed most of remarks, I'll check tomorrow how to correctly bail out in case of unsupported PrgEnv

@gppezzi
Copy link
Copy Markdown
Contributor Author

gppezzi commented Jun 15, 2016

@boegel @pforai @lucamar

I've updated the easyblock to avoid the hardcoded reference to aprun/srun, now the mpi launcher can be specified through an extra_var. This argument is optional and it is only used for the regression tests (which we are currently not doing).

@pforai The argument <find-shared-library>mpich is actually needed for building the mpi enabled libraries, so apparently we need to leave it.

Build reports will be provided here

@lucamar
Copy link
Copy Markdown

lucamar commented Jun 16, 2016

@gppezzi Thanks, it looks perfect

Comment thread easybuild/easyblocks/b/boost.py Outdated
else:
txt = "using mpi : %s ;" % os.getenv("MPICXX")

write_file('user-config.jam', txt, append=True)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@gppezzi indentation seems off here? should be intended one level deeper, so it's in the if self.cfg['boost_mpi']:, otherwise txt is undefined

fix indent on write_file for user-config.jam + minor style issues in Boost easyblock
@boegel
Copy link
Copy Markdown
Member

boegel commented Jun 17, 2016

Tested with easybuilders/easybuild-easyconfigs#2615 and existing Boost easyconfigs, good to go, thanks @gppezzi & @pforai!

@boegel boegel merged commit 59261a2 into easybuilders:develop Jun 17, 2016
@gppezzi
Copy link
Copy Markdown
Contributor Author

gppezzi commented Jun 17, 2016

Thanks everyone for the feedback and help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants