Serialization work

This commit is contained in:
Noah L. Schrick 2021-12-04 21:51:15 -06:00
parent 9a15ef3c7a
commit e93a940e80
27 changed files with 708 additions and 1765931 deletions

View File

@ -45,7 +45,9 @@ find_package(OpenMP)
find_package(BISON 2.4 REQUIRED)
find_package(FLEX REQUIRED)
find_package(Boost REQUIRED)
find_package(Boost REQUIRED serialization graph)
include_directories(${Boost_INCLUDE_DIR})
find_package(OpenSSL)
find_package(Doxygen)
@ -75,6 +77,7 @@ include_directories("${CMAKE_SOURCE_DIR}/src/")
file(GLOB ag_gen_src "${CMAKE_SOURCE_DIR}/src/ag_gen/*.cpp")
file(GLOB utils_src "${CMAKE_SOURCE_DIR}/src/util/*.c" "${CMAKE_SOURCE_DIR}/src/util/*.cpp")
file(GLOB mpi_src "${CMAKE_SOURCE_DIR}/src/mpi/*.c" "${CMAKE_SOURCE_DIR}/src/mpi/*.cpp")
########################
### Network Model Parser
@ -122,13 +125,19 @@ ADD_FLEX_BISON_DEPENDENCY(xp_scanner xp_parser)
add_executable(ag_gen "${CMAKE_SOURCE_DIR}/src/main.cpp"
${FLEX_nm_scanner_OUTPUTS} ${BISON_nm_parser_OUTPUTS}
${FLEX_xp_scanner_OUTPUTS} ${BISON_xp_parser_OUTPUTS}
${ag_gen_src} ${utils_src})
target_link_libraries(ag_gen ${PostgreSQL_LIBRARIES})
${ag_gen_src} ${utils_src} ${mpi_src})
target_link_libraries(ag_gen ${PostgreSQL_LIBRARIES} Boost::serialization)
add_executable(decode "${CMAKE_SOURCE_DIR}/src/tools/decode.cpp"
${ag_gen_src} ${utils_src})
target_link_libraries(decode ${PostgreSQL_LIBRARIES})
#add_executable(serialize "${CMAKE_SOURCE_DIR}/src/tests/serialize.cpp"
# ${FLEX_nm_scanner_OUTPUTS} ${BISON_nm_parser_OUTPUTS}
# ${FLEX_xp_scanner_OUTPUTS} ${BISON_xp_parser_OUTPUTS}
# ${ag_gen_src} ${utils_src})
#target_link_libraries(serialize ${PostgreSQL_LIBRARIES} Boost::serialization)
if(CPPREDIS_FOUND)
#include_directories("${CPPREDIS_INCLUDE_DIRS}")
link_directories("${CPPREDIS_LIBRARY_DIRS}")
@ -137,6 +146,7 @@ if(CPPREDIS_FOUND)
target_link_libraries(ag_gen cpp_redis tacopie)
target_link_libraries(decode cpp_redis tacopie)
#target_link_libraries(serialize cpp_redis tacopie)
endif()
################

View File

