-
Notifications
You must be signed in to change notification settings - Fork 607
Trilinoscouplings: Implementing the Rebalance_LinearProblem transform using Tpetra and Zoltan2. Update test as well. #14440
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
Conversation
… the example. Still debugging. Signed-off-by: Ernesto Prudencio <[email protected]>
Signed-off-by: Ernesto Prudencio <[email protected]>
Signed-off-by: Ernesto Prudencio <[email protected]>
Signed-off-by: Ernesto Prudencio <[email protected]>
|
CDash for AT1 results [Only accessible from Sandia networks] |
|
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_clang
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Build InformationTest Name: PR_CompSim
Jenkins Parameters
Using Repos:
Pull Request Author: eeprude |
|
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_clang
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Build InformationTest Name: PR_CompSim
Jenkins Parameters
|
|
Status Flag 'Pre-Merge Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging |
|
All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur... |
Signed-off-by: Ernesto Prudencio <[email protected]>
|
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_clang
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Build InformationTest Name: PR_CompSim
Jenkins Parameters
Using Repos:
Pull Request Author: eeprude |
|
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_clang
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Build InformationTest Name: PR_CompSim
Jenkins Parameters
|
|
Status Flag 'Pre-Merge Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging |
|
All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur... |
…form Signed-off-by: Ernesto Prudencio <[email protected]>
|
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_clang
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Build InformationTest Name: PR_CompSim
Jenkins Parameters
Using Repos:
Pull Request Author: eeprude |
|
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_clang
Jenkins Parameters
Build InformationTest Name: PR_cuda-uvm
Jenkins Parameters
Build InformationTest Name: PR_CompSim
Jenkins Parameters
|
|
Status Flag 'Pre-Merge Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging |
|
All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur... |
2 similar comments
|
All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur... |
|
All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur... |
The new functions allow to loop over lists of classes that should be ETI'd. Signed-off-by: Christian Glusa <[email protected]>
Signed-off-by: Christian Glusa <[email protected]>
Signed-off-by: Christian Glusa <[email protected]>
TrilinosCouplings: Add ETI
…form Signed-off-by: Ernesto Prudencio <[email protected]>
|
Your PR updated files that did not respect package formatting settings. Patchdiff --git a/packages/tpetra/core/src/Tpetra_Transform.hpp b/packages/tpetra/core/src/Tpetra_Transform.hpp
index 23e5b873..9c9eed7e 100644
--- a/packages/tpetra/core/src/Tpetra_Transform.hpp
+++ b/packages/tpetra/core/src/Tpetra_Transform.hpp
@@ -18,169 +18,157 @@
namespace Tpetra {
+///
+/** Base Class for all Tpetra Transforms.
+ *
+ * This is the abstract definition for all Tpetra Transforms.
+ * Depending on the type of Transform, several specializations are
+ * available: Structural, SameType, InPlace, View.
+ */
+
+template <typename T, typename U>
+class Transform {
+ public:
+ /** @name Typedefs for templated classes */
+ //@{
+
+ using OriginalType = Teuchos::RCP<T>;
+ using OriginalConstType = Teuchos::RCP<const T>;
+ using NewType = Teuchos::RCP<U>;
+ using NewConstType = Teuchos::RCP<const U>;
+
+ //@}
+
///
- /** Base Class for all Tpetra Transforms.
- *
- * This is the abstract definition for all Tpetra Transforms.
- * Depending on the type of Transform, several specializations are
- * available: Structural, SameType, InPlace, View.
- */
-
- template<typename T, typename U>
- class Transform
- {
- public:
-
- /** @name Typedefs for templated classes */
- //@{
-
- using OriginalType = Teuchos::RCP<T>;
- using OriginalConstType = Teuchos::RCP<const T>;
- using NewType = Teuchos::RCP<U>;
- using NewConstType = Teuchos::RCP<const U>;
-
- //@}
-
- ///
- virtual ~Transform() = default;
-
- /** @name Pure Virtual Methods which must be implemented by subclasses */
- //@{
-
- /// \brief Analysis of transform operation on original object and
- /// construction of new object.
- ///
- /// @return Returns an RCP to the newly created object of type NewType.
- virtual NewType operator()(const OriginalType & orig ) = 0;
-
- /// \brief Forward transfer of data.
- ///
- /// Forward transfer of data from <tt>orig</tt> object input in the
- /// <tt>operator()</tt> method call to the new object created in this
- /// same call.
- virtual void fwd() = 0;
-
- /// \brief Reverse transfer of data.
- ///
- /// Reverse transfer of data from new object created in the
- /// <tt>operator()</tt> method call to the <tt>orig</tt> object input
- /// to this same method.
- virtual void rvs() = 0;
-
- //@}
-
- /** @name Virtual functions with default implements allowing for optional
- * implementation by the Transform developer */
- //@{
-
- /// \brief Initial analysis phase of transform.
- ///
- /// Initial analysis phase of transform to confirm the transform
- /// is possible allowing methods <tt>construct()</tt>,
- /// <tt>fwd()</tt> and <tt>rvs()</tt> to be successfully utilized.
- ///
- /// The default implementation calls method <tt>operator()</tt>
- /// and stores the resulting object in an internal attribute
- /// <tt>newObj_</tt>.
- virtual void analyze(const OriginalType & orig );
-
- /// \brief Construction of new object as a result of the transform.
- ///
- /// The default implementation returns internal attribute <tt>newObj_</tt>.
- virtual NewType construct();
-
- /// \brief Check if transformed object has been constructed.
- ///
- /// The default implementation returns <tt>true</tt> if
- /// <tt>newObj_</tt> != 0.
- virtual bool isConstructed();
-
- //@}
-
- protected:
-
- /// \brief Default constructor
- ///
- /// Protected to allow only derived classes to use.
- ///
- /// Initializes attributes <tt>origObj_</tt> and <tt>newObj_</tt>
- /// to Teuchos::null.
- Transform()
- : origObj_(Teuchos::null),
- newObj_(Teuchos::null)
- {}
-
- OriginalType origObj_;
- NewType newObj_;
-
- private:
- Transform(const Transform<T,U>& src)
- :origObj_(src.origObj_), newObj_(src.newObj_) {}
-
- Transform<T,U>& operator=(const Transform<T,U>& src)
- {
- // Not currently supported.
- Teuchos::GlobalMPISession::abort();
- return(*this);
- }
-
- }; // end class Transform
-
- template<typename T,typename U>
- void
- Transform<T,U>::
- analyze(const OriginalType & orig )
- {
- origObj_ = orig;
- newObj_ = Teuchos::rcp_dynamic_cast<U>(origObj_);
- return;
- }
-
- template<typename T,typename U>
- typename Transform<T,U>::NewType
- Transform<T,U>::
- construct()
- {
- return newObj_;
- }
-
- template<typename T,typename U>
- bool
- Transform<T,U>::
- isConstructed()
- {
- return ( newObj_ != Teuchos::null );
+ virtual ~Transform() = default;
+
+ /** @name Pure Virtual Methods which must be implemented by subclasses */
+ //@{
+
+ /// \brief Analysis of transform operation on original object and
+ /// construction of new object.
+ ///
+ /// @return Returns an RCP to the newly created object of type NewType.
+ virtual NewType operator()(const OriginalType& orig) = 0;
+
+ /// \brief Forward transfer of data.
+ ///
+ /// Forward transfer of data from <tt>orig</tt> object input in the
+ /// <tt>operator()</tt> method call to the new object created in this
+ /// same call.
+ virtual void fwd() = 0;
+
+ /// \brief Reverse transfer of data.
+ ///
+ /// Reverse transfer of data from new object created in the
+ /// <tt>operator()</tt> method call to the <tt>orig</tt> object input
+ /// to this same method.
+ virtual void rvs() = 0;
+
+ //@}
+
+ /** @name Virtual functions with default implements allowing for optional
+ * implementation by the Transform developer */
+ //@{
+
+ /// \brief Initial analysis phase of transform.
+ ///
+ /// Initial analysis phase of transform to confirm the transform
+ /// is possible allowing methods <tt>construct()</tt>,
+ /// <tt>fwd()</tt> and <tt>rvs()</tt> to be successfully utilized.
+ ///
+ /// The default implementation calls method <tt>operator()</tt>
+ /// and stores the resulting object in an internal attribute
+ /// <tt>newObj_</tt>.
+ virtual void analyze(const OriginalType& orig);
+
+ /// \brief Construction of new object as a result of the transform.
+ ///
+ /// The default implementation returns internal attribute <tt>newObj_</tt>.
+ virtual NewType construct();
+
+ /// \brief Check if transformed object has been constructed.
+ ///
+ /// The default implementation returns <tt>true</tt> if
+ /// <tt>newObj_</tt> != 0.
+ virtual bool isConstructed();
+
+ //@}
+
+ protected:
+ /// \brief Default constructor
+ ///
+ /// Protected to allow only derived classes to use.
+ ///
+ /// Initializes attributes <tt>origObj_</tt> and <tt>newObj_</tt>
+ /// to Teuchos::null.
+ Transform()
+ : origObj_(Teuchos::null)
+ , newObj_(Teuchos::null) {}
+
+ OriginalType origObj_;
+ NewType newObj_;
+
+ private:
+ Transform(const Transform<T, U>& src)
+ : origObj_(src.origObj_)
+ , newObj_(src.newObj_) {}
+
+ Transform<T, U>& operator=(const Transform<T, U>& src) {
+ // Not currently supported.
+ Teuchos::GlobalMPISession::abort();
+ return (*this);
}
-
- template<typename T, typename U>
- class StructuralTransform : public Transform<T,U>
- {
- public:
- void fwd() { return; }
- void rvs() { return; }
-
- virtual ~StructuralTransform() = default;
- };
-
- template<typename T>
- class SameTypeTransform : public Transform<T,T>
- {
- public:
- using TransformType = Teuchos::RCP<T>;
-
- virtual ~SameTypeTransform() = default;
- };
-
- template<typename T>
- class StructuralSameTypeTransform : public SameTypeTransform<T>
- {
- public:
- void fwd() { return; }
- void rvs() { return; }
-
- virtual ~StructuralSameTypeTransform() = default;
- };
-
+
+}; // end class Transform
+
+template <typename T, typename U>
+void Transform<T, U>::
+ analyze(const OriginalType& orig) {
+ origObj_ = orig;
+ newObj_ = Teuchos::rcp_dynamic_cast<U>(origObj_);
+ return;
+}
+
+template <typename T, typename U>
+typename Transform<T, U>::NewType
+Transform<T, U>::
+ construct() {
+ return newObj_;
+}
+
+template <typename T, typename U>
+bool Transform<T, U>::
+ isConstructed() {
+ return (newObj_ != Teuchos::null);
+}
+
+template <typename T, typename U>
+class StructuralTransform : public Transform<T, U> {
+ public:
+ void fwd() { return; }
+ void rvs() { return; }
+
+ virtual ~StructuralTransform() = default;
+};
+
+template <typename T>
+class SameTypeTransform : public Transform<T, T> {
+ public:
+ using TransformType = Teuchos::RCP<T>;
+
+ virtual ~SameTypeTransform() = default;
+};
+
+template <typename T>
+class StructuralSameTypeTransform : public SameTypeTransform<T> {
+ public:
+ void fwd() { return; }
+ void rvs() { return; }
+
+ virtual ~StructuralSameTypeTransform() = default;
+};
+
// template<typename T>
// class InPlaceTransform : public SameTypeTransform<T>
// {
@@ -192,20 +180,19 @@ namespace Tpetra {
// this->newObj_ = &orig;
// return orig;
// }
-//
+//
// virtual ~InPlaceTransform() = default;
// };
-
- template<typename T>
- class ViewTransform : public SameTypeTransform<T>
- {
- public:
- void fwd() { return; }
- void rvs() { return; }
-
- virtual ~ViewTransform() = default;
- };
-
-} //namespace Tpetra
-
-#endif // TPETRA_TRANSFORM_HPP
+
+template <typename T>
+class ViewTransform : public SameTypeTransform<T> {
+ public:
+ void fwd() { return; }
+ void rvs() { return; }
+
+ virtual ~ViewTransform() = default;
+};
+
+} // namespace Tpetra
+
+#endif // TPETRA_TRANSFORM_HPPMore details about our use of clang-format and other tools can be found in the wiki. |
Signed-off-by: Ernesto Prudencio <[email protected]>
Signed-off-by: Ernesto Prudencio <[email protected]>
|
Status Flag 'Pull Request AutoTester' - User Requested Retest - Label AT: RETEST will be reset after testing. |
|
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_CompSim
Jenkins Parameters
Using Repos:
Pull Request Author: eeprude |
|
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_CompSim
Jenkins Parameters
|
…form Signed-off-by: Ernesto Prudencio <[email protected]>
|
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_CompSim
Jenkins Parameters
Using Repos:
Pull Request Author: eeprude |
…form Signed-off-by: Ernesto Prudencio <[email protected]>
|
Status Flag 'Pull Request AutoTester' - Error: Jenkins Jobs - A user has pushed a change to the PR before testing completed. NEW EVENT 'committed', ID C_kwDOAsJyMdoAKDljNDhhZjkwNTlmYTE5ZmEwMDZiODA5YzRkNjU4ODk0NTdhYTEyMTY... The Jenkins Jobs will be shutdown; Testing of this PR must occur again. |
|
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_CompSim
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_CompSim
Jenkins Parameters
Using Repos:
Pull Request Author: eeprude |
|
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_CompSim
Jenkins Parameters
|
|
This pull request has been replaced by PR #14580 |
@trilinos/
Motivation
The RebalanceTransform is usually used as part of the sequence of 4 transforms, in the following order:
1- SingletonTransform (which will be available in Tpetra soon)
2- SolverMapTransform (which will be avaiable in Tpetra soon as well, per merge request #14279)
3- ReindexTransform (which will be avaiable in Tpetra soon as well, per merge request #14424)
4- RebalanceTransfrom (this merge request).
This new rebalance transform:
Related Issues
14439Stakeholder Feedback
Testing
There is already an example in trilinoscouplings/examples/tpetra/Tpetra_Zoltan2_LPTrans_Ex.cpp that shows how to combine Tpetra and Zoltan2. This pull request implements the new Tpetra transform and uses it in the example.