]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESH/SMESH_ParallelMesh.hxx
Salome HOME
Revert "Adding Multinode method for smesh parallelism + cleanup and doc"
[modules/smesh.git] / src / SMESH / SMESH_ParallelMesh.hxx
index 3241a522baec53b55f547a53f3a1fbb2972b19fd..2fff4e3b4f8d6babe9c893ef0480e9db702401a8 100644 (file)
 
 #include "SMESH_Mesh.hxx"
 
-#ifndef WIN32
-#include <boost/asio.hpp>
-#endif
-
 #include "SMESH_Gen.hxx"
 #include "SMESH_subMesh.hxx"
 
-enum ParallelismMethod {MultiThread, MultiNode};
-
 class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
 {
  public:
@@ -48,51 +42,42 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
 
   virtual ~SMESH_ParallelMesh();
 
-  // Locking mechanism
+#ifndef WIN32
   void Lock() override {_my_lock.lock();};
   void Unlock() override {_my_lock.unlock();};
-  // We need to recreate the pool afterthe join
-  void wait() override {_pool->join(); DeletePoolThreads(); InitPoolThreads(); };
 
-  // Thread Pool
-  void InitPoolThreads() {_pool = new boost::asio::thread_pool(GetPoolNbThreads());};
-  void DeletePoolThreads() {delete _pool;};
-  boost::asio::thread_pool* GetPool() {return _pool;};
-  int GetPoolNbThreads();
+  int GetNbThreads() override{return _NbThreads;};
+  void SetNbThreads(long nbThreads) override{_NbThreads=nbThreads;};
 
-  // Temporary folder
-  void CreateTmpFolder();
-  void DeleteTmpFolder();
-  boost::filesystem::path GetTmpFolder() {return tmp_folder;};
+  void InitPoolThreads() override {_pool = new boost::asio::thread_pool(_NbThreads);};
+  void DeletePoolThreads() override {delete _pool;};
 
-  //
-  bool IsParallel() override {return true;};
+  void wait() override {_pool->join(); DeletePoolThreads(); InitPoolThreads(); };
 
-  // Parallelims paramaters
-  int GetParallelismMethod() {return _method;};
-  void SetParallelismMethod(int aMethod) {_method = aMethod;};
+  bool IsParallel() override {return _NbThreads > 0;};
 
-  // Mutlithreading parameters
-  int GetNbThreads() {return _NbThreads;};
-  void SetNbThreads(long nbThreads);
+  void CreateTmpFolder();
+  void DeleteTmpFolder();
 
-  // Multinode parameters
-  std::string GetResource() {return _resource;};
-  void SetResource(std::string aResource) {_resource = aResource;};
+  boost::filesystem::path GetTmpFolder() override {return tmp_folder;};
+  boost::asio::thread_pool* GetPool() override {return _pool;};
+#else
+  void Lock() override {};
+  void Unlock() override {};
 
-  int GetNbProc() {return _nbProc;};
-  void SetNbProc(long nbProc) {_nbProc = nbProc;};
+  int GetNbThreads() override {return 0;};
+  void SetNbThreads(long nbThreads) {(void) nbThreads;};
 
-  int GetNbProcPerNode() {return _nbProcPerNode;};
-  void SetNbProcPerNode(long nbProcPerNodes) {_nbProcPerNode = nbProcPerNodes;};
+  void InitPoolThreads() override {};
+  void DeletePoolThreads() override {};
+  void wait() override {};
 
-  int GetNbNode() {return _nbNode;};
-  void SetNbNode(long nbNodes) {_nbNode = nbNodes;};
+  bool IsParallel() override {return false;};
 
-  std::string GetWcKey() {return _wcKey;};
-  void SetWcKey(std::string wcKey) {_wcKey = wcKey;};
+  void CreateTmpFolder();
+  void DeleteTmpFolder();
+#endif
 
-  // Parallel computation
   bool ComputeSubMeshes(
             SMESH_Gen* gen,
             SMESH_Mesh & aMesh,
@@ -109,22 +94,9 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
   SMESH_ParallelMesh():SMESH_Mesh() {};
   SMESH_ParallelMesh(const SMESH_ParallelMesh& aMesh):SMESH_Mesh(aMesh) {};
  private:
-  // Mutex for multhitreading write in SMESH_Mesh
 #ifndef WIN32
-  boost::mutex _my_lock;
-#endif
   boost::filesystem::path tmp_folder;
-  // thread pool for computation
-  boost::asio::thread_pool *     _pool = nullptr;
-
-  int _method = ParallelismMethod::MultiThread;
-
-  int _NbThreads = std::thread::hardware_concurrency();
-
-  int _nbProc = 1;
-  int _nbProcPerNode = 1;
-  int _nbNode = 1;
-  std::string _resource = "";
-  std::string _wcKey = "P11N0:SALOME";
+  boost::asio::thread_pool *     _pool = nullptr; //thread pool for computation
+#endif
 };
 #endif