-
Notifications
You must be signed in to change notification settings - Fork 578
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
Intrepid2: add support for weighted gradients in sum-factorized assembly #13391
Intrepid2: add support for weighted gradients in sum-factorized assembly #13391
Conversation
…ng test. Also hardened the test MatVec_CPDD_transpose to include a check that u' A v = v' A' u for vectors u, v.
…n type and/or incorrect extent could be used for the final result dimension.
…he main use case being a dot product with a vector-valued basis evaluation.
…s taken with a vector-valued basis evaluation, to structured integration. Right now, the integrate() method has not been revised to include this support, but tests have been added testing it. These run to completion, with 17/426 test failures in MonolithicExecutable. So now the task is to revise integrate() to get the test failures resolved. Here's the list of failing tests: The following tests FAILED: 155. StructuredIntegration_HCURL_CURL_HGRAD_GRAD_StructuredVersusStandardVectorWeighted_D3_P2_P1_UnitTest ... 159. StructuredIntegration_HCURL_VALUE_HDIV_VALUE_StructuredVersusStandardVectorWeighted_D2_P2_P1_UnitTest ... 160. StructuredIntegration_HCURL_VALUE_HDIV_VALUE_StructuredVersusStandardVectorWeighted_D3_P2_P1_UnitTest ... 189. StructuredIntegration_HGRAD_GRAD_HGRAD_GRAD_StructuredVersusStandardVectorWeighted_D2_P2_P1_UnitTest ... 193. StructuredIntegration_HGRAD_GRAD_HGRAD_GRAD_StructuredVersusStandardVectorWeighted_D3_P2_P1_UnitTest ... 378. StructuredIntegration_VectorWeightedPoissonFormulation_D1_P1_GeneralStructuredIntegration_UnitTest ... 380. StructuredIntegration_VectorWeightedPoissonFormulation_D2_P3_GeneralStructuredIntegration_UnitTest ... 382. StructuredIntegration_VectorWeightedPoissonFormulation_D3_P3_GeneralStructuredIntegration_UnitTest ... 383. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D1_P1_QuadratureUniformMesh_UnitTest ... 384. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D1_P2_QuadratureUniformMesh_UnitTest ... 385. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D1_P4_QuadratureUniformMesh_UnitTest ... 386. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D2_P1_QuadratureUniformMesh_UnitTest ... 387. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D2_P2_QuadratureUniformMesh_UnitTest ... 388. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D2_P3_QuadratureUniformMesh_UnitTest ... 389. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D3_P1_QuadratureUniformMesh_UnitTest ... 390. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D3_P2_QuadratureUniformMesh_UnitTest ... 391. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D3_P3_QuadratureUniformMesh_UnitTest ...
…n to 11/425 tests failing: The following tests FAILED: 155. StructuredIntegration_HCURL_CURL_HGRAD_GRAD_StructuredVersusStandardVectorWeighted_D3_P2_P1_UnitTest ... 159. StructuredIntegration_HCURL_VALUE_HDIV_VALUE_StructuredVersusStandardVectorWeighted_D2_P2_P1_UnitTest ... 160. StructuredIntegration_HCURL_VALUE_HDIV_VALUE_StructuredVersusStandardVectorWeighted_D3_P2_P1_UnitTest ... 189. StructuredIntegration_HGRAD_GRAD_HGRAD_GRAD_StructuredVersusStandardVectorWeighted_D2_P2_P1_UnitTest ... 193. StructuredIntegration_HGRAD_GRAD_HGRAD_GRAD_StructuredVersusStandardVectorWeighted_D3_P2_P1_UnitTest ... 386. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D2_P1_QuadratureUniformMesh_UnitTest ... 387. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D2_P2_QuadratureUniformMesh_UnitTest ... 388. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D2_P3_QuadratureUniformMesh_UnitTest ... 389. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D3_P1_QuadratureUniformMesh_UnitTest ... 390. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D3_P2_QuadratureUniformMesh_UnitTest ... 391. StructuredIntegration_VectorWeightedPoissonFormulation_NonAffineTensorAlgorithm_D3_P3_QuadratureUniformMesh_UnitTest ...
…lyingView() method was being called; resolved by calling the one that gets a DynRankView.
…he issue that this demonstrates in Intrepid2::Data.
…added a transposeMatrix() method.
…ector-weighted use cases.
…is dotted with a vector and then integrated against a scalar.
…o corrected a couple bugs affecting prior use cases.
…t will be unreachable, due to constraints imposed elsewhere).
…penMP_16 (not CUDA).
…xploit vector parallelism.
…tion from "core integration" timing.
…g the "best" CUDA choices to match Poisson. But we need to redo those calibrations regardless, and maybe switch to reading them in from file: these are for older CUDA cards.
…s from core integration timings.
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: PR_gcc-openmpi-openmp
Jenkins Parameters
Build InformationTest Name: PR_gcc
Jenkins Parameters
Build InformationTest Name: PR_gcc-openmpi_debug
Jenkins Parameters
Build InformationTest Name: PR_clang
Jenkins Parameters
Build InformationTest Name: Trilinos_PR_python3
Jenkins Parameters
Build InformationTest Name: PR_cuda
Jenkins Parameters
Build InformationTest Name: PR_intel
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED Note: Testing will normally be attempted again in approx. 2 Hrs 30 Mins. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run. Pull Request Auto Testing has FAILED (click to expand)Build InformationTest Name: PR_gcc-openmpi-openmp
Jenkins Parameters
Build InformationTest Name: PR_gcc
Jenkins Parameters
Build InformationTest Name: PR_gcc-openmpi_debug
Jenkins Parameters
Build InformationTest Name: PR_clang
Jenkins Parameters
Build InformationTest Name: Trilinos_PR_python3
Jenkins Parameters
Build InformationTest Name: PR_cuda
Jenkins Parameters
Build InformationTest Name: PR_intel
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
|
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: PR_gcc-openmpi-openmp
Jenkins Parameters
Build InformationTest Name: PR_gcc
Jenkins Parameters
Build InformationTest Name: PR_gcc-openmpi_debug
Jenkins Parameters
Build InformationTest Name: PR_clang
Jenkins Parameters
Build InformationTest Name: Trilinos_PR_python3
Jenkins Parameters
Build InformationTest Name: PR_cuda
Jenkins Parameters
Build InformationTest Name: PR_intel
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great, Nate!
The code looks reasonable to me. Thanks also for adding several tests.
While you are working on this, I might be good to address the valgrind warnings https://sems-cdash-son.sandia.gov/cdash/viewDynamicAnalysisFile.php?id=3523 for the Structured Integration Performance test (see issue #11847). I spent some time on it today but I could not figure out what's the issue.
Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED Note: Testing will normally be attempted again in approx. 2 Hrs 30 Mins. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run. Pull Request Auto Testing has FAILED (click to expand)Build InformationTest Name: PR_gcc-openmpi-openmp
Jenkins Parameters
Build InformationTest Name: PR_gcc
Jenkins Parameters
Build InformationTest Name: PR_gcc-openmpi_debug
Jenkins Parameters
Build InformationTest Name: PR_clang
Jenkins Parameters
Build InformationTest Name: Trilinos_PR_python3
Jenkins Parameters
Build InformationTest Name: PR_cuda
Jenkins Parameters
Build InformationTest Name: PR_intel
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
|
…ltimateBasisRank2" in StandardAssembly. This was probably executing correct code for compilers where it compiled, but some of the CI compilers complained. In any case, I had an extraneous "var =" inside the ternary operator, which I did not intend.
I've added a comment on that issue, with a suggested change to the testing setup. I think it's a matter of how valgrind is getting invoked; we've run into something similar in the past; I think the errors may be spurious. |
Status Flag 'Pre-Test Inspection' - Auto Inspected - Inspection is Not Necessary for this Pull Request. |
Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects: Pull Request Auto Testing STARTING (click to expand)Build InformationTest Name: PR_gcc-openmpi-openmp
Jenkins Parameters
Build InformationTest Name: PR_gcc
Jenkins Parameters
Build InformationTest Name: PR_gcc-openmpi_debug
Jenkins Parameters
Build InformationTest Name: PR_clang
Jenkins Parameters
Build InformationTest Name: Trilinos_PR_python3
Jenkins Parameters
Build InformationTest Name: PR_cuda
Jenkins Parameters
Build InformationTest Name: PR_intel
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Using Repos:
Pull Request Author: CamelliaDPG |
Yes, I can confirm that that using the valgrind flag that you proposed fixes the problem on my Workstation. |
Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED Pull Request Auto Testing has PASSED (click to expand)Build InformationTest Name: PR_gcc-openmpi-openmp
Jenkins Parameters
Build InformationTest Name: PR_gcc
Jenkins Parameters
Build InformationTest Name: PR_gcc-openmpi_debug
Jenkins Parameters
Build InformationTest Name: PR_clang
Jenkins Parameters
Build InformationTest Name: Trilinos_PR_python3
Jenkins Parameters
Build InformationTest Name: PR_cuda
Jenkins Parameters
Build InformationTest Name: PR_intel
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
|
Status Flag 'Pre-Merge Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED AND APPROVED by [ mperego ]! |
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/intrepid2
Motivation
This PR adds support for additional uses cases to the existing sum-factorized assembly mechanism. On the way, it adds support for vector weights to
TransformedBasisValues
; previously, only matrix and scalar weights were supported.This PR also makes some minor adjustments to the timings performed in
StructuredIntegrationPerformance.cpp
to ensure fair comparisons.The new use cases are demonstrated most directly in the following:
which demonstrates performing an integral of the form
for an$H^1$ basis.
Testing
The new use cases are well-exercised by the tests; a new set of
VectorWeightedPoisson
test cases (corresponding to the integral above) are included in the structured-versus-standard tests.