@ -7,572 +7,16 @@ digraph G {
5;
6;
7;
8;
9;
10;
11;
12;
13;
14;
15;
16;
17;
18;
19;
20;
21;
22;
23;
24;
25;
26;
27;
28;
29;
30;
31;
32;
33;
34;
35;
36;
37;
38;
39;
40;
41;
42;
43;
44;
45;
46;
47;
48;
49;
50;
51;
52;
53;
54;
55;
56;
57;
58;
59;
60;
61;
62;
63;
64;
65;
66;
67;
68;
69;
70;
71;
72;
73;
74;
75;
76;
77;
78;
79;
80;
81;
82;
83;
84;
85;
86;
87;
88;
89;
90;
91;
92;
93;
94;
95;
96;
97;
98;
99;
100;
101;
102;
103;
104;
105;
106;
107;
108;
109;
110;
111;
112;
113;
114;
115;
116;
117;
118;
119;
120;
121;
122;
123;
124;
125;
126;
127;
0->1 [label=0];
0->2 [label=0];
0->3 [label=1];
0->4 [label=1];
0->5 [label=2];
0->6 [label=2];
0->7 [label=3];
1->8 [label=0];
1->9 [label=1];
1->10 [label=1];
1->11 [label=2];
1->12 [label=2];
1->13 [label=3];
2->8 [label=0];
2->14 [label=1];
2->15 [label=1];
2->16 [label=2];
2->17 [label=2];
2->18 [label=3];
3->9 [label=0];
3->14 [label=0];
3->19 [label=1];
3->20 [label=2];
3->21 [label=2];
3->22 [label=3];
4->10 [label=0];
4->15 [label=0];
4->19 [label=1];
4->23 [label=2];
4->24 [label=2];
4->25 [label=3];
5->11 [label=0];
5->16 [label=0];
5->20 [label=1];
5->23 [label=1];
5->26 [label=2];
5->27 [label=3];
6->12 [label=0];
6->17 [label=0];
6->21 [label=1];
6->24 [label=1];
6->26 [label=2];
6->28 [label=3];
7->13 [label=0];
7->18 [label=0];
7->22 [label=1];
7->25 [label=1];
7->27 [label=2];
7->28 [label=2];
8->29 [label=1];
8->30 [label=1];
8->31 [label=2];
8->32 [label=2];
8->33 [label=3];
9->29 [label=0];
9->34 [label=1];
9->35 [label=2];
9->36 [label=2];
9->37 [label=3];
10->30 [label=0];
10->34 [label=1];
10->38 [label=2];
10->39 [label=2];
10->40 [label=3];
11->31 [label=0];
11->35 [label=1];
11->38 [label=1];
11->41 [label=2];
11->42 [label=3];
12->32 [label=0];
12->36 [label=1];
12->39 [label=1];
12->41 [label=2];
12->43 [label=3];
13->33 [label=0];
13->37 [label=1];
13->40 [label=1];
13->42 [label=2];
13->43 [label=2];
14->29 [label=0];
14->44 [label=1];
14->45 [label=2];
14->46 [label=2];
14->47 [label=3];
15->30 [label=0];
15->44 [label=1];
15->48 [label=2];
15->49 [label=2];
15->50 [label=3];
16->31 [label=0];
16->45 [label=1];
16->48 [label=1];
16->51 [label=2];
16->52 [label=3];
17->32 [label=0];
17->46 [label=1];
17->49 [label=1];
17->51 [label=2];
17->53 [label=3];
18->33 [label=0];
18->47 [label=1];
18->50 [label=1];
18->52 [label=2];
18->53 [label=2];
19->34 [label=0];
19->44 [label=0];
19->54 [label=2];
19->55 [label=2];
19->56 [label=3];
20->35 [label=0];
20->45 [label=0];
20->54 [label=1];
20->57 [label=2];
20->58 [label=3];
21->36 [label=0];
21->46 [label=0];
21->55 [label=1];
21->57 [label=2];
21->59 [label=3];
22->37 [label=0];
22->47 [label=0];
22->56 [label=1];
22->58 [label=2];
22->59 [label=2];
23->38 [label=0];
23->48 [label=0];
23->54 [label=1];
23->60 [label=2];
23->61 [label=3];
24->39 [label=0];
24->49 [label=0];
24->55 [label=1];
24->60 [label=2];
24->62 [label=3];
25->40 [label=0];
25->50 [label=0];
25->56 [label=1];
25->61 [label=2];
25->62 [label=2];
26->41 [label=0];
26->51 [label=0];
26->57 [label=1];
26->60 [label=1];
26->63 [label=3];
27->42 [label=0];
27->52 [label=0];
27->58 [label=1];
27->61 [label=1];
27->63 [label=2];
28->43 [label=0];
28->53 [label=0];
28->59 [label=1];
28->62 [label=1];
28->63 [label=2];
29->64 [label=1];
29->65 [label=2];
29->66 [label=2];
29->67 [label=3];
30->64 [label=1];
30->68 [label=2];
30->69 [label=2];
30->70 [label=3];
31->65 [label=1];
31->68 [label=1];
31->71 [label=2];
31->72 [label=3];
32->66 [label=1];
32->69 [label=1];
32->71 [label=2];
32->73 [label=3];
33->67 [label=1];
33->70 [label=1];
33->72 [label=2];
33->73 [label=2];
34->64 [label=0];
34->74 [label=2];
34->75 [label=2];
34->76 [label=3];
35->65 [label=0];
35->74 [label=1];
35->77 [label=2];
35->78 [label=3];
36->66 [label=0];
36->75 [label=1];
36->77 [label=2];
36->79 [label=3];
37->67 [label=0];
37->76 [label=1];
37->78 [label=2];
37->79 [label=2];
38->68 [label=0];
38->74 [label=1];
38->80 [label=2];
38->81 [label=3];
39->69 [label=0];
39->75 [label=1];
39->80 [label=2];
39->82 [label=3];
40->70 [label=0];
40->76 [label=1];
40->81 [label=2];
40->82 [label=2];
41->71 [label=0];
41->77 [label=1];
41->80 [label=1];
41->83 [label=3];
42->72 [label=0];
42->78 [label=1];
42->81 [label=1];
42->83 [label=2];
43->73 [label=0];
43->79 [label=1];
43->82 [label=1];
43->83 [label=2];
44->64 [label=0];
44->84 [label=2];
44->85 [label=2];
44->86 [label=3];
45->65 [label=0];
45->84 [label=1];
45->87 [label=2];
45->88 [label=3];
46->66 [label=0];
46->85 [label=1];
46->87 [label=2];
46->89 [label=3];
47->67 [label=0];
47->86 [label=1];
47->88 [label=2];
47->89 [label=2];
48->68 [label=0];
48->84 [label=1];
48->90 [label=2];
48->91 [label=3];
49->69 [label=0];
49->85 [label=1];
49->90 [label=2];
49->92 [label=3];
50->70 [label=0];
50->86 [label=1];
50->91 [label=2];
50->92 [label=2];
51->71 [label=0];
51->87 [label=1];
51->90 [label=1];
51->93 [label=3];
52->72 [label=0];
52->88 [label=1];
52->91 [label=1];
52->93 [label=2];
53->73 [label=0];
53->89 [label=1];
53->92 [label=1];
53->93 [label=2];
54->74 [label=0];
54->84 [label=0];
54->94 [label=2];
54->95 [label=3];
55->75 [label=0];
55->85 [label=0];
55->94 [label=2];
55->96 [label=3];
56->76 [label=0];
56->86 [label=0];
56->95 [label=2];
56->96 [label=2];
57->77 [label=0];
57->87 [label=0];
57->94 [label=1];
57->97 [label=3];
58->78 [label=0];
58->88 [label=0];
58->95 [label=1];
58->97 [label=2];
59->79 [label=0];
59->89 [label=0];
59->96 [label=1];
59->97 [label=2];
60->80 [label=0];
60->90 [label=0];
60->94 [label=1];
60->98 [label=3];
61->81 [label=0];
61->91 [label=0];
61->95 [label=1];
61->98 [label=2];
62->82 [label=0];
62->92 [label=0];
62->96 [label=1];
62->98 [label=2];
63->83 [label=0];
63->93 [label=0];
63->97 [label=1];
63->98 [label=1];
64->99 [label=2];
64->100 [label=2];
64->101 [label=3];
65->99 [label=1];
65->102 [label=2];
65->103 [label=3];
66->100 [label=1];
66->102 [label=2];
66->104 [label=3];
67->101 [label=1];
67->103 [label=2];
67->104 [label=2];
68->99 [label=1];
68->105 [label=2];
68->106 [label=3];
69->100 [label=1];
69->105 [label=2];
69->107 [label=3];
70->101 [label=1];
70->106 [label=2];
70->107 [label=2];
71->102 [label=1];
71->105 [label=1];
71->108 [label=3];
72->103 [label=1];
72->106 [label=1];
72->108 [label=2];
73->104 [label=1];
73->107 [label=1];
73->108 [label=2];
74->99 [label=0];
74->109 [label=2];
74->110 [label=3];
75->100 [label=0];
75->109 [label=2];
75->111 [label=3];
76->101 [label=0];
76->110 [label=2];
76->111 [label=2];
77->102 [label=0];
77->109 [label=1];
77->112 [label=3];
78->103 [label=0];
78->110 [label=1];
78->112 [label=2];
79->104 [label=0];
79->111 [label=1];
79->112 [label=2];
80->105 [label=0];
80->109 [label=1];
80->113 [label=3];
81->106 [label=0];
81->110 [label=1];
81->113 [label=2];
82->107 [label=0];
82->111 [label=1];
82->113 [label=2];
83->108 [label=0];
83->112 [label=1];
83->113 [label=1];
84->99 [label=0];
84->114 [label=2];
84->115 [label=3];
85->100 [label=0];
85->114 [label=2];
85->116 [label=3];
86->101 [label=0];
86->115 [label=2];
86->116 [label=2];
87->102 [label=0];
87->114 [label=1];
87->117 [label=3];
88->103 [label=0];
88->115 [label=1];
88->117 [label=2];
89->104 [label=0];
89->116 [label=1];
89->117 [label=2];
90->105 [label=0];
90->114 [label=1];
90->118 [label=3];
91->106 [label=0];
91->115 [label=1];
91->118 [label=2];
92->107 [label=0];
92->116 [label=1];
92->118 [label=2];
93->108 [label=0];
93->117 [label=1];
93->118 [label=1];
94->109 [label=0];
94->114 [label=0];
94->119 [label=3];
95->110 [label=0];
95->115 [label=0];
95->119 [label=2];
96->111 [label=0];
96->116 [label=0];
96->119 [label=2];
97->112 [label=0];
97->117 [label=0];
97->119 [label=1];
98->113 [label=0];
98->118 [label=0];
98->119 [label=1];
99->120 [label=2];
99->121 [label=3];
100->120 [label=2];
100->122 [label=3];
101->121 [label=2];
101->122 [label=2];
102->120 [label=1];
102->123 [label=3];
103->121 [label=1];
103->123 [label=2];
104->122 [label=1];
104->123 [label=2];
105->120 [label=1];
105->124 [label=3];
106->121 [label=1];
106->124 [label=2];
107->122 [label=1];
107->124 [label=2];
108->123 [label=1];
108->124 [label=1];
109->120 [label=0];
109->125 [label=3];
110->121 [label=0];
110->125 [label=2];
111->122 [label=0];
111->125 [label=2];
112->123 [label=0];
112->125 [label=1];
113->124 [label=0];
113->125 [label=1];
114->120 [label=0];
114->126 [label=3];
115->121 [label=0];
115->126 [label=2];
116->122 [label=0];
116->126 [label=2];
117->123 [label=0];
117->126 [label=1];
118->124 [label=0];
118->126 [label=1];
119->125 [label=0];
119->126 [label=0];
120->127 [label=3];
121->127 [label=2];
122->127 [label=2];
123->127 [label=1];
124->127 [label=1];
125->127 [label=0];
126->127 [label=0];
0->2 [label=1];
0->3 [label=2];
1->4 [label=1];
1->5 [label=2];
2->4 [label=0];
2->6 [label=2];
3->5 [label=0];
3->6 [label=1];
4->7 [label=2];
5->7 [label=1];
6->7 [label=0];
}

