Browse Source

Changement gestion resultat

Loquicom 6 years ago
parent
commit
7aea4400c0
2 changed files with 32 additions and 9 deletions
  1. 24 9
      Partie_1/Hybride/GSATThreadMPI.cpp
  2. 8 0
      Partie_1/Hybride/GSATThreadMPI.hpp

+ 24 - 9
Partie_1/Hybride/GSATThreadMPI.cpp

@@ -69,8 +69,8 @@ void GSATThreadMPI::printResult() {
 	printf(YELLOW);
     printf("c real time : %.4f seconds\n", result.calcTime);
     printf("c [pid:%6d][process:%2d][thread:%2d][iteration:%4d][fill:%d][heuristic:%d]Satisfied clauses (begin: %d)(end:%d)\n",
-		getpid(),
-		world_rank,
+		result.pid,
+		result.rank,
 		result.threadId,
 		result.nbIteration,
 		result.heuristicFill,
@@ -81,6 +81,18 @@ void GSATThreadMPI::printResult() {
     fflush(stdout);
 }
 
+void GSATThreadMPI::setResult(int pid, int rank, int thread, double time, unsigned int nbIte, unsigned int heuriFill, unsigned int heuriSolve, unsigned int statisfFill, unsigned int satisfSolve) {
+	result.pid = pid;
+	result.rank = rank;
+	result.threadId = thread;
+	result.calcTime = time;
+	result.nbIteration = nbIte;
+	result.heuristicFill = heuriFill;
+	result.heuristicSolve = heuriSolve;
+	result.nbSatisfiedClausesFill = statisfFill;
+	result.nbSatisfiedClausesSolve = statisfFill;
+}
+
 /* --- Private --- */
 
 void GSATThreadMPI::solverThread(int id) {
@@ -115,13 +127,16 @@ void GSATThreadMPI::solverThread(int id) {
 		this->mpiNotify(world_rank);
 		this->end(true);
 		find = true;
-		result.threadId = id;
-		result.calcTime = gsat[id]->realTime() - startTime;
-		result.nbIteration = gsat[id]->getNbIterations();
-		result.heuristicFill = gsat[id]->getHeuristicFill();
-		result.heuristicSolve = gsat[id]->getHeuristicSolve();
-		result.nbSatisfiedClausesFill = gsat[id]->getNbSatisfiedClausesFill();
-		result.nbSatisfiedClausesSolve = gsat[id]->getNbSatisfiedClausesSolve();
+		this->setResult(
+			getpid(), 
+			world_rank, 
+			id, gsat[id]->realTime() - startTime, 
+			gsat[id]->getNbIterations(),
+			gsat[id]->getHeuristicFill(),
+			gsat[id]->getHeuristicSolve(),
+			gsat[id]->getNbSatisfiedClausesFill(),
+			gsat[id]->getNbSatisfiedClausesSolve()
+		);
 	}
 }
 

+ 8 - 0
Partie_1/Hybride/GSATThreadMPI.hpp

@@ -11,6 +11,8 @@
 
 /* --- Structure --- */
 typedef struct {
+	int pid;
+	int rank;
 	int threadId;
 	double calcTime;
 	unsigned int nbIteration;
@@ -24,13 +26,19 @@ class GSATThreadMPI {
 	public:
 		GSATThreadMPI(int, int, char**);
 		~GSATThreadMPI();
+
 		bool solve();
+
 		void end();
 		void end(bool);
+
 		void printResult();
+
 		/* --- Getter --- */
 		inline unsigned int getNbVariables() {return gsat[0]->getNbVariables();}
 		inline unsigned int getNbClauses() {return gsat[0]->getNbClauses();}
+		inline GSATResult getResult() {return result;}
+		void setResult(int, int, int, double, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
 
 	private:
 		bool bEnd;