Branch data Line data Source code
1 : : // ***************************************************************************** 2 : : /*! 3 : : \file src/Main/LBSwitch.hpp 4 : : \copyright 2012-2015 J. Bakosi, 5 : : 2016-2018 Los Alamos National Security, LLC., 6 : : 2019-2021 Triad National Security, LLC. 7 : : All rights reserved. See the LICENSE file for details. 8 : : \brief Charm++ chare group for switching on/off load balancing 9 : : \details Charm++ chare group for switching on/off load balancing. 10 : : */ 11 : : // ***************************************************************************** 12 : : #ifndef LBSwitch_h 13 : : #define LBSwitch_h 14 : : 15 : : #include "NoWarning/lbswitch.decl.h" 16 : : 17 : : namespace tk { 18 : : 19 : : //! Load balancer switch Charm++ chare group class 20 : : //! \details Instantiations of LBSwitch comprise a processor aware 21 : : //! Charm++ chare group. When instantiated, a new object is created on each 22 : : //! PE and not more (as opposed to individual chares or chare array object 23 : : //! elements). See also the Charm++ interface file lbswitch.ci. 24 : : class LBSwitch : public CBase_LBSwitch { 25 : : 26 : : public: 27 : : //! Constructor: turn on automatic load balancing 28 : : explicit LBSwitch(); 29 : : 30 : : #if defined(__clang__) 31 : : #pragma clang diagnostic push 32 : : #pragma clang diagnostic ignored "-Wundefined-func-template" 33 : : #endif 34 : : //! Migrate constructor 35 : 5 : explicit LBSwitch( CkMigrateMessage* m ) : CBase_LBSwitch( m ) {} 36 : : #if defined(__clang__) 37 : : #pragma clang diagnostic pop 38 : : #endif 39 : : 40 : : //! Turn off automatic load balancing 41 : : static void off(); 42 : : }; 43 : : 44 : : } // tk:: 45 : : 46 : : #endif // LBSwitch_h