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

Add infrastructure for CUDA PR build #4217

Merged
merged 21 commits into from
Jan 23, 2019

Conversation

jwillenbring
Copy link
Member

@trilinos/framework

Description

This PR adds/modifies files in preparation of adding a dev->master CUDA build and then a PR CUDA build.

Motivation and Context

We need to protect against breaking the CUDA build at PR time. This is in response to #2464.

How Has This Been Tested?

@ZUUL42 set up Jenkins infrastructure for this build also, and we have a large subset of Trilinos tests passing. We have disabled temporarily what is failing so that we can get a PR build in place that will protect what is passing while we work on the remaining issues.

@jwillenbring jwillenbring added Framework tasks Framework tasks (used internally by Framework team) PA: Framework Issues that fall under the Trilinos Framework Product Area labels Jan 18, 2019
@bartlettroscoe bartlettroscoe added the stage: in progress Work on the issue has started label Jan 18, 2019
@trilinos-autotester
Copy link
Contributor

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

@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: 2268
  • 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 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 2069
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_4.9.3_SERIAL

  • Build Num: 556
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0

  • Build Num: 170
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Using Repos:

Repo: TRILINOS (jwillenbring/Trilinos)
  • Branch: ride_build_pr
  • SHA: 1fbde49
  • Mode: TEST_REPO

Pull Request Author: jwillenbring

ZUUL42
ZUUL42 previously approved these changes Jan 18, 2019
Copy link
Contributor

@ZUUL42 ZUUL42 left a comment

Choose a reason for hiding this comment

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

Looks good and the last few builds have been successful.

@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: 2268
  • 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 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 2069
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_4.9.3_SERIAL

  • Build Num: 556
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0

  • Build Num: 170
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA 1fbde49
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842


CDash Test Results for PR# 4217.

@trilinos-autotester
Copy link
Contributor

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

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - AutoMerge IS ENABLED, but the Label AT: AUTOMERGE is not set. Either set Label AT: AUTOMERGE or manually merge the PR...

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - AutoMerge IS ENABLED, but the Label AT: AUTOMERGE is not set. Either set Label AT: AUTOMERGE or manually merge the PR...

1 similar comment
@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - AutoMerge IS ENABLED, but the Label AT: AUTOMERGE is not set. Either set Label AT: AUTOMERGE or manually merge the PR...

@@ -0,0 +1,23 @@
#!/bin/bash -l

if [ "${BSUB_CTEST_TIME_LIMIT}" == "" ] ; then
Copy link
Contributor

@william76 william76 Jan 21, 2019

Choose a reason for hiding this comment

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

Is BSUB_CTEST_TIME_LIMIT a system defined environment variable or is this a new Jenkins parameter that's being introduced?
If this doesn't exist, can it break things?

Copy link
Member Author

Choose a reason for hiding this comment

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

@bartlettroscoe @ZUUL42 @william76

Is BSUB_CTEST_TIME_LIMIT a system defined environment variable or is this a new Jenkins parameter that's being introduced?
If this doesn't exist, can it break things?

I am not certain, but I think it is just an environment variable that can be defined by a user.
@bartlettroscoe may be able to confirm or correct this.
If it is not defined, it is set to a default value, so it shouldn't break things. The variable is specific to this build as far as current PR tests go (because ride uses bsub).

Copy link
Member

Choose a reason for hiding this comment

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

This was just an env var that allowed specialization in the individual driver scripts. This came from the file:

  • Trilinos/cmake/ctest/drivers/atdm/ride/local-driver.sh

which has:

#!/bin/bash -l

if [ "${BSUB_CTEST_TIME_LIMIT}" == "" ] ; then
  export BSUB_CTEST_TIME_LIMIT=12:00
fi

...

source $WORKSPACE/Trilinos/cmake/std/atdm/load-env.sh $JOB_NAME

set -x

bsub -x -Is -q $ATDM_CONFIG_QUEUE -n 16 -J $JOB_NAME -W $BSUB_CTEST_TIME_LIMIT \
  $WORKSPACE/Trilinos/cmake/ctest/drivers/atdm/ctest-s-driver.sh

Any questions about this?



regex=".*(_cuda_).*"
if [[ ! ${JOB_BASE_NAME:?} =~ ${regex} ]]; then
Copy link
Contributor

Choose a reason for hiding this comment

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

I checked this regex test in a script and it works... but I'm not sure we should make an assumption that if the job has _cuda_ in its name that it's on Ride. This might lead to bugs down the line if we create a CUDA job later on for a machine that isn't Ride... I'd rather see something like:

if job_name doesn't have CUDA:
    load non-cuda environment
else if machine is Ride
    load git module for Ride
else
    throw a meaningful error and notify DevOPs
fi

@prwolfe @jwillenbring your thougs?

Copy link
Contributor

@ZUUL42 ZUUL42 Jan 21, 2019

Choose a reason for hiding this comment

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

Ya, that would be better than just a warning note about only putting CUDA builds on Ride.
I can add the extra check for only running CUDA builds on Ride.

Copy link
Contributor

Choose a reason for hiding this comment

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

Agreed - Thanks @ZUUL42

Copy link
Contributor

Choose a reason for hiding this comment

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

Committed the additional check.

@jwillenbring
Copy link
Member Author

As discussed at the @trilinos/framework meeting this morning, I fired off another PR build (not the CUDA build) to make sure we didn't break anything for other cases. The build came back clean, but we will wait for @ZUUL42 to make the other change and test again before merging.

@trilinos-autotester
Copy link
Contributor

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

@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: 2283
  • 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 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 2084
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_4.9.3_SERIAL

  • Build Num: 571
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0

  • Build Num: 189
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Using Repos:

Repo: TRILINOS (jwillenbring/Trilinos)
  • Branch: ride_build_pr
  • SHA: d8cad58
  • Mode: TEST_REPO

Pull Request Author: jwillenbring

@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: 2283
  • 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 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_intel_17.0.1

  • Build Num: 2084
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_4.9.3_SERIAL

  • Build Num: 571
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842

Build Information

Test Name: Trilinos_pullrequest_gcc_7.2.0

  • Build Num: 189
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
PULLREQUESTNUM 4217
TEST_REPO_ALIAS TRILINOS
TRILINOS_SOURCE_BRANCH ride_build_pr
TRILINOS_SOURCE_REPO https://github.com/jwillenbring/Trilinos
TRILINOS_SOURCE_SHA d8cad58
TRILINOS_TARGET_BRANCH develop
TRILINOS_TARGET_REPO https://github.com/trilinos/Trilinos
TRILINOS_TARGET_SHA 882d842


CDash Test Results for PR# 4217.

@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...

1 similar comment
@trilinos-autotester
Copy link
Contributor

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

@william76
Copy link
Contributor

@ZUUL42 looks good to me.

@trilinos-autotester
Copy link
Contributor

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

@trilinos-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - AutoMerge IS ENABLED, but the Label AT: AUTOMERGE is not set. Either set Label AT: AUTOMERGE or manually merge the PR...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Framework tasks Framework tasks (used internally by Framework team) PA: Framework Issues that fall under the Trilinos Framework Product Area
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants