LAMA
|
00001 00034 #ifndef LAMA_MPI_COMMUNICATOR_MANAGER_HPP_ 00035 #define LAMA_MPI_COMMUNICATOR_MANAGER_HPP_ 00036 00037 #include <mpi.h> //Intel MPI need mpi.h to be included before stdio.h so this header comes first 00038 00039 // for dll_import 00040 #include <lama/config.hpp> 00041 00042 // base classes 00043 #include <lama/CommunicatorManager.hpp> 00044 00045 // others 00046 #include <lama/mpi/MPICommunicator.hpp> 00047 00048 // logging 00049 #include <logging/logging.hpp> 00050 00051 namespace lama 00052 { 00053 00060 class MPICommunicatorManager: public CommunicatorManager 00061 { 00062 00063 public: 00064 00065 virtual CommunicatorPtr getCommunicator( int& argc, char** & argv ); 00066 00067 virtual ~MPICommunicatorManager(); 00068 00069 private: 00070 00071 LAMA_LOG_DECL_STATIC_LOGGER(logger); 00072 00073 static bool __init; 00074 00075 static bool init(); 00076 00077 MPICommunicatorManager(); 00078 00083 boost::shared_ptr<const MPICommunicator> mCommInstance; 00084 }; 00085 00086 } 00087 00088 #endif // LAMA_MPI_COMMUNICATOR_MANAGER_HPP_