View File

@ -483,6 +483,54 @@ src/main.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/main.cpp.s
.PHONY : src/main.cpp.s
src/mpi/serialize.o: src/mpi/serialize.cpp.o
.PHONY : src/mpi/serialize.o
# target to build an object file
src/mpi/serialize.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/mpi/serialize.cpp.o
.PHONY : src/mpi/serialize.cpp.o
src/mpi/serialize.i: src/mpi/serialize.cpp.i
.PHONY : src/mpi/serialize.i
# target to preprocess a source file
src/mpi/serialize.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/mpi/serialize.cpp.i
.PHONY : src/mpi/serialize.cpp.i
src/mpi/serialize.s: src/mpi/serialize.cpp.s
.PHONY : src/mpi/serialize.s
# target to generate assembly for a file
src/mpi/serialize.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/mpi/serialize.cpp.s
.PHONY : src/mpi/serialize.cpp.s
src/mpi/tasks.o: src/mpi/tasks.cpp.o
.PHONY : src/mpi/tasks.o
# target to build an object file
src/mpi/tasks.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/mpi/tasks.cpp.o
.PHONY : src/mpi/tasks.cpp.o
src/mpi/tasks.i: src/mpi/tasks.cpp.i
.PHONY : src/mpi/tasks.i
# target to preprocess a source file
src/mpi/tasks.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/mpi/tasks.cpp.i
.PHONY : src/mpi/tasks.cpp.i
src/mpi/tasks.s: src/mpi/tasks.cpp.s
.PHONY : src/mpi/tasks.s
# target to generate assembly for a file
src/mpi/tasks.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/mpi/tasks.cpp.s
.PHONY : src/mpi/tasks.cpp.s
src/tests/mem_test.o: src/tests/mem_test.c.o
.PHONY : src/tests/mem_test.o
@ -900,6 +948,12 @@ help:
@echo "... src/main.o"
@echo "... src/main.i"
@echo "... src/main.s"
@echo "... src/mpi/serialize.o"
@echo "... src/mpi/serialize.i"
@echo "... src/mpi/serialize.s"
@echo "... src/mpi/tasks.o"
@echo "... src/mpi/tasks.i"
@echo "... src/mpi/tasks.s"
@echo "... src/tests/mem_test.o"
@echo "... src/tests/mem_test.i"
@echo "... src/tests/mem_test.s"

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

