diff --git a/simulator/arvix_sampling_in_mem_benchmark.csv b/simulator/arvix_sampling_in_mem_benchmark.csv new file mode 100644 index 00000000..a46cc3f1 --- /dev/null +++ b/simulator/arvix_sampling_in_mem_benchmark.csv @@ -0,0 +1,46 @@ +sampling_depth,percent_in_mem,mean_pages,std_dev_pages_loaded +1,0.5,6.49,8.48 +1,1.0,4.08,1.73 +1,1.5,4.08,1.74 +1,2.0,3.45,1.27 +1,2.5,3.45,1.28 +1,3.0,3.05,1.03 +1,3.5,3.05,1.03 +1,4.0,2.76,0.87 +1,4.5,2.76,0.89 +1,5.0,2.52,0.77 +1,10.0,1.76,0.49 +1,25.0,0.79,0.23 +1,50.0,0.2,0.1 +1,75.0,0.0,0.0 +1,100.0,0.0,0.0 +2,0.5,41.66,43.54 +2,1.0,19.72,10.5 +2,1.5,19.72,10.49 +2,2.0,14.27,6.5 +2,2.5,14.27,6.46 +2,3.0,11.41,4.6 +2,3.5,11.4,4.65 +2,4.0,9.47,3.65 +2,4.5,9.47,3.66 +2,5.0,8.08,3.0 +2,10.0,4.41,1.43 +2,25.0,1.32,0.44 +2,50.0,0.27,0.16 +2,75.0,0.0,0.0 +2,100.0,0.0,0.0 +3,0.5,130.11,100.33 +3,1.0,62.23,36.17 +3,1.5,62.23,36.18 +3,2.0,40.26,20.57 +3,2.5,40.24,20.71 +3,3.0,29.54,14.24 +3,3.5,29.52,14.25 +3,4.0,22.83,10.26 +3,4.5,22.83,10.28 +3,5.0,18.24,7.78 +3,10.0,7.88,2.97 +3,25.0,1.69,0.61 +3,50.0,0.24,0.2 +3,75.0,0.0,0.0 +3,100.0,0.0,0.0 diff --git a/simulator/arvix_sampling_in_mem_benchmark.png b/simulator/arvix_sampling_in_mem_benchmark.png new file mode 100644 index 00000000..86b481b6 Binary files /dev/null and b/simulator/arvix_sampling_in_mem_benchmark.png differ diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.json new file mode 100644 index 00000000..be573306 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 0.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.json new file mode 100644 index 00000000..0462646a --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 1.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.json new file mode 100644 index 00000000..b86fe549 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 1.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.json new file mode 100644 index 00000000..868d649f --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 100} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.json new file mode 100644 index 00000000..6c1a226f --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 10} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.json new file mode 100644 index 00000000..493586b9 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 2.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.json new file mode 100644 index 00000000..0870fdd6 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 2.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.json new file mode 100644 index 00000000..60e17a50 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 25} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.json new file mode 100644 index 00000000..3d89ab3a --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 3.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.json new file mode 100644 index 00000000..c3db9add --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 3.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.json new file mode 100644 index 00000000..058bc032 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 4.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.json new file mode 100644 index 00000000..665ddc48 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 4.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.json new file mode 100644 index 00000000..12ac872f --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 5.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.json new file mode 100644 index 00000000..d3103824 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 50} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.json new file mode 100644 index 00000000..2426b10b --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 1, "top_percent_in_mem": 75} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.json new file mode 100644 index 00000000..c9daa2c7 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 0.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.json new file mode 100644 index 00000000..51a6aee5 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 1.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.json new file mode 100644 index 00000000..57ef8e11 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 1.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.json new file mode 100644 index 00000000..32b61052 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 100} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.json new file mode 100644 index 00000000..b1848a54 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 10} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.json new file mode 100644 index 00000000..e7858c80 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 2.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.json new file mode 100644 index 00000000..79ee2a3c --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 2.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.json new file mode 100644 index 00000000..79f495d3 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 25} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.json new file mode 100644 index 00000000..e09c5b28 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 3.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.json new file mode 100644 index 00000000..f189d96a --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 3.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.json new file mode 100644 index 00000000..0b10d464 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 4.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.json new file mode 100644 index 00000000..8258c2b6 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 4.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.json new file mode 100644 index 00000000..217c7664 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 5.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.json new file mode 100644 index 00000000..2c06ec35 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 50} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.json new file mode 100644 index 00000000..fee9b681 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 2, "top_percent_in_mem": 75} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.json new file mode 100644 index 00000000..64daecc5 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 0.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.json new file mode 100644 index 00000000..f628aa1c --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 1.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.json new file mode 100644 index 00000000..024ee95d --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 1.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.json new file mode 100644 index 00000000..5858210e --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 100} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.json new file mode 100644 index 00000000..0a8f495e --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 10} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.json new file mode 100644 index 00000000..3e4a71e6 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 2.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.json new file mode 100644 index 00000000..215de54d --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 2.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.json new file mode 100644 index 00000000..a68a9f94 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 25} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.json new file mode 100644 index 00000000..fa866a62 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 3.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.json new file mode 100644 index 00000000..652e5a54 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 3.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.json new file mode 100644 index 00000000..c4097c4f --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 4.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.json new file mode 100644 index 00000000..65440a4f --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 4.5} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.json new file mode 100644 index 00000000..6f74863a --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 5.0} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.json new file mode 100644 index 00000000..eac0e0c9 --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 50} \ No newline at end of file diff --git a/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.json b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.json new file mode 100644 index 00000000..77b6d77d --- /dev/null +++ b/simulator/configs/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.json @@ -0,0 +1 @@ +{"dataset_name": "ogbn_arxiv", "features_stats": {"featurizer_type": "default", "page_size": "16.384 KB", "feature_dimension": 128, "feature_size": "float32"}, "batch_size": 25, "sampling_depth": 3, "top_percent_in_mem": 75} \ No newline at end of file diff --git a/simulator/configs/arvix_linear.json b/simulator/configs/arvix_linear.json old mode 100755 new mode 100644 index 3b1b1adf..ce49a166 --- a/simulator/configs/arvix_linear.json +++ b/simulator/configs/arvix_linear.json @@ -6,5 +6,6 @@ "feature_dimension" : 128, "feature_size" : "float32" }, - "sampling_depth" : 2 + "batch_size" : 10, + "sampling_depth" : 1 } \ No newline at end of file diff --git a/simulator/configs/arvix_metis.json b/simulator/configs/arvix_linear_2_hop.json old mode 100755 new mode 100644 similarity index 63% rename from simulator/configs/arvix_metis.json rename to simulator/configs/arvix_linear_2_hop.json index a30a4594..bb2a12fd --- a/simulator/configs/arvix_metis.json +++ b/simulator/configs/arvix_linear_2_hop.json @@ -1,9 +1,11 @@ { "dataset_name" : "ogbn_arxiv", "features_stats" : { - "featurizer_type" : "metis_partition", + "featurizer_type" : "default", "page_size" : "16.384 KB", "feature_dimension" : 128, "feature_size" : "float32" - } + }, + "batch_size" : 10, + "sampling_depth" : 2 } \ No newline at end of file diff --git a/simulator/configs/arvix_linear_2_hop_in_mem.json b/simulator/configs/arvix_linear_2_hop_in_mem.json new file mode 100644 index 00000000..2fab62d8 --- /dev/null +++ b/simulator/configs/arvix_linear_2_hop_in_mem.json @@ -0,0 +1,12 @@ +{ + "dataset_name" : "ogbn_arxiv", + "features_stats" : { + "featurizer_type" : "default", + "page_size" : "16.384 KB", + "feature_dimension" : 128, + "feature_size" : "float32" + }, + "batch_size" : 10, + "sampling_depth" : 2, + "top_percent_in_mem" : 1 +} \ No newline at end of file diff --git a/simulator/configs/arvix_neighbors.json b/simulator/configs/arvix_linear_3_hop.json old mode 100755 new mode 100644 similarity index 63% rename from simulator/configs/arvix_neighbors.json rename to simulator/configs/arvix_linear_3_hop.json index 9442d2ee..95195e06 --- a/simulator/configs/arvix_neighbors.json +++ b/simulator/configs/arvix_linear_3_hop.json @@ -1,9 +1,11 @@ { "dataset_name" : "ogbn_arxiv", "features_stats" : { - "featurizer_type" : "neighbors_nearby", + "featurizer_type" : "default", "page_size" : "16.384 KB", "feature_dimension" : 128, "feature_size" : "float32" - } + }, + "sampling_depth" : 3, + "batch_size" : 10 } \ No newline at end of file diff --git a/simulator/configs/arvix_linear_3_hop_5_in_mem.json b/simulator/configs/arvix_linear_3_hop_5_in_mem.json new file mode 100644 index 00000000..79011878 --- /dev/null +++ b/simulator/configs/arvix_linear_3_hop_5_in_mem.json @@ -0,0 +1,12 @@ +{ + "dataset_name" : "ogbn_arxiv", + "features_stats" : { + "featurizer_type" : "default", + "page_size" : "16.384 KB", + "feature_dimension" : 128, + "feature_size" : "float32" + }, + "sampling_depth" : 3, + "batch_size" : 10, + "top_percent_in_mem" : 5 +} \ No newline at end of file diff --git a/simulator/configs/arvix_linear_3_hop_in_mem.json b/simulator/configs/arvix_linear_3_hop_in_mem.json new file mode 100644 index 00000000..b4fd6720 --- /dev/null +++ b/simulator/configs/arvix_linear_3_hop_in_mem.json @@ -0,0 +1,12 @@ +{ + "dataset_name" : "ogbn_arxiv", + "features_stats" : { + "featurizer_type" : "default", + "page_size" : "16.384 KB", + "feature_dimension" : 128, + "feature_size" : "float32" + }, + "sampling_depth" : 3, + "batch_size" : 10, + "top_percent_in_mem" : 1 +} \ No newline at end of file diff --git a/simulator/configs/arvix_linear_in_mem.json b/simulator/configs/arvix_linear_in_mem.json index cce9a188..1fa3752d 100755 --- a/simulator/configs/arvix_linear_in_mem.json +++ b/simulator/configs/arvix_linear_in_mem.json @@ -6,5 +6,7 @@ "feature_dimension" : 128, "feature_size" : "float32" }, - "top_percent_in_mem" : 1 + "top_percent_in_mem" : 1, + "sampling_depth" : 1, + "batch_size" : 10 } \ No newline at end of file diff --git a/simulator/configs/arvix_random.json b/simulator/configs/arvix_random.json deleted file mode 100755 index ae7963ff..00000000 --- a/simulator/configs/arvix_random.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "dataset_name" : "ogbn_arxiv", - "features_stats" : { - "feature_layout" : "random", - "page_size" : "16 KB", - "feature_dimension" : 128, - "feature_size" : "float32" - } -} \ No newline at end of file diff --git a/simulator/configs/products_linear.json b/simulator/configs/products_linear.json index 00cd0968..ca4a30e8 100755 --- a/simulator/configs/products_linear.json +++ b/simulator/configs/products_linear.json @@ -7,5 +7,5 @@ "feature_size" : "float32" }, "sampling_depth" : 1, - "batch_size" : 11 + "batch_size" : 10 } \ No newline at end of file diff --git a/simulator/configs/products_linear_3_hop.json b/simulator/configs/products_linear_3_hop.json new file mode 100644 index 00000000..1cc991ea --- /dev/null +++ b/simulator/configs/products_linear_3_hop.json @@ -0,0 +1,12 @@ +{ + "dataset_name" : "ogbn_products", + "features_stats" : { + "featurizer_type" : "default", + "page_size" : "16.384 KB", + "feature_dimension" : 100, + "feature_size" : "float32" + }, + "sampling_depth" : 3, + "sample_percentage" : 0.25, + "batch_size" : 50 +} \ No newline at end of file diff --git a/simulator/images/arvix_linear_3_hop_5_in_mem.json b/simulator/images/arvix_linear_3_hop_5_in_mem.json new file mode 100644 index 00000000..072e81c8 --- /dev/null +++ b/simulator/images/arvix_linear_3_hop_5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 18.47, "Std dev of Pages Loaded": 12.77, "Batch Size": 10, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 5, "In Memory Space Used": "13.03 MB"} \ No newline at end of file diff --git a/simulator/images/arvix_linear_3_hop_5_in_mem.png b/simulator/images/arvix_linear_3_hop_5_in_mem.png new file mode 100644 index 00000000..cc766465 Binary files /dev/null and b/simulator/images/arvix_linear_3_hop_5_in_mem.png differ diff --git a/simulator/images/products_linear.png b/simulator/images/products_linear.png deleted file mode 100644 index c60af98c..00000000 Binary files a/simulator/images/products_linear.png and /dev/null differ diff --git a/simulator/main.py b/simulator/main.py index d4d7ea83..1c2519d6 100755 --- a/simulator/main.py +++ b/simulator/main.py @@ -4,6 +4,8 @@ import random import time import datetime +import traceback +import torch.multiprocessing as multiprocessing from src.dataset_loader import * from src.features_loader import * @@ -14,69 +16,136 @@ def read_config_file(config_file): with open(config_file, "r") as reader: return json.load(reader) - -def read_arguments(): - parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument("--config_file", type=str, help="The config file containing the details for the simulation") - parser.add_argument("--save_path", required=True, type=str, help="The path to save the resulting image to") - parser.add_argument("--graph_title", required=True, type=str, help="The title of the saved graph") - parser.add_argument("--sample_percentage", default = 50, type = int, help = "The percentage of batches to sample to generate CDF") - parser.add_argument("--log_rate", type=int, default=20, help="Log rate of the nodes processed") - return parser.parse_args() - -def main(): - start_time = time.time() - arguments = read_arguments() - config = read_config_file(arguments.config_file) - +def run_for_worker(i, arguments, results_queue): # Create the loaders + config = read_config_file(arguments.config_file) data_loader = DatasetLoader(config) features_loader = get_featurizer(data_loader, config["features_stats"]) sampler = SubgraphSampler(data_loader, features_loader, config) - # Determine the sample nodes - sample_percentage = arguments.sample_percentage + # Determine the chunk for the current workers + sample_percentage = 100 + if "sample_percentage" in config: + sample_percentage = float(config["sample_percentage"]) all_nodes = data_loader.get_nodes_sorted_by_incoming() - batch_size = int(config["batch_size"]) - all_nodes = all_nodes.reshape((-1, batch_size)) + total_nodes = all_nodes.shape[0] + chunk_start_idx, chunk_end_idx = int((i * total_nodes)/arguments.num_process), int(((i + 1) * total_nodes)/arguments.num_process) + worker_chunk = all_nodes[chunk_start_idx : chunk_end_idx] + np.random.shuffle(worker_chunk) - num_sample_nodes = int((sample_percentage * all_nodes.shape[0])/100.0) - batches_to_keep = np.random.choice(all_nodes.shape[0], num_sample_nodes, replace = False) - sample_nodes = all_nodes[batches_to_keep, : ] - print("Processing", sample_nodes.shape[0], "batches with each batch having", batch_size, "nodes") + # Get the sample for this worker + batch_size = 1 + if "batch_size" in config: + batch_size = int(config["batch_size"]) + print("Worker", i, "is processing", worker_chunk.shape, "out of", all_nodes.shape, "using batch size of", batch_size) + worker_chunk = worker_chunk[ : worker_chunk.shape[0] - (worker_chunk.shape[0] % batch_size)] + worker_chunk = worker_chunk.reshape((-1, batch_size)) + num_sample_nodes = int((sample_percentage * worker_chunk.shape[0])/100.0) + batches_to_keep = np.random.choice(worker_chunk.shape[0], num_sample_nodes, replace = False) + sample_nodes = worker_chunk[batches_to_keep, : ] # Perform the sampling - log_rate = int(sample_nodes.shape[0]/arguments.log_rate) + total_batches = sample_nodes.shape[0] + log_rate = int(total_batches/arguments.log_rate) + print("Total of", total_batches, "batches with log rate of", log_rate) pages_loaded = [] - for idx, curr_batch in enumerate(sample_nodes): - average_pages_loaded = sampler.perform_sampling_for_nodes(curr_batch) - if average_pages_loaded > 0: - pages_loaded.append(average_pages_loaded) + pages_time_taken = [] + for batch_idx, batch in enumerate(sample_nodes): + # Process the current batch + try: + start_time = time.time() + sucess, average_pages_loaded = sampler.perform_sampling_for_nodes(batch) + if sucess and average_pages_loaded >= 0: + pages_loaded.append(average_pages_loaded) + pages_time_taken.append(time.time() - start_time) + except: + print("Worker", i, "batch", batch_idx, "failed due to error", traceback.format_exc()) - if idx > 0 and idx % log_rate == 0: - percentage_finished = (100.0 * idx)/sample_nodes.shape[0] - print("Finished processing", round(percentage_finished), "percent of nodes") + # Log the value + if batch_idx > 0 and batch_idx % log_rate == 0: + percentage_finished = (100.0 * batch_idx)/total_batches + print("Worker", i, "finished processing", round(percentage_finished), "percent of nodes") # Get the arguments to log - total_time = time.time() - start_time + metrics = sampler.get_metrics() + metrics["average_time_per_batch"] = np.mean(np.array(pages_time_taken)) vals_to_log = { - "Total Processing Time" : str(datetime.timedelta(seconds = int(total_time))), "Batch Size" : batch_size, "Sample Percentage" : sample_percentage, } - for curr_obj in [data_loader, features_loader, sampler]: vals_to_log.update(curr_obj.get_values_to_log()) + + results_queue.put({ + "pages_loaded" : np.array(pages_loaded), + "vals_to_log" : vals_to_log, + "sampling_depth" : config["sampling_depth"], + "dataset_name" : config["dataset_name"], + "metrics" : metrics + }) + +def read_arguments(): + parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) + parser.add_argument("--config_file", type=str, help="The config file containing the details for the simulation") + parser.add_argument("--save_path", required=True, type=str, help="The path to save the resulting image to") + parser.add_argument("--graph_title", required=True, type=str, help="The title of the saved graph") + parser.add_argument("--log_rate", type=int, default = 20, help="Log rate of the nodes processed") + parser.add_argument("--num_process", type=int, default = 1, help="Number of processes we want to use for processing") + return parser.parse_args() + +def main(): + start_time = time.time() + arguments = read_arguments() + multiprocessing.set_start_method('spawn') + torch.set_num_threads(arguments.num_process) + + # Start the workers + results_queue = multiprocessing.Queue() + running_process = [] + for i in range(1, arguments.num_process): + curr_process = multiprocessing.Process(target = run_for_worker, args = (i, arguments, results_queue, )) + curr_process.start() + running_process.append(curr_process) + + # Wait for all of the processes to finish + run_for_worker(0, arguments, results_queue) + [proc.join() for proc in running_process] + total_time = int(time.time() - start_time) + print("Got result in time:", str(datetime.timedelta(seconds = total_time))) + + # Read the result from each worker + vals_to_log = {} + metrics = {} + dataset_name, sampling_depth = "", 0 + workers_results_gotten = 0 + all_workers_pages_loaded = [] + while workers_results_gotten < arguments.num_process: + # Process the worker result + process_result = results_queue.get() + if workers_results_gotten == 0: + vals_to_log.update(process_result["vals_to_log"]) + dataset_name, sampling_depth = process_result["dataset_name"], process_result["sampling_depth"] + + all_workers_pages_loaded.append(process_result["pages_loaded"]) + workers_results_gotten += 1 + + # Record the metric + for metric_name, metric_value in process_result["metrics"].items(): + if metric_name not in metrics: + metrics[metric_name] = [] + metrics[metric_name].append(metric_value) # Save the histogram + all_pages_loaded = np.concatenate(all_workers_pages_loaded) os.makedirs(os.path.dirname(arguments.save_path), exist_ok=True) visualize_arguments = { - "pages_loaded": pages_loaded, + "pages_loaded": all_pages_loaded, "save_path": arguments.save_path, "graph_title": arguments.graph_title, - "depth" : config["sampling_depth"], - "dataset_name": config["dataset_name"], + "depth" : sampling_depth, + "dataset_name": dataset_name, "values_to_log": vals_to_log, + "metrics" : metrics } visualize_results(visualize_arguments) diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.json new file mode 100644 index 00000000..fcaf47cb --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 6.49, "Std dev of Pages Loaded": 8.48, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 0, "In Memory Space Used": "0 bytes"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.png new file mode 100644 index 00000000..9e30105f Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_0.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.json new file mode 100644 index 00000000..266d9366 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 4.08, "Std dev of Pages Loaded": 1.73, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 1, "In Memory Space Used": "868.35 KB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.png new file mode 100644 index 00000000..c956da37 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.json new file mode 100644 index 00000000..0a91e0e0 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 4.08, "Std dev of Pages Loaded": 1.74, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 1, "In Memory Space Used": "868.35 KB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.png new file mode 100644 index 00000000..85dc282e Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_1.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.json new file mode 100644 index 00000000..4e5da2fc --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.0, "Std dev of Pages Loaded": 0.0, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 100, "In Memory Space Used": "86.7 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.png new file mode 100644 index 00000000..b3615d30 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_100_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.json new file mode 100644 index 00000000..09805f52 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 1.76, "Std dev of Pages Loaded": 0.49, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 10, "In Memory Space Used": "8.68 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.png new file mode 100644 index 00000000..d9e225a8 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_10_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.json new file mode 100644 index 00000000..95722ce9 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 3.45, "Std dev of Pages Loaded": 1.27, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 2, "In Memory Space Used": "1.74 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.png new file mode 100644 index 00000000..47560bdb Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.json new file mode 100644 index 00000000..fa86225d --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 3.45, "Std dev of Pages Loaded": 1.28, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 2, "In Memory Space Used": "1.74 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.png new file mode 100644 index 00000000..7f3aed65 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_2.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.json new file mode 100644 index 00000000..3b1880f5 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.79, "Std dev of Pages Loaded": 0.23, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 25, "In Memory Space Used": "21.68 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.png new file mode 100644 index 00000000..ea2ec10c Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_25_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.json new file mode 100644 index 00000000..95b29728 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 3.05, "Std dev of Pages Loaded": 1.03, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 3, "In Memory Space Used": "2.61 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.png new file mode 100644 index 00000000..624473f2 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.json new file mode 100644 index 00000000..95b29728 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 3.05, "Std dev of Pages Loaded": 1.03, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 3, "In Memory Space Used": "2.61 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.png new file mode 100644 index 00000000..887f1e83 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_3.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.json new file mode 100644 index 00000000..09655ae6 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 2.76, "Std dev of Pages Loaded": 0.87, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 4, "In Memory Space Used": "3.47 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.png new file mode 100644 index 00000000..f223c22f Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.json new file mode 100644 index 00000000..618f2d2c --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 2.76, "Std dev of Pages Loaded": 0.89, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 4, "In Memory Space Used": "3.47 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.png new file mode 100644 index 00000000..e2793855 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_4.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.json new file mode 100644 index 00000000..db648ad8 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 2.52, "Std dev of Pages Loaded": 0.77, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 5, "In Memory Space Used": "4.34 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.png new file mode 100644 index 00000000..59456f74 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_5.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.json new file mode 100644 index 00000000..427b34f1 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.2, "Std dev of Pages Loaded": 0.1, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 50, "In Memory Space Used": "43.35 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.png new file mode 100644 index 00000000..2f325a8f Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_50_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.json new file mode 100644 index 00000000..55380337 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.0, "Std dev of Pages Loaded": 0.0, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 75, "In Memory Space Used": "65.03 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.png new file mode 100644 index 00000000..148bea6f Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_1_hop_75_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.json new file mode 100644 index 00000000..670800d9 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 41.66, "Std dev of Pages Loaded": 43.54, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 0, "In Memory Space Used": "0 bytes"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.png new file mode 100644 index 00000000..19406536 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_0.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.json new file mode 100644 index 00000000..f94c4577 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 19.72, "Std dev of Pages Loaded": 10.5, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 1, "In Memory Space Used": "1.74 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.png new file mode 100644 index 00000000..1d890474 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.json new file mode 100644 index 00000000..061da99e --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 19.72, "Std dev of Pages Loaded": 10.49, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 1, "In Memory Space Used": "1.74 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.png new file mode 100644 index 00000000..384347f3 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_1.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.json new file mode 100644 index 00000000..80a5cd29 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.0, "Std dev of Pages Loaded": 0.0, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 100, "In Memory Space Used": "173.41 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.png new file mode 100644 index 00000000..a44b6923 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_100_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.json new file mode 100644 index 00000000..1e904c35 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 4.41, "Std dev of Pages Loaded": 1.43, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 10, "In Memory Space Used": "17.37 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.png new file mode 100644 index 00000000..9803d110 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_10_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.json new file mode 100644 index 00000000..ccf0f765 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 14.27, "Std dev of Pages Loaded": 6.5, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 2, "In Memory Space Used": "3.47 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.png new file mode 100644 index 00000000..bab8c74e Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.json new file mode 100644 index 00000000..96462a1b --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 14.27, "Std dev of Pages Loaded": 6.46, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 2, "In Memory Space Used": "3.47 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.png new file mode 100644 index 00000000..9f5841e9 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_2.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.json new file mode 100644 index 00000000..f9a19468 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 1.32, "Std dev of Pages Loaded": 0.44, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 25, "In Memory Space Used": "43.35 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.png new file mode 100644 index 00000000..6dbd1f64 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_25_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.json new file mode 100644 index 00000000..ad8c1c19 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 11.41, "Std dev of Pages Loaded": 4.6, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 3, "In Memory Space Used": "5.21 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.png new file mode 100644 index 00000000..1a0776ed Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.json new file mode 100644 index 00000000..58ce6980 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 11.4, "Std dev of Pages Loaded": 4.65, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 3, "In Memory Space Used": "5.21 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.png new file mode 100644 index 00000000..3b491361 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_3.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.json new file mode 100644 index 00000000..a5df08ff --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 9.47, "Std dev of Pages Loaded": 3.65, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 4, "In Memory Space Used": "6.95 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.png new file mode 100644 index 00000000..ec23c1a0 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.json new file mode 100644 index 00000000..c31eb214 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 9.47, "Std dev of Pages Loaded": 3.66, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 4, "In Memory Space Used": "6.95 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.png new file mode 100644 index 00000000..84af8b0f Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_4.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.json new file mode 100644 index 00000000..4ca66904 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 8.08, "Std dev of Pages Loaded": 3.0, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 5, "In Memory Space Used": "8.68 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.png new file mode 100644 index 00000000..4e62eaf7 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_5.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.json new file mode 100644 index 00000000..5f08cd4a --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.27, "Std dev of Pages Loaded": 0.16, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 50, "In Memory Space Used": "86.7 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.png new file mode 100644 index 00000000..bf54305a Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_50_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.json new file mode 100644 index 00000000..3aa7f98b --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.0, "Std dev of Pages Loaded": 0.0, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 75, "In Memory Space Used": "130.06 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.png new file mode 100644 index 00000000..a9c9e39b Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_2_hop_75_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.json new file mode 100644 index 00000000..b9c5d2be --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 130.11, "Std dev of Pages Loaded": 100.33, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 0, "In Memory Space Used": "0 bytes"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.png new file mode 100644 index 00000000..d1a990d9 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_0.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.json new file mode 100644 index 00000000..28a4b39d --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 62.23, "Std dev of Pages Loaded": 36.17, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 1, "In Memory Space Used": "2.61 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.png new file mode 100644 index 00000000..6a62563c Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.json new file mode 100644 index 00000000..d574b0ff --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 62.23, "Std dev of Pages Loaded": 36.18, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 1, "In Memory Space Used": "2.61 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.png new file mode 100644 index 00000000..9764a85b Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_1.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.json new file mode 100644 index 00000000..8f032bd7 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.0, "Std dev of Pages Loaded": 0.0, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 100, "In Memory Space Used": "260.11 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.png new file mode 100644 index 00000000..99cb2688 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_100_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.json new file mode 100644 index 00000000..0689ba2e --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 7.88, "Std dev of Pages Loaded": 2.97, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 10, "In Memory Space Used": "26.05 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.png new file mode 100644 index 00000000..26808150 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_10_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.json new file mode 100644 index 00000000..b7f49ddd --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 40.26, "Std dev of Pages Loaded": 20.57, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 2, "In Memory Space Used": "5.21 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.png new file mode 100644 index 00000000..cbfcca7e Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.json new file mode 100644 index 00000000..43df3c38 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 40.24, "Std dev of Pages Loaded": 20.71, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 2, "In Memory Space Used": "5.21 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.png new file mode 100644 index 00000000..7495df2e Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_2.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.json new file mode 100644 index 00000000..0a1eb14b --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 1.69, "Std dev of Pages Loaded": 0.61, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 25, "In Memory Space Used": "65.03 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.png new file mode 100644 index 00000000..cc816036 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_25_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.json new file mode 100644 index 00000000..5ac6210b --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 29.54, "Std dev of Pages Loaded": 14.24, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 3, "In Memory Space Used": "7.82 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.png new file mode 100644 index 00000000..e4ae7f5c Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.json new file mode 100644 index 00000000..1d9918ec --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 29.52, "Std dev of Pages Loaded": 14.25, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 3, "In Memory Space Used": "7.82 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.png new file mode 100644 index 00000000..42594bf4 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_3.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.json new file mode 100644 index 00000000..f18164e1 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 22.83, "Std dev of Pages Loaded": 10.26, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 4, "In Memory Space Used": "10.42 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.png new file mode 100644 index 00000000..d6ed6d92 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.json new file mode 100644 index 00000000..51613376 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 22.83, "Std dev of Pages Loaded": 10.28, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 4, "In Memory Space Used": "10.42 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.png new file mode 100644 index 00000000..1f7c25e7 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_4.5_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.json new file mode 100644 index 00000000..056d4f0e --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 18.24, "Std dev of Pages Loaded": 7.78, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 5, "In Memory Space Used": "13.03 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.png new file mode 100644 index 00000000..cd046703 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_5.0_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.json new file mode 100644 index 00000000..86370ed3 --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.24, "Std dev of Pages Loaded": 0.2, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 50, "In Memory Space Used": "130.06 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.png new file mode 100644 index 00000000..18d26508 Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_50_in_mem.png differ diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.json b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.json new file mode 100644 index 00000000..cafbbd1c --- /dev/null +++ b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.json @@ -0,0 +1 @@ +{"Mean Pages Loaded": 0.0, "Std dev of Pages Loaded": 0.0, "Batch Size": 25, "Sample Percentage": 100, "Average Node Out Degree": "7.68", "Average Node In Degree": "10.87", "Nodes per Page": 32, "Total File Size": "86.7 MB", "Percentage Nodes In Memory": 75, "In Memory Space Used": "195.08 MB"} \ No newline at end of file diff --git a/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.png b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.png new file mode 100644 index 00000000..00fbbc2d Binary files /dev/null and b/simulator/results/arvix_in_mem_benchmark/arvix_3_hop_75_in_mem.png differ diff --git a/simulator/results/products_linear_3_hop.json b/simulator/results/products_linear_3_hop.json new file mode 100644 index 00000000..80ed6d68 --- /dev/null +++ b/simulator/results/products_linear_3_hop.json @@ -0,0 +1,13 @@ +{ + "pages_loaded_mean": 1677.49, + "pages_loaded_std_dev": 118.26, + "node_removal_time": 3.538170798880155e-06, + "graph_get_time": 0.6719331917215566, + "get_neighbor_time": 4.966402314399761e-05, + "search_nodes_num": 1071091.732240437, + "features_get_time": 0.053997908133626635, + "fetures_nodes_num": 1071487.3879781421, + "prepare_next_layer_time": 0.004483920628907251, + "level_processing_time": 0.058551180558126484, + "average_time_per_batch": 0.8651917000285915 +} \ No newline at end of file diff --git a/simulator/results/products_linear_3_hop.png b/simulator/results/products_linear_3_hop.png new file mode 100644 index 00000000..e7a5db15 Binary files /dev/null and b/simulator/results/products_linear_3_hop.png differ diff --git a/simulator/runner.py b/simulator/runner.py new file mode 100644 index 00000000..0c355f0a --- /dev/null +++ b/simulator/runner.py @@ -0,0 +1,89 @@ +import os +import subprocess +import json +import pandas as pd +import matplotlib.pyplot as plt + +configs_dir = "configs/arvix_in_mem_benchmark" +save_dir = "results/arvix_in_mem_benchmark" +command_format = "python3 main.py --config_file {} --save_path {} --graph_title \"CDF for sequential features\"" +def run_for_combo(sampling_depth, in_mem_percent): + # Create the config file + file_name = f"arvix_{sampling_depth}_hop_{in_mem_percent}_in_mem" + config_file_path = os.path.join(configs_dir, file_name + ".json") + if not os.path.exists(config_file_path): + config_data = { + "dataset_name" : "ogbn_arxiv", + "features_stats" : { + "featurizer_type" : "default", + "page_size" : "16.384 KB", + "feature_dimension" : 128, + "feature_size" : "float32" + }, + "batch_size" : 25, + "sampling_depth" : sampling_depth, + "top_percent_in_mem" : in_mem_percent + } + + with open(config_file_path, 'w+') as writer: + json.dump(config_data, writer) + + # Run the file + img_save_path = os.path.join(save_dir, file_name + ".png") + metrics_path = os.path.join(save_dir, file_name + ".json") + if not os.path.exists(metrics_path): + command = command_format.format(config_file_path, img_save_path) + print("Running command", command) + subprocess.run(command, shell = True, capture_output = True, text = True) + + # Read the metrics + with open(metrics_path, 'r') as reader: + metrics = json.load(reader) + + mean_val = float(metrics["Mean Pages Loaded"]) + std_dev = float(metrics["Std dev of Pages Loaded"]) + return [sampling_depth, in_mem_percent, mean_val, std_dev] + +def main(): + all_possible_depths = [i for i in range(1, 4)] + all_in_mem_percent = [i/2.0 for i in range(1, 11)] + [10, 25, 50, 75, 100] + + results_rows = [] + for sampling_depth in all_possible_depths: + for in_memory_percent in all_in_mem_percent: + results_rows.append(run_for_combo(sampling_depth, in_memory_percent)) + + result_df = pd.DataFrame(results_rows, columns = ["sampling_depth", "percent_in_mem", "mean_pages", "std_dev_pages_loaded"]) + result_df.to_csv("arvix_sampling_in_mem_benchmark.csv", index = False) + +def visualize_results(): + # Create the graph + colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:purple'] + color_idx = 0 + fig, ax = plt.subplots() + + df = pd.read_csv("arvix_sampling_in_mem_benchmark.csv") + for sampling_depth, rows in df.groupby("sampling_depth"): + # Get the values for this depth + x_values = rows["percent_in_mem"].values + mean_val = rows["mean_pages"].values + std_dev = rows["std_dev_pages_loaded"].values + print("X values of", x_values) + + color = colors[color_idx] + color_idx += 1 + ax.plot(x_values, mean_val, '-', label = "Sampling depth " + str(sampling_depth), color = color) + ax.fill_between(x_values, mean_val - std_dev, mean_val + std_dev, alpha=0.2, color = color) + + ax.set_ylim((0.5, 250)) + ax.set_xscale("log", base=10) + ax.set_yscale("log", base=10) + ax.set_xlabel("Percent of nodes in cache") + ax.set_ylabel("Pages loaded") + ax.legend() + fig.tight_layout() + plt.savefig("arvix_sampling_in_mem_benchmark.png") + +if __name__ == "__main__": + # main() + visualize_results() \ No newline at end of file diff --git a/simulator/src/dataset_loader.py b/simulator/src/dataset_loader.py index ebe02fa6..669a97c4 100755 --- a/simulator/src/dataset_loader.py +++ b/simulator/src/dataset_loader.py @@ -3,6 +3,7 @@ import numpy as np import torch import traceback +import threading from collections import defaultdict from marius.data import Batch, DENSEGraph, MariusGraph from marius.data.samplers import LayeredNeighborSampler @@ -50,9 +51,18 @@ def get_neigbhors_for_nodes(self, nodes): nodes_to_sample = torch.tensor(nodes, dtype = torch.int64) sampled_nodes = self.sampler.getNeighbors(nodes_to_sample) sampled_nodes.performMap() - return sampled_nodes.getNeighborIDs(True, True).numpy() + return True, sampled_nodes.getNeighborIDs(True, True).numpy() except: - return np.array([]) + return False, np.array([]) + + def get_graph_for_nodes(self, nodes): + try: + nodes_to_sample = torch.tensor(nodes, dtype = torch.int64) + sampled_nodes = self.sampler.getNeighbors(nodes_to_sample) + sampled_nodes.performMap() + return sampled_nodes + except: + return None def get_num_edges(self): return self.edge_list.size(0) @@ -74,4 +84,4 @@ def get_values_to_log(self): return { "Average Node Out Degree": str(round(self.get_average_neighbors(), 2)), "Average Node In Degree": str(round(self.get_average_incoming(), 2)), - } + } \ No newline at end of file diff --git a/simulator/src/in_mem_storage.py b/simulator/src/in_mem_storage.py index c3833a66..23c8a92c 100755 --- a/simulator/src/in_mem_storage.py +++ b/simulator/src/in_mem_storage.py @@ -1,14 +1,14 @@ -import heapq - +import numpy as np class InMemoryStorage: - def __init__(self, data_loader, percent_in_memory): - self.percent_in_memory = percent_in_memory + def __init__(self, data_loader, config): + self.percent_in_memory = int(config["top_percent_in_mem"]) total_nodes = data_loader.get_num_nodes() nodes_in_mem = int((total_nodes * self.percent_in_memory) / 100.0) # Get the top nodes based on incoming neighbors self.in_memory_nodes = data_loader.get_nodes_sorted_by_incoming()[ : nodes_in_mem] + print("Loaded", self.in_memory_nodes.shape[0], "nodes in memory") def node_in_mem_storage(self, node_id): return node_id in self.in_memory_nodes diff --git a/simulator/src/metrics.py b/simulator/src/metrics.py new file mode 100644 index 00000000..b530b73f --- /dev/null +++ b/simulator/src/metrics.py @@ -0,0 +1,19 @@ +import numpy as np + +class MetricTracker: + + def __init__(self): + self.metrics = {} + + def record_metric(self, name, value): + if name not in self.metrics: + self.metrics[name] = [] + self.metrics[name].append(value) + + def get_metrics(self): + metrics_avg = {} + for metric_name, metric_values in self.metrics.items(): + if len(metric_values) > 0: + metrics_avg[metric_name] = np.mean(np.array(metric_values)) + + return metrics_avg \ No newline at end of file diff --git a/simulator/src/sampler.py b/simulator/src/sampler.py index a129bc4d..746cdc42 100755 --- a/simulator/src/sampler.py +++ b/simulator/src/sampler.py @@ -1,31 +1,84 @@ from .in_mem_storage import * import humanfriendly import math - +import time +from .metrics import * class SubgraphSampler: def __init__(self, data_loader, features_loader, config): self.data_loader = data_loader self.features_loader = features_loader + self.sampling_depth = config["sampling_depth"] self.in_memory_storage = None if "top_percent_in_mem" in config: - self.in_memory_storage = InMemoryStorage(data_loader, config["top_percent_in_mem"]) + self.in_memory_storage = InMemoryStorage(data_loader, config) + self.metrics = MetricTracker() - def perform_sampling_for_nodes(self, nodes): - # Get the neighbors of the node - node_neigbhors = self.data_loader.get_neigbhors_for_nodes(nodes) - if node_neigbhors.shape[0] == 0: - return 0 - - # Remove the in memory nodes + def remove_high_degree(self, nodes): if self.in_memory_storage is not None: - node_neigbhors = self.in_memory_storage.remove_in_mem_nodes(node_neigbhors) - if node_neigbhors.shape[0] == 0: - return 0 + nodes = self.in_memory_storage.remove_in_mem_nodes(nodes) + return nodes + + def get_in_mem_storage(self): + return self.in_memory_storage + + def perform_sampling_for_nodes(self, nodes): + # Process the initial nodes + sample_start_time = time.time() + nodes = self.remove_high_degree(nodes) + initial_nodes = nodes.shape[0] + if initial_nodes == 0: + return True, 0 + remove_end_time = time.time() + self.metrics.record_metric("node_removal_time", remove_end_time - sample_start_time) + + # Get the graph for those nodes + graph_get_start = time.time() + current_graph = self.data_loader.get_graph_for_nodes(nodes) + if current_graph is None: + return False, -1 + graph_get_time = time.time() - graph_get_start + self.metrics.record_metric("graph_get_time", graph_get_time) + + current_depth = 0 + total_pages_loaded = 0 + while current_depth < self.sampling_depth and nodes.shape[0] > 0: + # Get the neigbhors for the current level + get_start_time = time.time() + num_search_nodes = nodes.shape[0] + nodes = current_graph.getNeighborIDs(True, True).numpy() + get_end_time = time.time() + self.metrics.record_metric("get_neighbor_time", get_end_time - get_start_time) + self.metrics.record_metric("search_nodes_num", num_search_nodes) + + # Remove any in memory nodes for future levels + remove_start_time = time.time() + nodes = self.remove_high_degree(nodes) + if nodes.shape[0] == 0: + break + remove_end_time = time.time() + self.metrics.record_metric("node_removal_time", remove_end_time - remove_start_time) + + # Get the pages for this level + features_start_time = time.time() + total_pages_loaded += self.features_loader.num_pages_for_nodes(nodes) + features_end_time = time.time() + self.metrics.record_metric("features_get_time", features_end_time - features_start_time) + self.metrics.record_metric("fetures_nodes_num", nodes.shape[0]) + + # Record level time + prepare_start_time = time.time() + current_depth += 1 + if current_depth < self.sampling_depth: + current_graph.prepareForNextLayer() + overall_prepare_time = time.time() - prepare_start_time + self.metrics.record_metric("prepare_next_layer_time", overall_prepare_time) + + level_end_time = time.time() + level_process_time = level_end_time - get_start_time + self.metrics.record_metric("level_processing_time", level_process_time) - # Get the average pages per node - total_pages_loaded = self.features_loader.num_pages_for_nodes(node_neigbhors) - return total_pages_loaded/nodes.shape[0] + return True, total_pages_loaded/initial_nodes def get_values_to_log(self): values_to_return = {} @@ -33,7 +86,10 @@ def get_values_to_log(self): nodes_in_memory = self.in_memory_storage.in_mem_nodes_count() values_to_return["Percentage Nodes In Memory"] = self.in_memory_storage.get_percentage_in_mem() in_mem_pages = int(math.ceil(nodes_in_memory / self.features_loader.get_nodes_per_page())) - all_pages_size = humanfriendly.format_size(in_mem_pages * self.features_loader.get_page_size()) + all_pages_size = humanfriendly.format_size(in_mem_pages * self.features_loader.get_page_size() * self.sampling_depth) values_to_return["In Memory Space Used"] = all_pages_size return values_to_return + + def get_metrics(self): + return self.metrics.get_metrics() diff --git a/simulator/src/visualizer.py b/simulator/src/visualizer.py index 0a32aa52..eca5312c 100755 --- a/simulator/src/visualizer.py +++ b/simulator/src/visualizer.py @@ -1,7 +1,7 @@ import matplotlib.pyplot as plt import os import numpy as np - +import json def visualize_results(visualize_args, num_bins=60, write_location=(0.7, 0.6)): # Get the number of pages read @@ -23,11 +23,25 @@ def visualize_results(visualize_args, num_bins=60, write_location=(0.7, 0.6)): plt.legend() # Write some resulting text - txt_lines = ["Mean Pages Loaded: " + str(page_mean), "Std dev of Pages Loaded: " + str(page_std)] + vals_to_log = { + "Mean Pages Loaded" : page_mean, + "Std dev of Pages Loaded" : page_std + } if "values_to_log" in visualize_args: - vals_to_log = visualize_args["values_to_log"] - for key, value in vals_to_log.items(): - txt_lines.append(str(key).strip() + ": " + str(value).strip()) + vals_to_log.update(visualize_args["values_to_log"]) + + metrics_to_write = { + "pages_loaded_mean" : page_mean, + "pages_loaded_std_dev" : page_std + } + if "metrics" in visualize_args: + for metric_name, metric_values in visualize_args["metrics"].items(): + if len(metric_values) > 0: + metrics_to_write[metric_name] = np.mean(np.array(metric_values)) + + txt_lines = [] + for key, value in vals_to_log.items(): + txt_lines.append(str(key).strip() + ": " + str(value).strip()) text_to_write = "Key Metrics:\n" + "\n".join(txt_lines) @@ -48,4 +62,13 @@ def visualize_results(visualize_args, num_bins=60, write_location=(0.7, 0.6)): # Save the result plt.tight_layout() - plt.savefig(visualize_args["save_path"]) + image_save_path = visualize_args["save_path"] + plt.savefig(image_save_path) + print("Saved image to", image_save_path) + + # Save the metrics + metrics_save_path = image_save_path[ : image_save_path.rindex(".")] + ".json" + with open(metrics_save_path, 'w+') as writer: + json.dump(metrics_to_write, writer, indent = 4) + print("Saved metrics to", metrics_save_path) + \ No newline at end of file