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

Tpetra: Fix #4962 (duplicate Tpetra::Details::normImpl instantiations in Albany and SPARC) #4969

Merged
merged 1 commit into from
Apr 20, 2019

Conversation

mhoemmen
Copy link
Contributor

@trilinos/tpetra

Description

  1. Add TPETRA_INSTANTIATE_G and TPETRA_INSTANTIATE_GN macros for
    explicit template instantiation (ETI).

  2. Fix duplicate explicit instantiations of Tpetra::Details::normImpl
    for Scalar=int, in case Tpetra_INST_INT_INT=ON (i.e.,
    GlobalOrdinal=int is enabled).

Motivation and Context

Both Albany and SPARC have a broken Trilinos build now.

Related Issues

@trilinos/tpetra

1. Add TPETRA_INSTANTIATE_G and TPETRA_INSTANTIATE_GN macros for
   explicit template instantiation (ETI).

2. Fix duplicate explicit instantiations of Tpetra::Details::normImpl
   for Scalar=int, in case Tpetra_INST_INT_INT=ON (i.e.,
   GlobalOrdinal=int is enabled).
@mhoemmen
Copy link
Contributor Author

@ikalash @micahahoward

Copy link
Contributor

@kddevin kddevin left a comment

Choose a reason for hiding this comment

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

Changes look fine.
Can you post the cmake configurations used to test it?
At least one should use Tpetra_INST_INT_INT=OFF, and one should use the default settings.
Thanks.

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection Is Not Necessary for this Pull Request.

@mhoemmen
Copy link
Contributor Author

@kddevin I used the old-fashioned check-in test script (it has nice automation for enabling or disabling packages) and only tested Tpetra.

Both configurations used the following options:

-D Trilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON
-D Amesos2_ENABLE_SuperLU:BOOL=ON
-D BUILD_SHARED_LIBS:BOOL=ON
-D Trilinos_ENABLE_OpenMP:BOOL=ON
-D Trilinos_SHOW_DEPRECATED_WARNINGS:BOOL=ON
-D Trilinos_ENABLE_Fortran:BOOL=ON
-D CMAKE_CXX_FLAGS:STRING="-Wall --pedantic"
-D Trilinos_ENABLE_COMPLEX_DOUBLE:BOOL=ON
-D TPL_ENABLE_MKL:BOOL=OFF
-D TPL_ENABLE_Matio:BOOL=OFF
-D TPL_ENABLE_SuperLU:BOOL=ON
  -D SuperLU_INCLUDE_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/superlu/4.3/gcc/4.9.3/base/include
  -D SuperLU_LIBRARY_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/superlu/4.3/gcc/4.9.3/base/lib
-D TPL_ENABLE_Zlib:BOOL=ON
  -D Zlib_INCLUDE_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/zlib/1.2.8/gcc/4.9.3/base/include
  -D Zlib_LIBRARY_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/zlib/1.2.8/gcc/4.9.3/base/lib
-D TPL_ENABLE_Netcdf:BOOL=ON
  -D Netcdf_INCLUDE_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/netcdf/4.4.1/gcc/4.9.3/openmpi/1.10.1/exo_parallel/include
  -D Netcdf_LIBRARY_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/netcdf/4.4.1/gcc/4.9.3/openmpi/1.10.1/exo_parallel/lib
-D TPL_ENABLE_Boost:BOOL=ON
  -D Boost_INCLUDE_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/boost/1.59.0/gcc/4.9.3/base/include
  -D Boost_LIBRARY_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/boost/1.59.0/gcc/4.9.3/base/lib
-D TPL_ENABLE_BoostLib:BOOL=ON
-D TPL_ENABLE_HDF5:BOOL=ON
  -D HDF5_INCLUDE_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/hdf5/1.8.12/gcc/4.9.3/openmpi/1.10.1/parallel/include
  -D HDF5_LIBRARY_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/hdf5/1.8.12/gcc/4.9.3/openmpi/1.10.1/parallel/lib
-D TPL_ENABLE_ParMETIS:BOOL=ON
  -D ParMETIS_INCLUDE_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/parmetis/4.0.3/gcc/4.9.3/openmpi/1.10.1/parallel/include
  -D ParMETIS_LIBRARY_DIRS=/projects/sems/install/rhel6-x86_64/sems/tpl/parmetis/4.0.3/gcc/4.9.3/openmpi/1.10.1/parallel/lib
-D TPL_ENABLE_yaml-cpp:BOOL=OFF
-D TPL_ENABLE_MPI:BOOL=ON
-D CMAKE_BUILD_TYPE:STRING=DEBUG