View File

@ -111,122 +111,132 @@
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/main.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/main.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/main.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/main.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/main.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/nm_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_scanner.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/nm_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_scanner.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_scanner.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/nm_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_parser.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/nm_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_parser.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_parser.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/xp_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_scanner.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/xp_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_scanner.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_scanner.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/xp_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_parser.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/xp_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_parser.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_parser.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/ag_gen.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/ag_gen.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/ag_gen.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/ag_gen.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/ag_gen.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/asset.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/asset.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/asset.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/asset.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/asset.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/assetgroup.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/assetgroup.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/assetgroup.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/assetgroup.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/assetgroup.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/edge.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/edge.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/edge.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/edge.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/edge.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/exploit.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/exploit.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/exploit.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/exploit.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/exploit.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/factbase.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/factbase.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/factbase.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/factbase.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/factbase.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/network_state.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/network_state.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/network_state.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/network_state.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/network_state.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/quality.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/quality.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/quality.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/quality.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/quality.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/topology.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/topology.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/topology.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/topology.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/topology.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/avail_mem.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/avail_mem.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/avail_mem.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/avail_mem.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/avail_mem.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/build_sql.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/build_sql.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/build_sql.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/build_sql.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/build_sql.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/common.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/common.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/common.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/common.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/common.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/db_functions.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/db_functions.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/db_functions.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/db_functions.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/db_functions.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/hash.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/hash.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/hash.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/hash.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/hash.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/list.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/list.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/list.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/list.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/list.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/mem.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/mem.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/redis_manager.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/redis_manager.cpp\"",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/redis_manager.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/redis_manager.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/redis_manager.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/str_array.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/str_array.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/str_array.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/str_array.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/str_array.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/vector.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/vector.c\"",
"command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/vector.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/vector.c\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/vector.c"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/mpi/serialize.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/serialize.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/serialize.cpp"
},
{
"directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build",
"command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/mpi/tasks.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/tasks.cpp\"",
"file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/tasks.cpp"
}
]

Binary file not shown.

1
build/qualfile.txt Normal file
View File

