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

Disable Fortran in one of the Trilinos PR builds #4238

Closed
bartlettroscoe opened this issue Jan 22, 2019 · 16 comments
Closed

Disable Fortran in one of the Trilinos PR builds #4238

bartlettroscoe opened this issue Jan 22, 2019 · 16 comments
Assignees
Labels
client: ATDM Any issue primarily impacting the ATDM project client: EMPIRE All issues that most directly target the ATDM EMPIRE code Framework tasks Framework tasks (used internally by Framework team) PA: Framework Issues that fall under the Trilinos Framework Product Area type: enhancement Issue is an enhancement, not a bug

Comments

@bartlettroscoe
Copy link
Member

CC: @trilinos/framework, @mhoemmen, @rppawlo, @bathmatt, @jmgate, @fryeguy52

There are several projects that disable Fortran when building Trilinos. Currently, the EMPIRE ATDM Trilinos configuration disables Fortran. (But that will chance once we fully merge the SPARC and EMPIRE ATDM Trilinos configurations since the SPARC configuration enables Fortran.) The Drekar developers disable Fortran in their configurations (which is not likely to change). Also, many people who build on Macs disable Fortran (since Macs don't come with a Fortran compiler by default).

Therefore, it is important for Trilinos to support a Fortran-less configuration and build. Therefore, at least one of the Trilinos PR builds needs to set Trilinos_ENABLE_Fortran=OFF.

@bartlettroscoe bartlettroscoe added type: enhancement Issue is an enhancement, not a bug Framework tasks Framework tasks (used internally by Framework team) client: ATDM Any issue primarily impacting the ATDM project client: EMPIRE All issues that most directly target the ATDM EMPIRE code PA: Framework Issues that fall under the Trilinos Framework Product Area labels Jan 22, 2019
@bartlettroscoe
Copy link
Member Author

CC: @fryeguy52

@mhoemmen, I added this since it looks like PR #4228 that you merged yesterday broke all of the EMPIRE ATDM Trilinos builds shown here.

@bartlettroscoe
Copy link
Member Author

@trilinos/framework, it seems like a good candidate Trilinos PR build to set Trilinos_ENABLE_Fortran=OFF would be the build Trilinos_pullrequest_gcc_4.9.3_SERIAL. It seems like someone who would want to an MPI-less build of Trilinos might also want to not have to have a working version of Fortran either.

@mhoemmen
Copy link
Contributor

Thanks @bartlettroscoe ; this would be super helpful :D

@mhoemmen
Copy link
Contributor

It seems like someone who would want to an MPI-less build of Trilinos might also want to not have to have a working version of Fortran either.

That's a good idea. Most of the Fortran issues relate to TPLs and binding to non-MPI functions.

@jwillenbring
Copy link
Member

@bartlettroscoe @mhoemmen

This seems like a reasonable thing to do. It seems unlikely that we would have many cases where a serial no fortran build would pass, when a serial build with fortran would fail. I have fired off a build to help us look at the current situation more closely.

@bartlettroscoe
Copy link
Member Author

It seems unlikely that we would have many cases where a serial no fortran build would pass, when a serial build with fortran would fail.

Right. Most of the Fortran/no-Fortran logic in Trilinos has nothing to do with MPI, it is all serial code.

I have fired off a build to help us look at the current situation more closely.

Thanks!

@jwillenbring
Copy link
Member

@bartlettroscoe @mhoemmen @trilinos/kokkos-kernels

I ran the SERIAL PR build with Fortran disabled (and no other changes) and got the configure error:
CMake Error at /projects/sems/install/rhel7-x86_64/sems/utility/cmake/3.10.3/share/cmake-3.10/Modules/FortranCInterface.cmake:205 (message): FortranCInterface requires the Fortran language to be enabled. Call Stack (most recent call first): packages/kokkos-kernels/src/CMakeLists.txt:1 (INCLUDE)

Should Kokkos-kernels simply be disabled if Fortran is disabled?

@bartlettroscoe
Copy link
Member Author

@jwillenbring said:

I ran the SERIAL PR build with Fortran disabled (and no other changes) and got the configure error ...

That is error got onto 'develop' that we are trying to avoid but adding Trilinos_ENABLE_Fortran=OFF to this PR build :-) See #4242 and #4241. Please rebsae your branch on top of 'develop' and it should work now.

@mhoemmen
Copy link
Contributor

What @bartlettroscoe said :D I reverted the change that caused that configure-time error.

@jwillenbring
Copy link
Member

@bartlettroscoe @mhoemmen

After rebasing, things look much better. This build ran only 3 fewer tests than the one with fortran enabled for comparison (although this build was not rebased, it was using develop from earlier in the day - I didn't see a need to regenerate these results).

I will see if there are any concerns about modifying the existing SERIAL PR bulid to disable Fortan at this mornings @trilinos/framework standup. If not, I don't see any impediments to pushing this.

@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Jan 23, 2019

@jwillenbring, this looks good and what one would expect. Please let us know once this update gets merged.

Thanks!

@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Jan 23, 2019

@trilinos/framework, it just occurred to me that it would be good to document the set of Trilinos PR builds and what each of them vary to make it clear that if you were to drop off this GCC SERIAL PR build, you loose testing with Fortran disabled, for example. The same goes for testing with complex enabled, with OpenMP enabled, etc. A small table on the Trilinos GitHub wiki would do the trick.

What do you think?

@jwillenbring
Copy link
Member

@bartlettroscoe

@trilinos/framework, it just occurred to met that it would be good to document the set of Trilinos PR builds and what each of them vary to make it clear that if you were to drop off this GCC SERIAL PR build, you loose testing with Fortran disabled, for example.

I updated the existing PR testing page. This should be at least a start of what you are looking for.

@bartlettroscoe
Copy link
Member Author

@jwillenbring said:

I updated the existing PR testing page. This should be at least a start of what you are looking for.

Thanks! I added a bullet that the GCC 4.8.4 actually enables OpenMP (which is more than just including the pthread TPL).

@ZUUL42 ZUUL42 self-assigned this Jan 31, 2019
trilinos-autotester added a commit that referenced this issue Feb 1, 2019
Automatically Merged using Trilinos Pull Request AutoTester
PR Title: Disable Fortran for 4.9.3 SERIAL build Fix Issue #4238
PR Author: ZUUL42
@ZUUL42 ZUUL42 added this to Backlog in Trilinos Framework via automation Dec 6, 2019
@jwillenbring
Copy link
Member

I am going to close this because #4238 was merged.

@jwillenbring jwillenbring moved this from Backlog to Done in Trilinos Framework Mar 11, 2020
@bartlettroscoe
Copy link
Member Author

I am going to close this because #4238 was merged.

That is PR #4308, correct? Note that #4238 is this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client: ATDM Any issue primarily impacting the ATDM project client: EMPIRE All issues that most directly target the ATDM EMPIRE code Framework tasks Framework tasks (used internally by Framework team) PA: Framework Issues that fall under the Trilinos Framework Product Area type: enhancement Issue is an enhancement, not a bug
Projects
Trilinos Framework
  
Done/closed
Development

No branches or pull requests

4 participants