I first tested deprecated code OFF and Tpetra_INST_INT_INT=OFF:

-D Tpetra_INST_INT_INT:BOOL=OFF
-D KOKKOS_ENABLE_DEPRECATED_CODE:BOOL=OFF
-D Tpetra_ENABLE_DEPRECATED_CODE:BOOL=OFF
-D Trilinos_ENABLE_FLOAT:BOOL=ON
-D Amesos2_ENABLE_Epetra:BOOL=OFF
-D Trilinos_ENABLE_ShyLU_DDFROSch:BOOL=OFF

I then tested deprecated code ON and Tpetra_INST_INT_INT=ON:

-D Kokkos_ENABLE_Pthread:BOOL=OFF
-D Tpetra_INST_SERIAL:BOOL=OFF
-D Kokkos_ENABLE_DEBUG:BOOL=ON
-D Teuchos_ENABLE_DEBUG:BOOL=ON
-D Amesos2_ENABLE_Epetra:BOOL=OFF
-D Tpetra_INST_INT_INT:BOOL=ON

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects:

Pull Request Auto Testing STARTING (click to expand)

Build Information

Test Name: Trilinos_pullrequest_gcc_4.8.4

  • Build Num: 3326
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
COMPILER_MODULE sems-gcc/4.8.4
JENKINS_BUILD_TYPE Release
JENKINS_COMM_TYPE MPI
JENKINS_DO_COMPLEX OFF
JENKINS_JOB_TYPE Experimental
MPI_MODULE sems-openmpi/1.8.7
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 3153
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_gcc_4.9.3_SERIAL

  • Build Num: 1598
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0

  • Build Num: 1333
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_cuda_9.2

  • Build Num: 1009
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
JENKINS_JOB_TYPE Experimental
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Using Repos:

Repo: TRILINOS (trilinos/Trilinos)
  • Branch: Fix-4962
  • SHA: ed0899c
  • Mode: TEST_REPO

Pull Request Author: mhoemmen

@mhoemmen
Copy link
Contributor Author

I had to set -D Amesos2_ENABLE_Epetra:BOOL=OFF because Amesos2 does not compile with Epetra support enabled if GO=int is disabled.

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED

Pull Request Auto Testing has PASSED (click to expand)

Build Information

Test Name: Trilinos_pullrequest_gcc_4.8.4

  • Build Num: 3326
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
COMPILER_MODULE sems-gcc/4.8.4
JENKINS_BUILD_TYPE Release
JENKINS_COMM_TYPE MPI
JENKINS_DO_COMPLEX OFF
JENKINS_JOB_TYPE Experimental
MPI_MODULE sems-openmpi/1.8.7
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 3153
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_gcc_4.9.3_SERIAL

  • Build Num: 1598
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0

  • Build Num: 1333
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7

Build Information

Test Name: Trilinos_pullrequest_cuda_9.2

  • Build Num: 1009
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
JENKINS_JOB_TYPE Experimental
PULLREQUESTNUM 4969
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH Fix-4962
TRILINOS_SOURCE_REPO https://github.com/trilinos/Trilinos
TRILINOS_SOURCE_SHA ed0899c
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 8c5bac7


CDash Test Results for PR# 4969.

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pre-Merge Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging
THE LAST COMMIT TO THIS PULL REQUEST HAS BEEN REVIEWED, BUT NOT ACCEPTED OR REQUIRES CHANGES

@trilinos-autotester
Copy link
Contributor

All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur...

@kddevin kddevin added the AT: AUTOMERGE Causes the PR autotester to automatically merge the PR branch once approvals are completed label Apr 20, 2019
@trilinos-autotester
Copy link
Contributor

Status Flag 'Pre-Merge Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED AND APPROVED by [ kddevin ]!

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - Pull Request will be Automerged

@trilinos-autotester trilinos-autotester merged commit f855213 into develop Apr 20, 2019
@trilinos-autotester
Copy link
Contributor

Merge on Pull Request# 4969: IS A SUCCESS - Pull Request successfully merged

@trilinos-autotester trilinos-autotester removed the AT: AUTOMERGE Causes the PR autotester to automatically merge the PR branch once approvals are completed label Apr 20, 2019
@mhoemmen
Copy link
Contributor Author

Thanks @kddevin ! I hope you don't mind me submitting a "competing" PR -- I just thought it would save time :-) .

@kddevin
Copy link
Contributor

kddevin commented Apr 24, 2019

@mhoemmen Both "solutions" were your idea, not mine, so there's no PR competition at all. :)

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

Successfully merging this pull request may close these issues.

3 participants