@ -0,0 +1 @@
22 serialization::archive 19 0 0 0 0 0 0 0 8 0 0 0 0 12 brake_months 1 = 1 6 17 0 14 exhaust_months 1 = 2 12 17 0 11 ac_odometer 1 = 6 120000 17 0 6 engine 1 = 3 gas 17 0 9 brake_vio 1 = 5 false 17 0 11 exhaust_vio 1 = 5 false 17 0 6 ac_vio 1 = 5 false 17 0 14 compliance_vio 1 = 5 false 17 0 0 1 0 0 0 0 0 4 road 0 0 2

View File

@ -3,7 +3,7 @@ sudo -u postgres -i sh -c "createdb ag_gen ag_gen"
psql ag_gen < schema.sql
#./ag_gen -n ../car_examples/generic_timeline_maintenance.nm -x ../car_examples/tmp.xp -g DOTFILE.dot -t 1 -q 1
#./ag_gen -n ../car_examples/generic_maintenance.nm -x ../car_examples/generic_maintenance.xp -g DOTFILE.dot -t 1 -q 1
./ag_gen -n ../fpga_examples/Network_5/car_network5.nm -x ../fpga_examples/Network_5/car_network5.xp -g DOTFILE.dot -t 1 -q 1 -p -a .20
./ag_gen -n ../fpga_examples/Network_1/car_network1.nm -x ../fpga_examples/Network_1/car_network1.xp -g DOTFILE.dot -t 1 -q 1 -p -a .20
#./ag_gen -n ../car_examples/generic_timeline_maintenance.nm -x ../car_examples/sync_timeline_maintenance.xp -g DOTFILE.dot -t 1 -q 1
# python3 ../tools/color_code.py ../build/states.txt DOTFILE.dot new.dot

BIN
build/serialize Executable file

Binary file not shown.

11
build/serialize.sh Executable file
View File

@ -0,0 +1,11 @@
sudo -u postgres -i sh -c "dropdb ag_gen" || true
sudo -u postgres -i sh -c "createdb ag_gen ag_gen"
psql ag_gen < schema.sql
#./ag_gen -n ../car_examples/generic_timeline_maintenance.nm -x ../car_examples/tmp.xp -g DOTFILE.dot -t 1 -q 1
#./ag_gen -n ../car_examples/generic_maintenance.nm -x ../car_examples/generic_maintenance.xp -g DOTFILE.dot -t 1 -q 1
./serialize -n ../fpga_examples/Network_5/car_network5.nm -x ../fpga_examples/Network_5/car_network5.xp -g DOTFILE.dot -t 1 -q 1 -p -a .20
#./ag_gen -n ../car_examples/generic_timeline_maintenance.nm -x ../car_examples/sync_timeline_maintenance.xp -g DOTFILE.dot -t 1 -q 1
# python3 ../tools/color_code.py ../build/states.txt DOTFILE.dot new.dot
#dot -Tsvg new.dot > ag.svg
dot -Tsvg DOTFILE.dot > ag.svg

File diff suppressed because it is too large Load Diff

View File

@ -12,15 +12,16 @@ if [[ $OS = 'darwin' ]]; then
fi
elif [[ $OS = 'linux' ]]; then
if hash pacman 2>/dev/null; then
sudo pacman -S cmake postgresql boost cppcheck clang doxygen graphviz libconfig
sudo pacman -S cmake postgresql boost cppcheck clang doxygen graphviz libconfig openmpi
elif hash apt-get 2>/dev/null; then
sudo apt-get -y install libboost-graph-dev postgresql postgresql-contrib \
libpq-dev cppcheck clang valgrind doxygen graphviz cmake \
build-essential bison flex libssl-dev libconfig++-dev libyaml-cpp-dev
build-essential bison flex libssl-dev libconfig++-dev libyaml-cpp-dev \
openmpi
elif hash yum 2>/dev/null; then
sudo yum install cmake epel-release postgresql-devel boost-devel \
openssl-devel graphviz-devel bison-devel flex-devel cppcheck valgrind \
tbb libconfig-devel
tbb libconfig-devel openmpi
else
echo "Your distro is currently not supported."
fi

View File

@ -16,6 +16,7 @@
#include "../util/odometer.h"
#include "../util/db_functions.h"
#include "../util/avail_mem.h"
#include "../mpi/tasks.h"
#ifdef REDIS

View File

@ -26,6 +26,11 @@ Factbase::Factbase(std::vector<Quality> q, std::vector<Topology> t)
id = 0;
}
Factbase::Factbase()
{
}
/**
* @brief Increments the current ID.
*/

View File

@ -5,6 +5,18 @@
#include <functional>
#include <vector>
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/assume_abstract.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/is_bitwise_serializable.hpp>
#include "quality.h"
#include "topology.h"
@ -18,7 +30,13 @@ class NetworkState;
class Factbase {
static int current_id;
friend std::ostream & operator << (std::ostream &os, const Factbase &fb);
friend class boost::serialization::access;
int id;
int qsize;
int tsize;
std::vector<Quality> qualities;
std::vector<Topology> topologies;
@ -26,8 +44,17 @@ class Factbase {
friend class NetworkState;
template<class Archive>
void serialize(Archive &ar, const unsigned int /* file_version */){
ar & id;
ar & qualities;
ar & topologies;
}
public:
Factbase();
std::tuple<std::vector<Quality>, std::vector<Topology>> get_facts_tuple() const;
bool find_quality(Quality &q) const;
@ -50,4 +77,6 @@ class Factbase {
int get_size();
};
BOOST_SERIALIZATION_ASSUME_ABSTRACT(Factbase)
#endif

View File

@ -27,6 +27,11 @@ NetworkState::NetworkState(std::vector<Quality> q, std::vector<Topology> t)
*/
NetworkState::NetworkState(const NetworkState &ns) = default;
NetworkState::NetworkState()
{
//: Factbase()
}
/**
* @brief Sets the ID of the Factbase
*/

View File

@ -10,6 +10,18 @@
#include "quality.h"
#include "topology.h"
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/assume_abstract.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/is_bitwise_serializable.hpp>
#include "../util/keyvalue.h"
#include "../util/redis_manager.h"
@ -25,9 +37,18 @@ class NetworkState {
Factbase factbase;
friend class Factbase;
friend std::ostream & operator << (std::ostream &os, const NetworkState &nsb);
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version){
ar & factbase;
}
public:
NetworkState(std::vector<Quality> q, std::vector<Topology> t);
NetworkState(const NetworkState &ns);
NetworkState();
const Factbase &get_factbase() const;
size_t get_hash(Keyvalue &factlist) const;
@ -51,4 +72,6 @@ class NetworkState {
void delete_topology(Topology &t);
};
BOOST_SERIALIZATION_ASSUME_ABSTRACT(NetworkState)
#endif

View File

@ -24,6 +24,11 @@
Quality::Quality(int asset, std::string qualName, std::string o, std::string qualValue, Keyvalue &facts)
: asset_id(asset), name(std::move(qualName)), op(std::move(o)), value(std::move(qualValue)), encoded((size_t)facts.size()) {}
Quality::Quality()
{
}
int Quality::get_asset_id() const { return asset_id; }
/**

View File

@ -7,8 +7,23 @@
#include <string>
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/assume_abstract.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/is_bitwise_serializable.hpp>
#include "../util/keyvalue.h"
//EncodedQuality is a POD: can leverage bitwise serialization
union EncodedQuality {
struct {
int asset_id : 16;
@ -19,6 +34,8 @@ union EncodedQuality {
size_t enc;
};
BOOST_IS_BITWISE_SERIALIZABLE(EncodedQuality)
/**
* @brief Holds information about a Quality and a parameter number.
*/
@ -44,6 +61,10 @@ using PostconditionQuality = std::tuple<ParameterizedQuality, std::string>;
* @brief Holds information for the Quality
*/
class Quality {
friend std::ostream & operator << (std::ostream &os, const Quality &ql);
friend class boost::serialization::access;
int asset_id;
std::string name;
std::string op;
@ -55,9 +76,15 @@ class Quality {
friend class Factbase;
template<class Archive>
void serialize(Archive &ar, const unsigned int /* file_version */){
ar & asset_id & name & op & value & encoded;
}
public:
Quality(int assetId, std::string qualName, std::string op,
std::string qualValue, Keyvalue &facts);
Quality();
int get_asset_id() const;
std::string get_name() const;
@ -77,6 +104,7 @@ class Quality {
bool operator>(const Quality &rhs) const;
bool operator>=(const Quality &rhs) const;
bool operator<=(const Quality &rhs) const;
};
#endif // AG_GEN_QUALITY_H

View File

@ -18,6 +18,11 @@ Topology::Topology(int f_asset, int t_asset, DIRECTION_T dir, std::string proper
: from_asset_id(f_asset), to_asset_id(t_asset), property(move(property)),
op(move(op)), value(move(val)), dir(std::move(dir)), encoded(encode(facts).enc) {}
Topology::Topology()
{
}
/**
* @return The From Asset ID
*/

View File

@ -3,6 +3,17 @@
#include <string>
#include <vector>
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/assume_abstract.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/is_bitwise_serializable.hpp>
#include "../util/keyvalue.h"
@ -25,6 +36,9 @@ union EncodedTopology {
size_t enc;
};
BOOST_IS_BITWISE_SERIALIZABLE(EncodedTopology)
struct ParameterizedTopology {
int from_param;
int to_param;
@ -56,6 +70,10 @@ using PostconditionTopology = std::tuple<ParameterizedTopology, std::string>;
* @brief Holds information for the Topology
*/
class Topology {
friend std::ostream & operator << (std::ostream &os, const Topology &tl);
friend class boost::serialization::access;
int from_asset_id;
int to_asset_id;
std::string property;
@ -69,9 +87,15 @@ class Topology {
friend class Factbase;
template<class Archive>
void serialize(Archive &ar, const unsigned int /* file_version */){
ar & from_asset_id & to_asset_id & property & op & value & dir;
}
public:
Topology(int f_asset, int t_asset, DIRECTION_T dir, std::string property,
std::string op, std::string val, Keyvalue &facts);
Topology();
int get_from_asset_id() const;
int get_to_asset_id() const;

View File

@ -32,6 +32,7 @@
#include "util/hash.h"
#include "util/list.h"
#include "util/mem.h"
#include "mpi/serialize.h"
#ifdef REDIS
#include "util/redis_manager.h"
@ -624,9 +625,16 @@ int main(int argc, char *argv[]) {
AGGenInstance postinstance;
//Serialization Unit Testing on Initial Data
//serialization_unit_testing(_instance);
std::cout << "Generating Attack Graph: " << std::flush;
AGGen gen(_instance);//use AGGen class to instantiate an obj with the name gen! _instance obj as the parameter! constructor defined in ag_gen.cpp
postinstance = gen.generate(batch_process, batch_size, thread_count, init_qsize, alpha); //The method call to generate the attack graph, defined in ag_gen.cpp.
//Serialization Unit Testing on Postinstance Data
serialization_unit_testing(postinstance);
std::cout << "Done\n";
//std::cout << "# of edges " <<postinstance.edges.size()<<std::endl;

316
src/mpi/serialize.cpp Normal file
View File

@ -0,0 +1,316 @@
//! main.cpp contains the main fuction that runs the program including flag
//! handling and calls to functions that access the database and generate the
//! attack graph.
//!
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include "../ag_gen/asset.h"
#include "../ag_gen/assetgroup.h"
#include "../ag_gen/edge.h"
#include "../ag_gen/exploit.h"
#include "../ag_gen/factbase.h"
#include "../ag_gen/network_state.h"
#include "../ag_gen/ag_gen.h"
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/properties.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>
#include <boost/graph/visitors.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/assume_abstract.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/is_bitwise_serializable.hpp>
void save_quality(const Quality &q, const char * filename){
std::ofstream ofs(filename);
boost::archive::text_oarchive oa(ofs);
oa << q;
}
void restore_quality(Quality &q, const char * filename){
std::ifstream ifs(filename);
boost::archive::text_iarchive ia(ifs);
ia >> q;
}
int quality_check(Quality &q1, Quality &q2){
if (q1.get_asset_id() == q2.get_asset_id() &&
q1.get_name() == q2.get_name() &&
q1.get_op() == q2.get_op() &&
q1.get_value() == q2.get_value())
{
return 1;
}
else return 0;
}
void save_topology(const Topology &t, const char * filename){
std::ofstream ofs(filename);
boost::archive::text_oarchive oa(ofs);
oa << t;
}
void restore_topology(Topology &t, const char * filename){
std::ifstream ifs(filename);
boost::archive::text_iarchive ia(ifs);
ia >> t;
}
int topology_check(Topology &t1, Topology &t2){
if (t1.get_from_asset_id() == t2.get_from_asset_id() &&
t1.get_to_asset_id() == t2.get_to_asset_id() &&
t1.get_dir() == t2.get_dir() &&
t1.get_property() == t2.get_property() &&
t1.get_op() == t2.get_op() &&
t1.get_value() == t2.get_value())
{
return 1;
}
else return 0;
}
void save_factbase(const Factbase &fb, const char * filename){
std::ofstream ofs(filename);
boost::archive::text_oarchive oa(ofs);
oa << fb;
}
void restore_factbase(Factbase &fb, const char * filename){
std::ifstream ifs(filename);
boost::archive::text_iarchive ia(ifs);
ia >> fb;
}
int factbase_check(Factbase &fb1, Factbase &fb2){
int qual_count = 0;
int qual_corr = 0;
int topo_count = 0;
int topo_corr = 0;
auto fb1_tuple = fb1.get_facts_tuple();
auto fb1_quals = std::get<0>(fb1_tuple);
auto fb1_topos = std::get<1>(fb1_tuple);
auto fb2_tuple = fb2.get_facts_tuple();
auto fb2_quals = std::get<0>(fb2_tuple);
auto fb2_topos = std::get<1>(fb2_tuple);
auto itq1 = fb1_quals.begin();
auto itq2 = fb2_quals.begin();
auto itt1 = fb1_topos.begin();
auto itt2 = fb2_topos.begin();
while(itq1 != fb1_quals.end() || itq2 != fb2_quals.end())
{
qual_corr += quality_check(*itq1, *itq2);
qual_count++;
if(itq1 != fb1_quals.end())
++itq1;
if(itq2 != fb2_quals.end())
++itq2;
}
while(itt1 != fb1_topos.end() || itt2 != fb2_topos.end())
{
topo_corr += topology_check(*itt1, *itt2);
topo_count++;
if(itt1 != fb1_topos.end())
++itt1;
if(itt2 != fb2_topos.end())
++itt2;
}
if(fb1.get_id() == fb2.get_id() &&
qual_count == qual_corr &&
topo_count == topo_corr)
{
return 1;
}
else return 0;
}
void save_network_state(const NetworkState &ns, const char * filename){
std::ofstream ofs(filename);
boost::archive::text_oarchive oa(ofs);
oa << ns;
}
void restore_network_state(NetworkState &ns, const char * filename){
std::ifstream ifs(filename);
boost::archive::text_iarchive ia(ifs);
ia >> ns;
}
int network_state_check(NetworkState &ns1, NetworkState &ns2){
auto fb1 = ns1.get_factbase();
auto fb2 = ns2.get_factbase();
return factbase_check(fb1, fb2);
}
void serialization_unit_testing(AGGenInstance &instance){
printf("\n");
std::cout << "---------STARTING SERIALIZATION UNIT TESTING---------" << std::endl;
std::string filename(boost::archive::tmpdir());
filename += "/qualfile.txt";
auto init_quals = instance.initial_qualities;
auto init_topos = instance.initial_topologies;
NetworkState init_state(init_quals, init_topos);//instantiate an obj init_state with initial input
int e_flag = 0;
int qual_count = 0;
int qual_corr = 0;
int top_count = 0;
int top_corr = 0;
int fb_count = 0;
int fb_corr = 0;
int ns_count = 0;
int ns_corr = 0;
std::cout << "Performing Unit Testing on Quality Serialization." << std::endl;
for (auto qual : instance.initial_qualities)
{
//std::cout << "Orginial Quality:" << std::endl;
//qual.print();
//printf("\n");
save_quality(qual, filename.c_str());
Quality new_qual;
restore_quality(new_qual, filename.c_str());
//std::cout << "Quality after restoring from serialization:" << std::endl;
//new_qual.print();
//std::cout << "-------------------------------------------" << std::endl;
//printf("\n");
qual_count++;
qual_corr += quality_check(qual, new_qual);
}
std::cout << "Quality Unit Testing: " << std::to_string(qual_corr) << "/" << std::to_string(qual_count) << std::endl;
printf("\n");
std::cout << "Performing Unit Testing on Topology Serialization." << std::endl;
for (auto topo : instance.initial_topologies)
{
//std::cout << "Original Topology: " << std::endl;
//topo.print();
save_topology(topo, filename.c_str());
Topology new_top;
restore_topology(new_top, filename.c_str());
//std::cout << "Topology after restoring from serialization:" << std::endl;
//new_top.print();
//std::cout << "-------------------------------------------" << std::endl;
//printf("\n");
top_count++;
top_corr += topology_check(topo, new_top);
}
std::cout << "Topology Unit Testing: " << std::to_string(top_corr) << "/" << std::to_string(top_count) << std::endl;
printf("\n");
std::cout << "Performing Unit Testing on Factbase Serialization." << std::endl;
for (auto fb : instance.factbases)
{
save_factbase(fb, filename.c_str());
Factbase new_fb;
restore_factbase(new_fb, filename.c_str());
fb_count++;
fb_corr += factbase_check(fb, new_fb);
}
std::cout << "Factbase Unit Testing: " << std::to_string(fb_corr) << "/" << std::to_string(fb_count) << std::endl;
printf("\n");
std::cout << "Performing Unit Testing on Network State Serialization." << std::endl;
save_network_state(init_state, filename.c_str());
NetworkState new_ns;
restore_network_state(new_ns, filename.c_str());
ns_count++;
ns_corr += network_state_check(init_state, new_ns);
std::cout << "Network State Unit Testing: " << std::to_string(ns_corr) << "/" << std::to_string(ns_count) << std::endl;
printf("\n");
if(qual_corr == qual_count)
{
std::cout << "100% Success Rate for Quality Serialization." << std::endl;
}
else{
std::cout << "Errors occurred in the Quality Serialization." << std::endl;
e_flag = 1;
}
if(top_corr == top_count)
{
std::cout << "100% Success Rate for Topology Serialization." << std::endl;
}
else{
std::cout << "Errors occurred in the Topology Serialization." << std::endl;
e_flag = 1;
}
if(fb_corr == fb_count)
{
std::cout << "100% Success Rate for Factbase Serialization." << std::endl;
}
else{
std::cout << "Errors occurred in the Factbase Serialization." << std::endl;
e_flag = 1;
}
if(ns_corr == ns_count)
{
std::cout << "100% Success Rate for Network State Serialization." << std::endl;
}
else{
std::cout << "Errors occurred in the Network State Serialization." << std::endl;
e_flag = 1;
}
if(e_flag == 1)
std::cout << "-------------ERRORS OCCURRED DURING SERIALIZATION UNIT TESTING---------------" << std::endl;
std::cout << "---------FINISHED SERIALIZATION UNIT TESTING---------" << std::endl;
printf("\n");
return;
}

15
src/mpi/serialize.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef SERIALIZE_H
#define SERIALIZE_H
void save_quality(const Quality &q, const char * filename);
void restore_quality(Quality &q, const char * filename);
int quality_check(Quality &q1, Quality &q2);
void save_topology(const Topology &t, const char * filename);
void restore_topology(Topology &t, const char * filename);
int topology_check(Topology &t1, Topology &t2);
void serialization_unit_testing(AGGenInstance &instance);
#endif //SERIALIZE_H

2
src/mpi/tasks.cpp Normal file
View File

@ -0,0 +1,2 @@
#include <boost/mpi.hpp>
#include <iostream>

0
src/mpi/tasks.h Normal file
View File