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: Deprecate and remove DefaultPlatform, MpiPlatform, and SerialPlatform #3095

Closed
4 tasks done
mhoemmen opened this issue Jul 11, 2018 · 1 comment
Closed
4 tasks done

Comments

@mhoemmen
Copy link
Contributor

mhoemmen commented Jul 11, 2018

@trilinos/tpetra

Expectations

Tpetra should have a single source for initialization and for default values of template parameters.

Motivation and Context

Tpetra::DefaultPlatform is a hold-over from an old Tpetra initialization model that included something called HybridPlatform. Tpetra now has different plans for truly hybrid (e.g., GPU + CPU concurrently) parallelism, that the "platform" concept would not support. Furthermore, Platform is tied to Node, but we want to get rid of Node (#57).

Definition of Done

  • Replace all use of Tpetra::DefaultPlatform to initialize Tpetra with Tpetra::ScopeGuard
  • Replace all use of Tpetra::DefaultPlatform::DefaultPlatformType::NodeType with Tpetra::Map<>::node_type
  • Deprecate Tpetra::DefaultPlatform, Tpetra::MpiPlatform, and Tpetra::SerialPlatform
  • Remove Tpetra::DefaultPlatform, Tpetra::MpiPlatform, and Tpetra::SerialPlatform

Related Issues

@mhoemmen
Copy link
Contributor Author

I would like to clarify my comment here that "Tpetra::*Platform is the last left-over of an idea for hybrid parallelism that likely would have been better served by MPI intercommunicators." What I meant is that HybridPlatform assigned different kinds of thread parallelism to different MPI processes within the same MPI communicator. This makes load balancing harder and doesn't address the issue that a single MPI process may have access to different thread-parallel hardware resources. One could achieve the goal of HybridPlatform by creating different MPI communicators for different kinds of hardware resources, and possibly joining them via intercommunicators.

mhoemmen pushed a commit that referenced this issue Jul 18, 2018
@trilinos/zoltan2 @trilinos/tpetra

This is part of #3095.  Tpetra::*Platform (where * is Default, Mpi,
and Serial) will be deprecated and removed.  This commit removes use
of these classes and their header files from Zoltan2.
mhoemmen pushed a commit that referenced this issue Jul 18, 2018
@trilinos/muelu @trilinos/galeri @trilinos/tpetra

This is part of #3095.
mhoemmen pushed a commit that referenced this issue Jul 18, 2018
@trilinos/shylu @trilinos/tpetra

This is part of #3095.  I also took the liberty of removing a "using
namespace std;" from the global scope of an example.
mhoemmen pushed a commit that referenced this issue Jul 18, 2018
@trilinos/trilinoscouplings @trilinos/tpetra

This is part of #3095.
mhoemmen pushed a commit that referenced this issue Jul 20, 2018
@trilinos/tpetra

This is part of #3095.  Deprecate Tpetra::DefaultPlatform,
Tpetra::MpiPlatform, and Tpetra::SerialPlatform.
mhoemmen pushed a commit that referenced this issue Jul 24, 2018
@trilinos/panzer @trilinos/tpetra

This is part of #3095.
mhoemmen pushed a commit that referenced this issue Jul 26, 2018
@trilinos/stratimikos @trilinos/amesos2 @trilinos/tpetra

Purge use of the now deprecated Tpetra::DefaultPlatform (see #3095)
from Stratimikos, in particular Stratimikos' test for its Amesos2
adapter.
sayerhs added a commit to Exawind/nalu-wind that referenced this issue Aug 1, 2018
Addresses new warnings seen in nightly CDash testing (#14).
See trilinos/Trilinos#3095 for details.
tjfulle pushed a commit to tjfulle/Trilinos that referenced this issue Dec 6, 2018
@trilinos/stratimikos @trilinos/amesos2 @trilinos/tpetra

Purge use of the now deprecated Tpetra::DefaultPlatform (see trilinos#3095)
from Stratimikos, in particular Stratimikos' test for its Amesos2
adapter.
mhoemmen pushed a commit to mhoemmen/Trilinos that referenced this issue Mar 26, 2019
@trilinos/stratimikos @trilinos/tpetra

This change prepares for trilinos#3095, which will remove the long-deprecated
Tpetra::DefaultPlatform, Tpetra::MpiPlatform, and Tpetra::SerialPlatform
classes.

The Stratimikos LOWSFactory examples must not have built for years.  The
only have Makefile.in files, not CMakeLists.files, and they include
Tpetra header files that haven't existed since I started working on
Tpetra in 2010.  The Epetra examples haven't built since at least then
either, but they aren't hurting anything, so I left them alone.
trilinos-autotester added a commit that referenced this issue Mar 26, 2019
Automatically Merged using Trilinos Pull Request AutoTester
PR Title: Tpetra: Fix #3095 (remove deprecated *Platform)
PR Author: mhoemmen
gdeskos pushed a commit to gdeskos/nalu-wind that referenced this issue Dec 19, 2019
Addresses new warnings seen in nightly CDash testing (Exawind#14).
See trilinos/Trilinos#3095 for details.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant