From ac81aad5e6e3d9a1c2bb6c1e48010ecec79afa87 Mon Sep 17 00:00:00 2001 From: abid <chiheb.abid@gmail.com> Date: Tue, 11 Feb 2020 12:26:43 +0100 Subject: [PATCH] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20src/CMakeLists.txt=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20src/MCHybridSOG.cpp=20=09modifi=C3=A9=C2=A0:=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20src/ModelCheckLace.cpp=20=09modifi=C3=A9?= =?UTF-8?q?=C2=A0:=20=20=20=20=20=20=20=20=20src/main.cpp=20=09modifi?= =?UTF-8?q?=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20src/sylvan=5Fsog.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/.MCHybridSOG.h.kate-swp | Bin 0 -> 67 bytes src/CMakeLists.txt | 29 +++++++++++++++++++---------- src/MCHybridSOG.cpp | 9 +++------ src/ModelCheckLace.cpp | 18 ++++++++---------- src/main.cpp | 25 ++----------------------- src/sylvan_sog.c | 3 ++- 6 files changed, 34 insertions(+), 50 deletions(-) create mode 100644 src/.MCHybridSOG.h.kate-swp diff --git a/src/.MCHybridSOG.h.kate-swp b/src/.MCHybridSOG.h.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..a65057426854c2e2438dac15c8c74a0492744abb GIT binary patch literal 67 zcmZQzU=Z?7EJ;-eE>A2_aLdd|RWQ;sU|?VnSy!;$PTlh1i8FSq6_Z>lm<}%ZEf5^a Pz`zjT3Z_CKRIn=mk#7?0 literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2f27223..4231a5f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,16 +9,27 @@ include_directories(${MPI_INCLUDE_PATH}) find_package(OpenSSL) include_directories(${OPENSSL_INCLUDE_DIR}) -# include spot library -add_library(spot STATIC IMPORTED) -set_target_properties(spot PROPERTIES IMPORTED_LOCATION "${SPOT_DIR}/lib/libspot.a") +include_directories("${CMAKE_SOURCE_DIR}/third-party/sylvan/src") + + +add_library(spot SHARED IMPORTED) # or STATIC instead of SHARED +set_target_properties(spot PROPERTIES + IMPORTED_LOCATION "/usr/lib/x86_64-linux-gnu/libspot.so" + INTERFACE_INCLUDE_DIRECTORIES "/usr/include/spot/" +) + +add_library(bddx SHARED IMPORTED) # or STATIC instead of SHARED +set_target_properties(bddx PROPERTIES + IMPORTED_LOCATION "/usr/lib/x86_64-linux-gnu/libbddx.so" + INTERFACE_INCLUDE_DIRECTORIES "/usr/include/spot/" +) + + + -# include bddx library -add_library(bddx STATIC IMPORTED) -set_target_properties(bddx PROPERTIES IMPORTED_LOCATION "${SPOT_DIR}/lib/libbddx.a") # Hybrid SOG executable -add_executable(pmc-sog main.cpp +add_executable(hybrid-sog main.cpp NewNet.cpp NewNet.h CommonSOG.cpp @@ -69,7 +80,7 @@ add_executable(pmc-sog main.cpp HybridKripkeState.h ) -target_link_libraries(pmc-sog +target_link_libraries(hybrid-sog bddx spot sylvan @@ -77,5 +88,3 @@ target_link_libraries(pmc-sog ${MPI_LIBRARIES} ${OPENSSL_LIBRARIES} ) - -add_dependencies(pmc-sog SpotLibrary) diff --git a/src/MCHybridSOG.cpp b/src/MCHybridSOG.cpp index 1ed2bc9..c0d31b8 100644 --- a/src/MCHybridSOG.cpp +++ b/src/MCHybridSOG.cpp @@ -567,13 +567,10 @@ void MCHybridSOG::read_message() uint16_t id_p=i_agregate->getProcess(); memcpy(message+16,&id_p,2); MPI_Send(message,22,MPI_BYTE,m_status.MPI_SOURCE, TAG_ACK_INITIAL, MPI_COMM_WORLD); - break; - - - - default: cout<<"unknown received "<<m_status.MPI_TAG<<" by task "<<task_id<<endl; + break; + /*default: cout<<"unknown received "<<m_status.MPI_TAG<<" by task "<<task_id<<endl; //AbortTerm(); - break; + //break; */ } MPI_Iprobe(MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&flag,&m_status); diff --git a/src/ModelCheckLace.cpp b/src/ModelCheckLace.cpp index 2db8f3e..740269a 100644 --- a/src/ModelCheckLace.cpp +++ b/src/ModelCheckLace.cpp @@ -33,7 +33,7 @@ void ModelCheckLace::preConfigure() { print_h(max); printf(" max.\n"); LACE_ME; - sylvan_set_limits(max, 16, 2); + sylvan_set_limits(max, 16, 1); sylvan_init_package(); sylvan_init_ldd(); @@ -58,7 +58,7 @@ void ModelCheckLace::preConfigure() { cout<<(*it2).first<<" : "<<(*it2).second<<endl; }*/ //cout<<"Transitions observables :"<<endl; - Set::iterator it=m_observable.begin(); + //Set::iterator it=m_observable.begin(); /*for (; it!=m_observable.end(); it++) { cout<<*it<<" "; @@ -133,20 +133,16 @@ TASK_3 (MDD, Aggregate_epsilon_lace, MDD, From, Set*, nonObservable, vector<Tran { MDD M1; MDD M2=From; - int it=0; - /*lddmc_refs_pushptr(&M1); - lddmc_refs_pushptr(&M2);*/ - cout<<"worker "<<lace_get_worker()->worker<<endl; - + do { M1=M2; - for(Set::const_iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++) + for(Set::iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++) { lddmc_refs_spawn(SPAWN(lddmc_firing_lace,M2,(*tb_relation)[(*i)].getMinus(),(*tb_relation)[(*i)].getPlus())); } - for(Set::const_iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++) + for(Set::iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++) { lddmc_refs_push(M1); lddmc_refs_push(M2); @@ -155,6 +151,8 @@ TASK_3 (MDD, Aggregate_epsilon_lace, MDD, From, Set*, nonObservable, vector<Tran M2=lddmc_union(succ,M2); lddmc_refs_pop(3); } + cout<<"M1 :"<<M1<<endl; + cout<<"M2 :"<<M2<<endl; } while (M1!=M2); @@ -237,7 +235,7 @@ LDDState * ModelCheckLace::getInitialMetaState() // Compute successors unsigned int onb_it=0; Set::iterator iter=fire.begin(); - int j=0; + while(iter!=fire.end()) { diff --git a/src/main.cpp b/src/main.cpp index 0975099..eca2813 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -349,19 +349,8 @@ int main(int argc, char** argv) auto d = spot::make_bdd_dict(); spot::twa_graph_ptr af = spot::translator(d).run(not_f); - - /* spot::twa_graph_ptr k =spot::make_twa_graph(std::make_shared<HybridKripke>(d,Rnewnet.getListTransitionAP(),Rnewnet.getListPlaceAP(),Rnewnet),spot::twa::prop_set::all(), true); - cout<<"finished...."<<endl; - - - fstream file; - string st(argv[3]); - st+=".dot"; - file.open(st.c_str(),fstream::out); - spot::print_dot(file, k,"ka"); - file.close(); */ + double tps; - auto t1 = std::chrono::high_resolution_clock::now(); auto k = std::make_shared<HybridKripke>(d,Rnewnet.getListTransitionAP(),Rnewnet.getListPlaceAP(),Rnewnet); @@ -372,9 +361,7 @@ int main(int argc, char** argv) std::cout << "temps de verification " << std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count() << " milliseconds\n"; - cout<<"=================================="<<endl; - } else { @@ -385,27 +372,19 @@ int main(int argc, char** argv) << " milliseconds\n"; } - } - } - - } else - { - //cout<<" sequential version using Sylvan : 1 with BuDDy : 2 \n" <<endl; + { cout<<"*************Distibuted version******************* \n" <<endl; { DistributedSOG DR(Rnewnet, bound); LDDGraph g(nullptr); DR.computeDSOG(g); } - - } } - MPI_Finalize(); return (EXIT_SUCCESS); } diff --git a/src/sylvan_sog.c b/src/sylvan_sog.c index 152af82..80424bb 100644 --- a/src/sylvan_sog.c +++ b/src/sylvan_sog.c @@ -66,7 +66,8 @@ TASK_IMPL_3(MDD, lddmc_firing_lace, MDD, cmark, MDD, minus, MDD ,plus) { MDD left=lddmc_refs_sync(SYNC(lddmc_firing_lace)); lddmc_refs_push(left); MDD result2 = - lddmc_makenode(l_values[count],left, lddmc_false); + lddmc_makenode(l_values[count],left, lddmc_false); + if (l_values[count]>5) printf("%d ",l_values[count]); lddmc_refs_push(result2); result = lddmc_union( result, result2); lddmc_refs_pop(3); -- GitLab