├── .gitignore ├── .travis.yml ├── CMakeLists.txt ├── LICENSE ├── README.md ├── apps ├── astar.gt ├── astar_distance_loader.cpp ├── bc.gt ├── bc_par_for.gt ├── bc_with_functor.gt ├── bfs.gt ├── cc.gt ├── cc_lp_pj.gt ├── cf.gt ├── closeness_centrality_weighted.gt ├── closeness_unweighted_par_for.gt ├── k_core.gt ├── pagerank.gt ├── pagerank_delta.py ├── pagerank_delta_export.gt ├── pagerankdelta.gt ├── ppsp_delta_stepping.gt ├── python_bindings │ ├── pagerank_delta │ │ ├── pagerank_delta.py │ │ └── pagerank_delta_export.gt │ └── sssp │ │ ├── sssp.py │ │ └── sssp_export.gt ├── set_cover.gt ├── set_cover_extern.cpp ├── sssp.gt ├── sssp_delta_stepping.gt └── tc.gt ├── autotune ├── README.md ├── apps │ ├── bfs_benchmark.gt │ ├── cc_benchmark.gt │ ├── cf_benchmark.gt │ ├── pagerank_benchmark.gt │ ├── pagerank_delta_benchmark.gt │ ├── ppsp_delta_stepping.gt │ ├── sssp_benchmark.gt │ └── sssp_delta_stepping.gt ├── default_schedules │ └── pagerank_delta_default_schedule.gt ├── graphit_autotuner.py └── graphitc.py ├── graphit_eval ├── Devcloud_evaluation.md ├── GraphIt_Evaluation_Guide.md ├── devcloud_eval_dataset1 │ ├── data │ │ ├── 4.el │ │ └── testGraph │ │ │ ├── testGraph_gapbs.sg │ │ │ └── testGraph_gapbs.wsg │ └── table7 │ │ ├── Makefile │ │ ├── apps │ │ ├── astar.gt │ │ ├── astar_distance_loader.cpp │ │ ├── bc.gt │ │ ├── bfs.gt │ │ ├── cc.gt │ │ ├── cf.gt │ │ ├── closeness_unweighted.gt │ │ ├── k_core.gt │ │ ├── pagerank.gt │ │ ├── pagerank_delta.py │ │ ├── pagerank_delta_export.gt │ │ ├── pagerankdelta.gt │ │ ├── ppsp_delta_stepping.gt │ │ ├── python_bindings │ │ │ ├── pagerank_delta │ │ │ │ ├── pagerank_delta.py │ │ │ │ └── pagerank_delta_export.gt │ │ │ └── sssp │ │ │ │ ├── sssp.py │ │ │ │ └── sssp_export.gt │ │ ├── set_cover.gt │ │ ├── set_cover_extern.cpp │ │ ├── sssp.gt │ │ ├── sssp_delta_stepping.gt │ │ └── tc.gt │ │ ├── benchmark.py │ │ ├── bin │ │ └── .gitignore │ │ ├── cpps │ │ └── .gitignore │ │ ├── eval.py │ │ ├── outputs │ │ └── .gitignore │ │ ├── parse.py │ │ └── schedules │ │ ├── DensePull_VertexParallel.gt │ │ ├── KCore_SparsePush_VertexParallel_16_Open.gt │ │ ├── SparsePushDensePull_VertexParallel.gt │ │ ├── SparsePush_VertexParallel.gt │ │ ├── SparsePush_VertexParallel_Delta2.gt │ │ ├── SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt │ │ ├── SparsePush_VertexParallel_Delta_argv.gt │ │ ├── bc_SparsePush.gt │ │ ├── bc_SparsePushDensePull.gt │ │ ├── bc_SparsePushDensePull_bitvector.gt │ │ ├── bc_SparsePushDensePull_bitvector_cache.gt │ │ ├── bfs_benchmark.gt │ │ ├── bfs_hybrid_dense_parallel_cas.gt │ │ ├── bfs_hybrid_dense_parallel_cas_bitvector.gt │ │ ├── bfs_hybrid_dense_parallel_cas_segment.gt │ │ ├── bfs_hybrid_denseforward_serial.gt │ │ ├── bfs_pull_edge_aware_parallel.gt │ │ ├── bfs_pull_parallel.gt │ │ ├── bfs_pull_parallel_segment.gt │ │ ├── bfs_push_parallel_cas.gt │ │ ├── bfs_push_sliding_queue_parallel_cas.gt │ │ ├── cc_benchmark.gt │ │ ├── cc_benchmark_cache.gt │ │ ├── cc_hybrid_dense_parallel_bitvector.gt │ │ ├── cc_hybrid_dense_parallel_bitvector_numa.gt │ │ ├── cc_hybrid_dense_parallel_bitvector_segment.gt │ │ ├── cc_hybrid_dense_parallel_cas.gt │ │ ├── cc_pull_parallel.gt │ │ ├── cc_pull_parallel_numa.gt │ │ ├── cc_pull_parallel_segment.gt │ │ ├── cc_push_parallel_cas.gt │ │ ├── cf_benchmark.gt │ │ ├── cf_benchmark_cache.gt │ │ ├── cf_pull_parallel.gt │ │ ├── cf_pull_parallel_load_balance.gt │ │ ├── cf_pull_parallel_load_balance_segment.gt │ │ ├── cf_pull_parallel_load_balance_segment_argv.gt │ │ ├── cf_pull_parallel_segment.gt │ │ ├── closeness_centrality_unweighted_hybrid_parallel.gt │ │ ├── closeness_centrality_weighted_hybrid_parallel.gt │ │ ├── eigenvector_centrality_DensePull_parallel.gt │ │ ├── eigenvector_pr_fusion.gt │ │ ├── eigenvector_pr_fusion_benchmark.gt │ │ ├── eigenvector_pr_segment.gt │ │ ├── export_simple_edgeset_apply.gt │ │ ├── k_core_const_sum_reduce.gt │ │ ├── pagerank_benchmark.gt │ │ ├── pagerank_benchmark_cache.gt │ │ ├── pagerank_benchmark_numa.gt │ │ ├── pagerank_benchmark_pull_parallel.gt │ │ ├── pagerank_delta_benchmark.gt │ │ ├── pagerank_delta_benchmark_cache.gt │ │ ├── pagerank_delta_benchmark_numa.gt │ │ ├── pagerank_delta_benchmark_split.gt │ │ ├── pagerank_delta_convergence_benchmark_cache.gt │ │ ├── pagerank_delta_hybrid_dense.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_bitvector.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_numa.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_segment.gt │ │ ├── pagerank_delta_pull_parallel.gt │ │ ├── pagerank_delta_pull_parallel_load_balance.gt │ │ ├── pagerank_delta_pull_parallel_numa.gt │ │ ├── pagerank_delta_pull_parallel_segment.gt │ │ ├── pagerank_delta_sparse_push_parallel.gt │ │ ├── pagerank_hybrid_dense.gt │ │ ├── pagerank_pull_parallel.gt │ │ ├── pagerank_pull_parallel_load_balance.gt │ │ ├── pagerank_pull_parallel_numa.gt │ │ ├── pagerank_pull_parallel_numa_one_seg.gt │ │ ├── pagerank_pull_parallel_segment.gt │ │ ├── pagerank_pull_parallel_segment_argv.gt │ │ ├── pagerank_push_parallel.gt │ │ ├── priority_update_eager_no_merge.gt │ │ ├── priority_update_eager_no_merge_argv1.gt │ │ ├── priority_update_eager_no_merge_argv3.gt │ │ ├── priority_update_eager_no_merge_argv4.gt │ │ ├── priority_update_eager_with_merge.gt │ │ ├── priority_update_eager_with_merge_argv3.gt │ │ ├── priority_update_eager_with_merge_argv4.gt │ │ ├── priority_update_eager_with_merge_threshold_argv4.gt │ │ ├── set_cover.gt │ │ ├── set_cover_extern.cpp │ │ ├── simple_loop_index_split.gt │ │ ├── simple_pagerank_with_AoS.gt │ │ ├── simple_vector_sum.gt │ │ ├── sssp_benchmark.gt │ │ ├── sssp_hybrid_dense_parallel_cas.gt │ │ ├── sssp_hybrid_denseforward_parallel_cas.gt │ │ ├── sssp_pull_parallel.gt │ │ ├── sssp_push_parallel_cas.gt │ │ ├── sssp_push_parallel_sliding_queue.gt │ │ ├── tc_empty.gt │ │ ├── tc_hiroshi.gt │ │ ├── tc_multiskip.gt │ │ └── tc_naive.gt ├── devcloud_eval_dataset2 │ ├── data │ │ ├── 4.el │ │ └── testGraph │ │ │ ├── testGraph_gapbs.sg │ │ │ └── testGraph_gapbs.wsg │ └── table7 │ │ ├── Makefile │ │ ├── apps │ │ ├── astar.gt │ │ ├── astar_distance_loader.cpp │ │ ├── bc.gt │ │ ├── bfs.gt │ │ ├── cc.gt │ │ ├── cc_pj.gt │ │ ├── cf.gt │ │ ├── closeness_unweighted.gt │ │ ├── k_core.gt │ │ ├── pagerank.gt │ │ ├── pagerank_delta.py │ │ ├── pagerank_delta_export.gt │ │ ├── pagerankdelta.gt │ │ ├── ppsp_delta_stepping.gt │ │ ├── python_bindings │ │ │ ├── pagerank_delta │ │ │ │ ├── pagerank_delta.py │ │ │ │ └── pagerank_delta_export.gt │ │ │ └── sssp │ │ │ │ ├── sssp.py │ │ │ │ └── sssp_export.gt │ │ ├── set_cover.gt │ │ ├── set_cover_extern.cpp │ │ ├── sssp.gt │ │ ├── sssp_delta_stepping.gt │ │ └── tc.gt │ │ ├── benchmark.py │ │ ├── bin │ │ └── .gitignore │ │ ├── cpps │ │ └── .gitignore │ │ ├── eval.py │ │ ├── outputs │ │ └── .gitignore │ │ ├── parse.py │ │ └── schedules │ │ ├── DensePull_VertexParallel.gt │ │ ├── KCore_SparsePush_VertexParallel_16_Open.gt │ │ ├── SparsePushDensePull_VertexParallel.gt │ │ ├── SparsePush_VertexParallel.gt │ │ ├── SparsePush_VertexParallel_Delta2.gt │ │ ├── SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt │ │ ├── SparsePush_VertexParallel_Delta_argv.gt │ │ ├── bc_SparsePush.gt │ │ ├── bc_SparsePushDensePull.gt │ │ ├── bc_SparsePushDensePull_bitvector.gt │ │ ├── bc_SparsePushDensePull_bitvector_cache.gt │ │ ├── bfs_benchmark.gt │ │ ├── bfs_hybrid_dense_parallel_cas.gt │ │ ├── bfs_hybrid_dense_parallel_cas_bitvector.gt │ │ ├── bfs_hybrid_dense_parallel_cas_segment.gt │ │ ├── bfs_hybrid_denseforward_serial.gt │ │ ├── bfs_pull_edge_aware_parallel.gt │ │ ├── bfs_pull_parallel.gt │ │ ├── bfs_pull_parallel_segment.gt │ │ ├── bfs_push_parallel_cas.gt │ │ ├── bfs_push_sliding_queue_parallel_cas.gt │ │ ├── cc_benchmark.gt │ │ ├── cc_benchmark_cache.gt │ │ ├── cc_hybrid_dense_parallel_bitvector.gt │ │ ├── cc_hybrid_dense_parallel_bitvector_numa.gt │ │ ├── cc_hybrid_dense_parallel_bitvector_segment.gt │ │ ├── cc_hybrid_dense_parallel_cas.gt │ │ ├── cc_pull_parallel.gt │ │ ├── cc_pull_parallel_numa.gt │ │ ├── cc_pull_parallel_segment.gt │ │ ├── cc_push_parallel_cas.gt │ │ ├── cf_benchmark.gt │ │ ├── cf_benchmark_cache.gt │ │ ├── cf_pull_parallel.gt │ │ ├── cf_pull_parallel_load_balance.gt │ │ ├── cf_pull_parallel_load_balance_segment.gt │ │ ├── cf_pull_parallel_load_balance_segment_argv.gt │ │ ├── cf_pull_parallel_segment.gt │ │ ├── closeness_centrality_unweighted_hybrid_parallel.gt │ │ ├── closeness_centrality_weighted_hybrid_parallel.gt │ │ ├── eigenvector_centrality_DensePull_parallel.gt │ │ ├── eigenvector_pr_fusion.gt │ │ ├── eigenvector_pr_fusion_benchmark.gt │ │ ├── eigenvector_pr_segment.gt │ │ ├── export_simple_edgeset_apply.gt │ │ ├── k_core_const_sum_reduce.gt │ │ ├── pagerank_benchmark.gt │ │ ├── pagerank_benchmark_cache.gt │ │ ├── pagerank_benchmark_numa.gt │ │ ├── pagerank_benchmark_pull_parallel.gt │ │ ├── pagerank_delta_benchmark.gt │ │ ├── pagerank_delta_benchmark_cache.gt │ │ ├── pagerank_delta_benchmark_numa.gt │ │ ├── pagerank_delta_benchmark_split.gt │ │ ├── pagerank_delta_convergence_benchmark_cache.gt │ │ ├── pagerank_delta_hybrid_dense.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_bitvector.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_numa.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_segment.gt │ │ ├── pagerank_delta_pull_parallel.gt │ │ ├── pagerank_delta_pull_parallel_load_balance.gt │ │ ├── pagerank_delta_pull_parallel_numa.gt │ │ ├── pagerank_delta_pull_parallel_segment.gt │ │ ├── pagerank_delta_sparse_push_parallel.gt │ │ ├── pagerank_hybrid_dense.gt │ │ ├── pagerank_pull_parallel.gt │ │ ├── pagerank_pull_parallel_load_balance.gt │ │ ├── pagerank_pull_parallel_numa.gt │ │ ├── pagerank_pull_parallel_numa_one_seg.gt │ │ ├── pagerank_pull_parallel_segment.gt │ │ ├── pagerank_pull_parallel_segment_argv.gt │ │ ├── pagerank_push_parallel.gt │ │ ├── priority_update_eager_no_merge.gt │ │ ├── priority_update_eager_no_merge_argv1.gt │ │ ├── priority_update_eager_no_merge_argv3.gt │ │ ├── priority_update_eager_no_merge_argv4.gt │ │ ├── priority_update_eager_with_merge.gt │ │ ├── priority_update_eager_with_merge_argv3.gt │ │ ├── priority_update_eager_with_merge_argv4.gt │ │ ├── priority_update_eager_with_merge_threshold_argv4.gt │ │ ├── set_cover.gt │ │ ├── set_cover_extern.cpp │ │ ├── simple_loop_index_split.gt │ │ ├── simple_pagerank_with_AoS.gt │ │ ├── simple_vector_sum.gt │ │ ├── sssp_benchmark.gt │ │ ├── sssp_hybrid_dense_parallel_cas.gt │ │ ├── sssp_hybrid_denseforward_parallel_cas.gt │ │ ├── sssp_pull_parallel.gt │ │ ├── sssp_push_parallel_cas.gt │ │ ├── sssp_push_parallel_sliding_queue.gt │ │ ├── tc_empty.gt │ │ ├── tc_hiroshi.gt │ │ ├── tc_multiskip.gt │ │ └── tc_naive.gt ├── eval │ ├── Xeon_E5-4640 │ │ ├── Makefile │ │ ├── benchmark.py │ │ ├── bin │ │ │ └── .gitignore │ │ ├── cpps │ │ │ └── .gitignore │ │ ├── outputs │ │ │ └── .gitignore │ │ ├── parse.py │ │ └── table7_graphit.py │ ├── data │ │ ├── 4.el │ │ └── testGraph │ │ │ ├── testGraph_gapbs.sg │ │ │ └── testGraph_gapbs.wsg │ └── table7 │ │ ├── Makefile │ │ ├── benchmark.py │ │ ├── bin │ │ └── .gitignore │ │ ├── compile.cpp │ │ ├── compile.o │ │ ├── cpps │ │ └── .gitignore │ │ ├── outputs │ │ └── .gitignore │ │ ├── parse.py │ │ └── table7_graphit.py ├── lanka_eval │ ├── data │ │ ├── 4.el │ │ └── testGraph │ │ │ ├── testGraph_gapbs.sg │ │ │ └── testGraph_gapbs.wsg │ └── table7 │ │ ├── Makefile │ │ ├── apps │ │ ├── astar.gt │ │ ├── astar_distance_loader.cpp │ │ ├── bc.gt │ │ ├── bfs.gt │ │ ├── cc.gt │ │ ├── cc_pj.gt │ │ ├── cf.gt │ │ ├── closeness_unweighted.gt │ │ ├── k_core.gt │ │ ├── pagerank.gt │ │ ├── pagerank_delta.py │ │ ├── pagerank_delta_export.gt │ │ ├── pagerankdelta.gt │ │ ├── ppsp_delta_stepping.gt │ │ ├── python_bindings │ │ │ ├── pagerank_delta │ │ │ │ ├── pagerank_delta.py │ │ │ │ └── pagerank_delta_export.gt │ │ │ └── sssp │ │ │ │ ├── sssp.py │ │ │ │ └── sssp_export.gt │ │ ├── set_cover.gt │ │ ├── set_cover_extern.cpp │ │ ├── sssp.gt │ │ ├── sssp_delta_stepping.gt │ │ └── tc.gt │ │ ├── benchmark.py │ │ ├── bin │ │ └── .gitignore │ │ ├── compile.cpp │ │ ├── compile.o │ │ ├── cpps │ │ └── .gitignore │ │ ├── eval.py │ │ ├── outputs │ │ └── .gitignore │ │ ├── parse.py │ │ ├── references │ │ └── output_06_11_2020.csv │ │ └── schedules │ │ ├── DensePull_VertexParallel.gt │ │ ├── KCore_SparsePush_VertexParallel_16_Open.gt │ │ ├── SparsePushDensePull_VertexParallel.gt │ │ ├── SparsePush_VertexParallel.gt │ │ ├── SparsePush_VertexParallel_Delta2.gt │ │ ├── SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt │ │ ├── SparsePush_VertexParallel_Delta_argv.gt │ │ ├── bc_SparsePush.gt │ │ ├── bc_SparsePushDensePull.gt │ │ ├── bc_SparsePushDensePull_bitvector.gt │ │ ├── bc_SparsePushDensePull_bitvector_cache.gt │ │ ├── bfs_benchmark.gt │ │ ├── bfs_hybrid_dense_parallel_cas.gt │ │ ├── bfs_hybrid_dense_parallel_cas_bitvector.gt │ │ ├── bfs_hybrid_dense_parallel_cas_segment.gt │ │ ├── bfs_hybrid_denseforward_serial.gt │ │ ├── bfs_pull_edge_aware_parallel.gt │ │ ├── bfs_pull_parallel.gt │ │ ├── bfs_pull_parallel_segment.gt │ │ ├── bfs_push_parallel_cas.gt │ │ ├── bfs_push_sliding_queue_parallel_cas.gt │ │ ├── cc_benchmark.gt │ │ ├── cc_benchmark_cache.gt │ │ ├── cc_hybrid_dense_parallel_bitvector.gt │ │ ├── cc_hybrid_dense_parallel_bitvector_numa.gt │ │ ├── cc_hybrid_dense_parallel_bitvector_segment.gt │ │ ├── cc_hybrid_dense_parallel_cas.gt │ │ ├── cc_pull_parallel.gt │ │ ├── cc_pull_parallel_numa.gt │ │ ├── cc_pull_parallel_segment.gt │ │ ├── cc_push_parallel_cas.gt │ │ ├── cf_benchmark.gt │ │ ├── cf_benchmark_cache.gt │ │ ├── cf_pull_parallel.gt │ │ ├── cf_pull_parallel_load_balance.gt │ │ ├── cf_pull_parallel_load_balance_segment.gt │ │ ├── cf_pull_parallel_load_balance_segment_argv.gt │ │ ├── cf_pull_parallel_segment.gt │ │ ├── closeness_centrality_unweighted_hybrid_parallel.gt │ │ ├── closeness_centrality_weighted_hybrid_parallel.gt │ │ ├── eigenvector_centrality_DensePull_parallel.gt │ │ ├── eigenvector_pr_fusion.gt │ │ ├── eigenvector_pr_fusion_benchmark.gt │ │ ├── eigenvector_pr_segment.gt │ │ ├── export_simple_edgeset_apply.gt │ │ ├── k_core_const_sum_reduce.gt │ │ ├── pagerank_benchmark.gt │ │ ├── pagerank_benchmark_cache.gt │ │ ├── pagerank_benchmark_numa.gt │ │ ├── pagerank_benchmark_pull_parallel.gt │ │ ├── pagerank_delta_benchmark.gt │ │ ├── pagerank_delta_benchmark_cache.gt │ │ ├── pagerank_delta_benchmark_numa.gt │ │ ├── pagerank_delta_benchmark_split.gt │ │ ├── pagerank_delta_convergence_benchmark_cache.gt │ │ ├── pagerank_delta_hybrid_dense.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_bitvector.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_numa.gt │ │ ├── pagerank_delta_hybrid_dense_parallel_segment.gt │ │ ├── pagerank_delta_pull_parallel.gt │ │ ├── pagerank_delta_pull_parallel_load_balance.gt │ │ ├── pagerank_delta_pull_parallel_numa.gt │ │ ├── pagerank_delta_pull_parallel_segment.gt │ │ ├── pagerank_delta_sparse_push_parallel.gt │ │ ├── pagerank_hybrid_dense.gt │ │ ├── pagerank_pull_parallel.gt │ │ ├── pagerank_pull_parallel_load_balance.gt │ │ ├── pagerank_pull_parallel_numa.gt │ │ ├── pagerank_pull_parallel_numa_one_seg.gt │ │ ├── pagerank_pull_parallel_segment.gt │ │ ├── pagerank_pull_parallel_segment_argv.gt │ │ ├── pagerank_push_parallel.gt │ │ ├── priority_update_eager_no_merge.gt │ │ ├── priority_update_eager_no_merge_argv1.gt │ │ ├── priority_update_eager_no_merge_argv3.gt │ │ ├── priority_update_eager_no_merge_argv4.gt │ │ ├── priority_update_eager_with_merge.gt │ │ ├── priority_update_eager_with_merge_argv3.gt │ │ ├── priority_update_eager_with_merge_argv4.gt │ │ ├── priority_update_eager_with_merge_threshold_argv4.gt │ │ ├── set_cover.gt │ │ ├── set_cover_extern.cpp │ │ ├── simple_loop_index_split.gt │ │ ├── simple_pagerank_with_AoS.gt │ │ ├── simple_vector_sum.gt │ │ ├── sssp_benchmark.gt │ │ ├── sssp_hybrid_dense_parallel_cas.gt │ │ ├── sssp_hybrid_denseforward_parallel_cas.gt │ │ ├── sssp_pull_parallel.gt │ │ ├── sssp_push_parallel_cas.gt │ │ ├── sssp_push_parallel_sliding_queue.gt │ │ ├── tc_empty.gt │ │ ├── tc_hiroshi.gt │ │ ├── tc_multiskip.gt │ │ └── tc_naive.gt ├── pagerankdelta_example │ ├── README.md │ ├── compile_pagerankdelta_fig6.py │ └── schedules │ │ ├── cache_schedule.gt │ │ ├── datalayout_schedule.gt │ │ ├── direction_schedule.gt │ │ ├── empty_schedule.gt │ │ └── parallel_schedule.gt ├── performance_script_guide.md └── priority_graph_cgo2020_eval │ ├── perf_eval │ ├── Makefile │ ├── benchmark.py │ ├── bin │ │ └── .gitignore │ ├── compile.cpp │ ├── compile.o │ ├── cpps │ │ └── .gitignore │ ├── graphs │ │ ├── monaco │ │ │ ├── monaco.bin │ │ │ ├── monaco.wel │ │ │ ├── monaco_gapbs.sg │ │ │ └── monaco_gapbs.wsg │ │ └── testGraph │ │ │ ├── testGraph.el │ │ │ ├── testGraph_gapbs.sg │ │ │ ├── testGraph_gapbs.wsg │ │ │ ├── testGraph_gapbs_sym.sg │ │ │ └── testGraph_ligra.sadj │ ├── parse.py │ └── table4_priority_graph.py │ ├── readme.md │ └── sssp_delta_stepping_example │ ├── compile_sssp_delta_stepping_fig9.py │ └── schedules │ ├── DensePull_VertexParallel_Delta2.gt │ ├── SparsePush_VertexParallel_Delta2.gt │ ├── priority_update_eager_no_merge.gt │ └── priority_update_eager_with_merge.gt ├── include └── graphit │ ├── backend │ ├── backend.h │ ├── codegen_cpp.h │ ├── codegen_python.h │ └── gen_edge_apply_func_decl.h │ ├── frontend │ ├── clone_apply_node_visitor.h │ ├── clone_for_stmt_node_visitor.h │ ├── clone_loop_body_visitor.h │ ├── error.h │ ├── fir.h │ ├── fir_context.h │ ├── fir_printer.h │ ├── fir_visitor.h │ ├── frontend.h │ ├── high_level_schedule.h │ ├── low_level_schedule.h │ ├── parser.h │ ├── scanner.h │ ├── schedule.h │ └── token.h │ ├── midend │ ├── apply_expr_lower.h │ ├── atomics_op_lower.h │ ├── change_tracking_lower.h │ ├── field_vector_property.h │ ├── intersection_expr_lower.h │ ├── label_scope.h │ ├── merge_reduce_lower.h │ ├── midend.h │ ├── mir.h │ ├── mir_context.h │ ├── mir_emitter.h │ ├── mir_lower.h │ ├── mir_printer.h │ ├── mir_rewriter.h │ ├── mir_visitor.h │ ├── par_for_lower.h │ ├── physical_data_layout_lower.h │ ├── priority_features_lowering.h │ ├── udf_dup.h │ ├── var.h │ ├── vector_field_properties_analyzer.h │ ├── vector_op_lower.h │ └── vertex_edge_set_lower.h │ └── utils │ ├── command_line.h │ ├── exec_cmd.h │ ├── scopedmap.h │ └── util.h ├── src ├── CMakeLists.txt ├── backend │ ├── backend.cpp │ ├── codegen_cpp.cpp │ ├── codegen_python.cpp │ └── gen_edge_apply_func_decl.cpp ├── default_schedule.cpp ├── frontend │ ├── CMakeLists.txt │ ├── clone_apply_node_vistor.cpp │ ├── clone_for_stmt_node_vistor.cpp │ ├── clone_loop_body_visitor.cpp │ ├── error.cpp │ ├── fir.cpp │ ├── fir_printer.cpp │ ├── fir_visitor.cpp │ ├── frontend.cpp │ ├── high_level_schedule.cpp │ ├── low_level_schedule.cpp │ ├── parser.cpp │ ├── scanner.cpp │ ├── schedule.cpp │ └── token.cpp ├── graphitc.py ├── main.cpp ├── midend │ ├── apply_expr_lower.cpp │ ├── atomics_op_lower.cpp │ ├── change_tracking_lower.cpp │ ├── intersection_expr_lower.cpp │ ├── merge_reduce_lower.cpp │ ├── midend.cpp │ ├── mir.cpp │ ├── mir_context.cpp │ ├── mir_emitter.cpp │ ├── mir_lower.cpp │ ├── mir_printer.cpp │ ├── mir_rewriter.cpp │ ├── mir_visitor.cpp │ ├── par_for_lower.cpp │ ├── physical_data_layout_lower.cpp │ ├── priority_features_lowering.cpp │ ├── udf_dup.cpp │ ├── vector_field_properties_analyzer.cpp │ ├── vector_op_lower.cpp │ └── vertex_edge_set_lower.cpp ├── python │ └── graphit.py ├── runtime_lib │ ├── edgeset_apply_functions.h │ ├── infra_gapbs │ │ ├── benchmark.h │ │ ├── bitmap.h │ │ ├── bucket.h │ │ ├── builder.h │ │ ├── command_line.h │ │ ├── eager_priority_queue.h │ │ ├── generator.h │ │ ├── graph.h │ │ ├── graph_verifier.h │ │ ├── intersections.h │ │ ├── minimum_spanning_tree.h │ │ ├── ordered_processing.h │ │ ├── platform_atomics.h │ │ ├── pvector.h │ │ ├── reader.h │ │ ├── segmentgraph.h │ │ ├── sliding_queue.h │ │ ├── timer.h │ │ ├── util.h │ │ └── writer.h │ ├── infra_julienne │ │ ├── IO.h │ │ ├── binary_search.h │ │ ├── blockRadixSort.h │ │ ├── bucket.h │ │ ├── byte-pd.h │ │ ├── byte.h │ │ ├── byteRLE-pd.h │ │ ├── byteRLE.h │ │ ├── compressedVertex.h │ │ ├── counting_sort.h │ │ ├── dyn_arr.h │ │ ├── edgeMapReduce.h │ │ ├── edgeMap_utils.h │ │ ├── gettime.h │ │ ├── graph.h │ │ ├── histogram.h │ │ ├── index_map.h │ │ ├── ligra.h │ │ ├── maybe.h │ │ ├── nibble-pd.h │ │ ├── nibble.h │ │ ├── parallel.h │ │ ├── parseCommandLine.h │ │ ├── priority_queue.h │ │ ├── priority_queue_gapbs.h │ │ ├── quickSort.h │ │ ├── sequence.h │ │ ├── sequentialHT.h │ │ ├── transpose.h │ │ ├── utils.h │ │ ├── vertex.h │ │ └── vertexSubset.h │ ├── infra_ligra │ │ └── ligra │ │ │ ├── IO.h │ │ │ ├── blockRadixSort.h │ │ │ ├── byte-pd.h │ │ │ ├── byte.h │ │ │ ├── byteRLE-pd.h │ │ │ ├── byteRLE.h │ │ │ ├── compressedVertex.h │ │ │ ├── encoder.C │ │ │ ├── gettime.h │ │ │ ├── graph.h │ │ │ ├── ligra.h │ │ │ ├── nibble-pd.h │ │ │ ├── nibble.h │ │ │ ├── parallel.h │ │ │ ├── parseCommandLine.h │ │ │ ├── quickSort.h │ │ │ ├── transpose.h │ │ │ ├── utils.h │ │ │ ├── vertex.h │ │ │ └── vertexSubset.h │ ├── intrinsics.h │ └── vertexsubset.h └── utils │ ├── exec_cmd.cpp │ └── util.cpp └── test ├── CMakeLists.txt ├── c++ ├── CMakeLists.txt ├── backend_test.cpp ├── frontend_test.cpp ├── high_level_schedule_test.cpp ├── low_level_schedule_test.cpp ├── midend_test.cpp ├── runtime_lib_test.cpp └── test.cpp ├── graphs ├── 4.el ├── 4.mtx ├── 4.sg ├── 4.wel ├── 4_sym.el ├── monaco.bin ├── mst_special_case.wel ├── rMatGraph_J_5_100 ├── rMatGraph_J_5_100.el ├── rmat10.el ├── test.el ├── test.wel ├── test2.wel ├── test_cf.wel ├── test_closeness_sssp.wel └── test_sym.el ├── gtest ├── LICENSE ├── README.SIMIT ├── gtest-all.cc └── gtest.h ├── input ├── argv_safe.gt ├── astar.gt ├── astar_distance_loader.cpp ├── astar_distance_loader.gt ├── astar_example.gt ├── astar_functor.gt ├── bc.gt ├── bc_functor.gt ├── bellman_ford_simplified.gt ├── bfs_with_filename_arg.gt ├── cc.gt ├── cc_pjump.gt ├── cf.gt ├── closeness_centrality_unweighted.gt ├── closeness_centrality_unweighted_for_testing.gt ├── closeness_centrality_unweighted_functor.gt ├── closeness_centrality_unweighted_functor_parallel_for.gt ├── closeness_centrality_weighted.gt ├── closeness_centrality_weighted_for_testing.gt ├── closeness_centrality_weighted_functor.gt ├── const_vector_global.gt ├── constant_vector.gt ├── delta_stepping.gt ├── eigenvector_centrality.gt ├── export_cf_vector_input_with_return.gt ├── export_constant_size_vector_of_vector_return.gt ├── export_constant_size_vector_return.gt ├── export_extern_simple_edgeset_appply.gt ├── export_pagerank_delta.gt ├── export_pagerank_with_vector_input.gt ├── export_pr.gt ├── export_pr_delta.gt ├── export_pr_with_return.gt ├── export_simple_edgeset_apply.gt ├── export_sssp.gt ├── export_sssp_UW.gt ├── export_various_types_vector_arg.gt ├── export_vector_of_constant_size_arg.gt ├── export_vector_of_vector.gt ├── extern_add_one.cpp ├── extern_simple_edgeset_apply.gt ├── extern_src_add_one.cpp ├── extern_vertexset_apply.gt ├── functor.gt ├── functor_edgeset_apply.gt ├── functor_edgeset_applyUpdatePriority.gt ├── functor_edgeset_from_to.gt ├── functor_edgeset_srcFilter_dstFilter.gt ├── functor_float_as_argument.gt ├── functor_int_as_argument.gt ├── functor_local_vector.gt ├── functor_multiple_local_vector.gt ├── functor_multiple_local_vector_with_int.gt ├── functor_vector.gt ├── k_core.gt ├── k_core_uint.gt ├── kcore_example.gt ├── local_vector.gt ├── local_vector_call_expr.gt ├── main_print_add.gt ├── nested_par_for.gt ├── outdegree_sum.gt ├── pagerank.gt ├── pagerank_with_filename_arg.gt ├── par_for.gt ├── par_for_schedule_testing.gt ├── ppsp_delta_stepping.gt ├── pr_delta.gt ├── simple_apply_max.gt ├── simple_apply_sum.gt ├── simple_array.gt ├── simple_atoi.gt ├── simple_bc.gt ├── simple_bfs.gt ├── simple_boolean_op.gt ├── simple_cc.gt ├── simple_edgeset.gt ├── simple_edgeset_apply.gt ├── simple_edgeset_apply_from_to.gt ├── simple_edgeset_transpose.gt ├── simple_export_func.gt ├── simple_extern_function.cpp ├── simple_extern_function.gt ├── simple_extern_function_sum.cpp ├── simple_extern_function_sum.gt ├── simple_fixed_iter_pagerank.gt ├── simple_for_loop.gt ├── simple_from_to_apply_return_frontier.gt ├── simple_func_add_no_return.gt ├── simple_if_elif_else.gt ├── simple_int_list.gt ├── simple_main.gt ├── simple_main_fail.gt ├── simple_mis.gt ├── simple_multi_arrays.gt ├── simple_spmv.gt ├── simple_sssp.gt ├── simple_sum_function_double.gt ├── simple_sum_function_float.gt ├── simple_sum_function_int.gt ├── simple_timer.gt ├── simple_variable.gt ├── simple_vector_sum.gt ├── simple_vertex_edge_load.gt ├── simple_vertexset_apply.gt ├── simple_vertexset_filter.gt ├── simple_vertexset_list.gt ├── simple_vertexset_where.gt ├── simple_weighted_edgeset_apply.gt ├── sssp.gt ├── sssp_with_delete.gt ├── tc.gt ├── unordered_kcore.gt ├── vertex_edge_load.gt ├── vertex_size.gt ├── vertexset_filter.gt └── vertexset_filter_const.gt ├── input_with_schedules ├── DensePull_VertexParallel.gt ├── KCore_SparsePush_VertexParallel_16_Open.gt ├── SparsePushDensePull_VertexParallel.gt ├── SparsePush_VertexParallel.gt ├── SparsePush_VertexParallel_Delta2.gt ├── SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt ├── SparsePush_VertexParallel_Delta_argv.gt ├── bc_ParForSparsePushDensePull_bitvector.gt ├── bc_SparsePush.gt ├── bc_SparsePushDensePull.gt ├── bc_SparsePushDensePull_bitvector.gt ├── bc_SparsePushDensePull_bitvector_cache.gt ├── bfs_benchmark.gt ├── bfs_hybrid_dense_parallel_cas.gt ├── bfs_hybrid_dense_parallel_cas_bitvector.gt ├── bfs_hybrid_dense_parallel_cas_segment.gt ├── bfs_hybrid_denseforward_serial.gt ├── bfs_pull_edge_aware_parallel.gt ├── bfs_pull_parallel.gt ├── bfs_pull_parallel_segment.gt ├── bfs_push_parallel_cas.gt ├── bfs_push_sliding_queue_parallel_cas.gt ├── cc_benchmark.gt ├── cc_benchmark_cache.gt ├── cc_hybrid_dense_parallel_bitvector.gt ├── cc_hybrid_dense_parallel_bitvector_numa.gt ├── cc_hybrid_dense_parallel_bitvector_segment.gt ├── cc_hybrid_dense_parallel_cas.gt ├── cc_pull_parallel.gt ├── cc_pull_parallel_numa.gt ├── cc_pull_parallel_segment.gt ├── cc_push_parallel_cas.gt ├── cf_benchmark.gt ├── cf_benchmark_cache.gt ├── cf_pull_parallel.gt ├── cf_pull_parallel_load_balance.gt ├── cf_pull_parallel_load_balance_segment.gt ├── cf_pull_parallel_load_balance_segment_argv.gt ├── cf_pull_parallel_segment.gt ├── closeness_centrality_unweighted_hybrid_parallel.gt ├── closeness_centrality_unweighted_parallel_for_hybrid_parallel.gt ├── closeness_centrality_weighted_hybrid_parallel.gt ├── eigenvector_centrality_DensePull_parallel.gt ├── eigenvector_pr_fusion.gt ├── eigenvector_pr_fusion_benchmark.gt ├── eigenvector_pr_segment.gt ├── export_simple_edgeset_apply.gt ├── k_core_const_sum_reduce.gt ├── nested_par_for_schedule.gt ├── pagerank_benchmark.gt ├── pagerank_benchmark_cache.gt ├── pagerank_benchmark_numa.gt ├── pagerank_benchmark_pull_parallel.gt ├── pagerank_delta_benchmark.gt ├── pagerank_delta_benchmark_cache.gt ├── pagerank_delta_benchmark_numa.gt ├── pagerank_delta_benchmark_split.gt ├── pagerank_delta_convergence_benchmark_cache.gt ├── pagerank_delta_hybrid_dense.gt ├── pagerank_delta_hybrid_dense_parallel_bitvector.gt ├── pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt ├── pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt ├── pagerank_delta_hybrid_dense_parallel_numa.gt ├── pagerank_delta_hybrid_dense_parallel_segment.gt ├── pagerank_delta_pull_parallel.gt ├── pagerank_delta_pull_parallel_load_balance.gt ├── pagerank_delta_pull_parallel_numa.gt ├── pagerank_delta_pull_parallel_segment.gt ├── pagerank_delta_sparse_push_parallel.gt ├── pagerank_hybrid_dense.gt ├── pagerank_pull_parallel.gt ├── pagerank_pull_parallel_load_balance.gt ├── pagerank_pull_parallel_numa.gt ├── pagerank_pull_parallel_numa_one_seg.gt ├── pagerank_pull_parallel_segment.gt ├── pagerank_pull_parallel_segment_argv.gt ├── pagerank_push_parallel.gt ├── par_for_grain_size.gt ├── priority_update_eager_no_merge.gt ├── priority_update_eager_no_merge_argv1.gt ├── priority_update_eager_no_merge_argv3.gt ├── priority_update_eager_no_merge_argv4.gt ├── priority_update_eager_with_merge.gt ├── priority_update_eager_with_merge_argv3.gt ├── priority_update_eager_with_merge_argv4.gt ├── priority_update_eager_with_merge_threshold_argv4.gt ├── set_cover.gt ├── set_cover_extern.cpp ├── simple_loop_index_split.gt ├── simple_pagerank_with_AoS.gt ├── simple_vector_sum.gt ├── sssp_benchmark.gt ├── sssp_hybrid_dense_parallel_cas.gt ├── sssp_hybrid_denseforward_parallel_cas.gt ├── sssp_pull_parallel.gt ├── sssp_push_parallel_cas.gt ├── sssp_push_parallel_sliding_queue.gt ├── tc_empty.gt ├── tc_hiroshi.gt ├── tc_multiskip.gt └── tc_naive.gt ├── library_test_drivers ├── library_test_driver_cf_cpp.txt ├── library_test_driver_cpp.txt └── library_test_driver_weighted_cpp.txt ├── python ├── pybind_test.py ├── test.py └── test_with_schedules.py └── verifiers ├── bc_verifier.cpp ├── bfs_verifier.cpp ├── cc_verifier.cpp ├── ppsp_verifier.cpp ├── sssp_verifier.cpp ├── tc_verifier.cpp └── verifier_utils.h /.gitignore: -------------------------------------------------------------------------------- 1 | /Debug/ 2 | .DS_Store 3 | .cproject 4 | .project 5 | .settings/ 6 | .idea/ 7 | build/ 8 | cmake-build-debug/ 9 | -------------------------------------------------------------------------------- /apps/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /apps/python_bindings/pagerank_delta/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /autotune/default_schedules/pagerank_delta_default_schedule.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->fuseFields("out_degree", "old_rank"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/data/testGraph/testGraph_gapbs.sg: -------------------------------------------------------------------------------- 1 | 5  ).//05 2 |  3 |   4 |   5 |  6 |  #(-15 7 |        -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/data/testGraph/testGraph_gapbs.wsg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/devcloud_eval_dataset1/data/testGraph/testGraph_gapbs.wsg -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/apps/closeness_unweighted.gt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/devcloud_eval_dataset1/table7/apps/closeness_unweighted.gt -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/apps/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/apps/python_bindings/pagerank_delta/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/bin/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/cpps/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/outputs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/DensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/KCore_SparsePush_VertexParallel_16_Open.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush"); 3 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configNumOpenBuckets("s1", 16); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/SparsePushDensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/SparsePush_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/SparsePush_VertexParallel_Delta2.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", 2); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 6 | program->configNumOpenBuckets("s1", "argv[4]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/SparsePush_VertexParallel_Delta_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bc_SparsePush.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bc_SparsePushDensePull.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush-DensePull")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bc_SparsePushDensePull_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | 6 | program->configApplyDirection("s2", "SparsePush-DensePull") 7 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 8 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bc_SparsePushDensePull_bitvector_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull") 5 | ->configApplyNumSSG("s1", "fixed-vertex-count", 10, "DensePull"); 6 | 7 | program->configApplyDirection("s2", "SparsePush-DensePull") 8 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 9 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_hybrid_dense_parallel_cas_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->configApplyParallelization("s2", "serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_hybrid_dense_parallel_cas_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 7, "DensePull"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_hybrid_denseforward_serial.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePush-SparsePush"); 3 | program->configApplyParallelization("s1", "serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_pull_edge_aware_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "edge-aware-dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 10); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/bfs_push_sliding_queue_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel")->setApply("s1", "sliding_queue"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull") 4 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_hybrid_dense_parallel_bitvector_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_hybrid_dense_parallel_bitvector_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 8, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cc_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cf_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cf_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cf_pull_parallel_load_balance_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5, "DensePull"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cf_pull_parallel_load_balance_segment_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/cf_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/closeness_centrality_unweighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/closeness_centrality_weighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/eigenvector_centrality_DensePull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/export_simple_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex); 5 | const vertices : vertexset{Vertex}; 6 | const vector_a : vector{Vertex}(float); 7 | 8 | func vector_a_init(v : Vertex) 9 | vector_a[v] = 0; 10 | end 11 | 12 | func srcAddOne(src : Vertex, dst : Vertex) 13 | vector_a[src] = vector_a[src] + 1; 14 | end 15 | 16 | export func export_func(input_edges : edgeset{Edge}(Vertex,Vertex)) 17 | edges = input_edges; 18 | vertices = edges.getVertices(); 19 | vector_a = new vector{Vertex}(float)(); 20 | vertices.apply(vector_a_init); 21 | edges.apply(srcAddOne); 22 | var sum : float = 0; 23 | for i in 0 : edges.getVertices() 24 | sum += vector_a[i]; 25 | end 26 | print sum; 27 | end -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/k_core_const_sum_reduce.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyPriorityUpdate("s1", "constant_sum_reduce_before_update"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_benchmark_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->fuseFields("delta", "out_degree"); 7 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("delta", "out_degree"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 6 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 7 | program->fuseFields("delta", "out_degree"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_hybrid_dense_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_hybrid_dense_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2); 4 | program->configApplyNUMA("s1", "static-parallel"); 5 | 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_delta_sparse_push_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->fuseFields("delta", "out_degree"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("out_degree", "old_rank"); 4 | 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance", 1); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5)->configApplyNUMA("s1", "static-parallel"); 4 | 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_pull_parallel_numa_one_seg.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 1)->configApplyNUMA("s1", "static-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyNumSSG("s1", "fixed-vertex-count", 5); 3 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/pagerank_pull_parallel_segment_argv.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull") 3 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 4 | ->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_no_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configApplyParallelization("s2","serial"); 5 | 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_no_merge_argv1.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[1]"); 4 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_no_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_no_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_with_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_with_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_with_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/priority_update_eager_with_merge_threshold_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", "argv[4]"); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/simple_loop_index_split.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | # l1 # for i in 1:10; 3 | # s1 # print i; 4 | end 5 | end 6 | 7 | schedule: 8 | 9 | program->splitForLoop("l1", "l2", "l3", 2, 8); 10 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/simple_pagerank_with_AoS.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->fuseFields("old_rank", "out_degree"); 3 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/simple_vector_sum.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/sssp_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/sssp_hybrid_denseforward_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePush-SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/sssp_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/sssp_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/sssp_push_parallel_sliding_queue.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1","sliding_queue"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/tc_empty.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/tc_hiroshi.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel", 64); 3 | program->configIntersection("s2", "HiroshiIntersection"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/tc_multiskip.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "MultiskipIntersection"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset1/table7/schedules/tc_naive.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "NaiveIntersection"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/data/testGraph/testGraph_gapbs.sg: -------------------------------------------------------------------------------- 1 | 5  ).//05 2 |  3 |   4 |   5 |  6 |  #(-15 7 |        -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/data/testGraph/testGraph_gapbs.wsg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/devcloud_eval_dataset2/data/testGraph/testGraph_gapbs.wsg -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/apps/closeness_unweighted.gt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/devcloud_eval_dataset2/table7/apps/closeness_unweighted.gt -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/apps/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/apps/python_bindings/pagerank_delta/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/bin/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/cpps/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/outputs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/DensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/KCore_SparsePush_VertexParallel_16_Open.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush"); 3 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configNumOpenBuckets("s1", 16); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/SparsePushDensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/SparsePush_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/SparsePush_VertexParallel_Delta2.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", 2); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 6 | program->configNumOpenBuckets("s1", "argv[4]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/SparsePush_VertexParallel_Delta_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bc_SparsePush.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bc_SparsePushDensePull.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush-DensePull")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bc_SparsePushDensePull_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | 6 | program->configApplyDirection("s2", "SparsePush-DensePull") 7 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 8 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bc_SparsePushDensePull_bitvector_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull") 5 | ->configApplyNumSSG("s1", "fixed-vertex-count", 10, "DensePull"); 6 | 7 | program->configApplyDirection("s2", "SparsePush-DensePull") 8 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 9 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_hybrid_dense_parallel_cas_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->configApplyParallelization("s2", "serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_hybrid_dense_parallel_cas_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 7, "DensePull"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_hybrid_denseforward_serial.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePush-SparsePush"); 3 | program->configApplyParallelization("s1", "serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_pull_edge_aware_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "edge-aware-dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 10); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/bfs_push_sliding_queue_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel")->setApply("s1", "sliding_queue"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull") 4 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_hybrid_dense_parallel_bitvector_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_hybrid_dense_parallel_bitvector_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 8, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cc_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cf_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cf_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cf_pull_parallel_load_balance_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5, "DensePull"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cf_pull_parallel_load_balance_segment_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/cf_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/closeness_centrality_unweighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/closeness_centrality_weighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/eigenvector_centrality_DensePull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/export_simple_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex); 5 | const vertices : vertexset{Vertex}; 6 | const vector_a : vector{Vertex}(float); 7 | 8 | func vector_a_init(v : Vertex) 9 | vector_a[v] = 0; 10 | end 11 | 12 | func srcAddOne(src : Vertex, dst : Vertex) 13 | vector_a[src] = vector_a[src] + 1; 14 | end 15 | 16 | export func export_func(input_edges : edgeset{Edge}(Vertex,Vertex)) 17 | edges = input_edges; 18 | vertices = edges.getVertices(); 19 | vector_a = new vector{Vertex}(float)(); 20 | vertices.apply(vector_a_init); 21 | edges.apply(srcAddOne); 22 | var sum : float = 0; 23 | for i in 0 : edges.getVertices() 24 | sum += vector_a[i]; 25 | end 26 | print sum; 27 | end -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/k_core_const_sum_reduce.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyPriorityUpdate("s1", "constant_sum_reduce_before_update"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_benchmark_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->fuseFields("delta", "out_degree"); 7 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("delta", "out_degree"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 6 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 7 | program->fuseFields("delta", "out_degree"); 8 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_hybrid_dense_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_hybrid_dense_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2); 4 | program->configApplyNUMA("s1", "static-parallel"); 5 | 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_delta_sparse_push_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->fuseFields("delta", "out_degree"); 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("out_degree", "old_rank"); 4 | 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance", 1); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5)->configApplyNUMA("s1", "static-parallel"); 4 | 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_pull_parallel_numa_one_seg.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 1)->configApplyNUMA("s1", "static-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyNumSSG("s1", "fixed-vertex-count", 5); 3 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/pagerank_pull_parallel_segment_argv.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull") 3 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 4 | ->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_no_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configApplyParallelization("s2","serial"); 5 | 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_no_merge_argv1.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[1]"); 4 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_no_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_no_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_with_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_with_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_with_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/priority_update_eager_with_merge_threshold_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", "argv[4]"); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/simple_loop_index_split.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | # l1 # for i in 1:10; 3 | # s1 # print i; 4 | end 5 | end 6 | 7 | schedule: 8 | 9 | program->splitForLoop("l1", "l2", "l3", 2, 8); 10 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/simple_pagerank_with_AoS.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->fuseFields("old_rank", "out_degree"); 3 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/simple_vector_sum.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/sssp_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/sssp_hybrid_denseforward_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePush-SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/sssp_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/sssp_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/sssp_push_parallel_sliding_queue.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1","sliding_queue"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/tc_empty.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/tc_hiroshi.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel", 64); 3 | program->configIntersection("s2", "HiroshiIntersection"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/tc_multiskip.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "MultiskipIntersection"); -------------------------------------------------------------------------------- /graphit_eval/devcloud_eval_dataset2/table7/schedules/tc_naive.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "NaiveIntersection"); -------------------------------------------------------------------------------- /graphit_eval/eval/Xeon_E5-4640/bin/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/eval/Xeon_E5-4640/cpps/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/eval/Xeon_E5-4640/outputs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/eval/data/testGraph/testGraph_gapbs.sg: -------------------------------------------------------------------------------- 1 | 5  ).//05 2 |  3 |   4 |   5 |  6 |  #(-15 7 |        -------------------------------------------------------------------------------- /graphit_eval/eval/data/testGraph/testGraph_gapbs.wsg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/eval/data/testGraph/testGraph_gapbs.wsg -------------------------------------------------------------------------------- /graphit_eval/eval/table7/bin/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/eval/table7/compile.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace graphit { 3 | void user_defined_schedule (graphit::fir::high_level_schedule::ProgramScheduleNode::Ptr program) { 4 | program->configApplyDirection("s1", "SparsePush-DensePull") 5 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 6 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 7 | 8 | program->configApplyDirection("s2", "SparsePush-DensePull") 9 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 10 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull");} 11 | } -------------------------------------------------------------------------------- /graphit_eval/eval/table7/compile.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/eval/table7/compile.o -------------------------------------------------------------------------------- /graphit_eval/eval/table7/cpps/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/eval/table7/outputs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/data/testGraph/testGraph_gapbs.sg: -------------------------------------------------------------------------------- 1 | 5  ).//05 2 |  3 |   4 |   5 |  6 |  #(-15 7 |        -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/data/testGraph/testGraph_gapbs.wsg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/lanka_eval/data/testGraph/testGraph_gapbs.wsg -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/apps/closeness_unweighted.gt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/lanka_eval/table7/apps/closeness_unweighted.gt -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/apps/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/apps/python_bindings/pagerank_delta/pagerank_delta.py: -------------------------------------------------------------------------------- 1 | import graphit 2 | import scipy.io 3 | from scipy.sparse import csr_matrix 4 | import sys 5 | import time 6 | 7 | module = graphit.compile_and_load("pagerank_delta_export.gt") 8 | graph = csr_matrix(scipy.io.mmread(sys.argv[1])) 9 | module.set_graph(graph) 10 | start_time = time.perf_counter() 11 | ranks = module.do_pagerank_delta() 12 | end_time = time.perf_counter() 13 | 14 | print ("Time elapsed = " + str(end_time - start_time) + " seconds") 15 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/bin/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/compile.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace graphit { 3 | void user_defined_schedule (graphit::fir::high_level_schedule::ProgramScheduleNode::Ptr program) { 4 | program->configApplyDirection("s1", "SparsePush-DensePull") 5 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 6 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 7 | 8 | program->configApplyDirection("s2", "SparsePush-DensePull") 9 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 10 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull");} 11 | } -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/compile.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/lanka_eval/table7/compile.o -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/cpps/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/outputs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/references/output_06_11_2020.csv: -------------------------------------------------------------------------------- 1 | bfs,road,0.263924171875 2 | bfs,urand,0.65382009375 3 | bfs,twitter,0.27707725 4 | bfs,web,0.491334890625 5 | bfs,kron,0.418468515625 6 | pr,road,0.519239 7 | pr,urand,14.3127 8 | pr,twitter,8.44806 9 | pr,web,3.84735 10 | pr,kron,13.1972 11 | cc,road,12.8235625 12 | cc,urand,6.764134375 13 | cc,twitter,1.67662375 14 | cc,web,1.47725375 15 | cc,kron,5.6598025 16 | tc,road,0.04984 17 | tc,urand,20.0516333333 18 | tc,twitter,60.7694333333 19 | tc,web,17.4694666667 20 | tc,kron,283.839 21 | bc,road,4.562111875 22 | bc,urand,20.35998125 23 | bc,twitter,6.258170625 24 | bc,web,4.7887066875 25 | bc,kron,16.26163125 26 | ds,road,0.22332478125 27 | ds,urand,7.755760625 28 | ds,twitter,2.34963828125 29 | ds,web,0.838866453125 30 | ds,kron,5.76633921875 31 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/DensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/KCore_SparsePush_VertexParallel_16_Open.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush"); 3 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configNumOpenBuckets("s1", 16); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/SparsePushDensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/SparsePush_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/SparsePush_VertexParallel_Delta2.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", 2); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 6 | program->configNumOpenBuckets("s1", "argv[4]"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/SparsePush_VertexParallel_Delta_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bc_SparsePush.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bc_SparsePushDensePull.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush-DensePull")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bc_SparsePushDensePull_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | 6 | program->configApplyDirection("s2", "SparsePush-DensePull") 7 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 8 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bc_SparsePushDensePull_bitvector_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull") 5 | ->configApplyNumSSG("s1", "fixed-vertex-count", 10, "DensePull"); 6 | 7 | program->configApplyDirection("s2", "SparsePush-DensePull") 8 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 9 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_hybrid_dense_parallel_cas_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->configApplyParallelization("s2", "serial"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_hybrid_dense_parallel_cas_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 7, "DensePull"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_hybrid_denseforward_serial.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePush-SparsePush"); 3 | program->configApplyParallelization("s1", "serial"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_pull_edge_aware_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "edge-aware-dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 10); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/bfs_push_sliding_queue_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel")->setApply("s1", "sliding_queue"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull") 4 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_hybrid_dense_parallel_bitvector_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_hybrid_dense_parallel_bitvector_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 8, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cc_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cf_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cf_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cf_pull_parallel_load_balance_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5, "DensePull"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cf_pull_parallel_load_balance_segment_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/cf_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/closeness_centrality_unweighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/closeness_centrality_weighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/eigenvector_centrality_DensePull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/export_simple_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex); 5 | const vertices : vertexset{Vertex}; 6 | const vector_a : vector{Vertex}(float); 7 | 8 | func vector_a_init(v : Vertex) 9 | vector_a[v] = 0; 10 | end 11 | 12 | func srcAddOne(src : Vertex, dst : Vertex) 13 | vector_a[src] = vector_a[src] + 1; 14 | end 15 | 16 | export func export_func(input_edges : edgeset{Edge}(Vertex,Vertex)) 17 | edges = input_edges; 18 | vertices = edges.getVertices(); 19 | vector_a = new vector{Vertex}(float)(); 20 | vertices.apply(vector_a_init); 21 | edges.apply(srcAddOne); 22 | var sum : float = 0; 23 | for i in 0 : edges.getVertices() 24 | sum += vector_a[i]; 25 | end 26 | print sum; 27 | end -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/k_core_const_sum_reduce.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyPriorityUpdate("s1", "constant_sum_reduce_before_update"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_benchmark_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->fuseFields("delta", "out_degree"); 7 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 8 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("delta", "out_degree"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 6 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 7 | program->fuseFields("delta", "out_degree"); 8 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_hybrid_dense_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_hybrid_dense_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2); 4 | program->configApplyNUMA("s1", "static-parallel"); 5 | 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_delta_sparse_push_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->fuseFields("delta", "out_degree"); 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("out_degree", "old_rank"); 4 | 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance", 1); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5)->configApplyNUMA("s1", "static-parallel"); 4 | 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_pull_parallel_numa_one_seg.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 1)->configApplyNUMA("s1", "static-parallel"); 4 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyNumSSG("s1", "fixed-vertex-count", 5); 3 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/pagerank_pull_parallel_segment_argv.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull") 3 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 4 | ->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_no_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configApplyParallelization("s2","serial"); 5 | 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_no_merge_argv1.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[1]"); 4 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_no_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_no_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_with_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_with_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_with_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/priority_update_eager_with_merge_threshold_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", "argv[4]"); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/simple_loop_index_split.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | # l1 # for i in 1:10; 3 | # s1 # print i; 4 | end 5 | end 6 | 7 | schedule: 8 | 9 | program->splitForLoop("l1", "l2", "l3", 2, 8); 10 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/simple_pagerank_with_AoS.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->fuseFields("old_rank", "out_degree"); 3 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/simple_vector_sum.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/sssp_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/sssp_hybrid_denseforward_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePush-SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/sssp_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/sssp_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/sssp_push_parallel_sliding_queue.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1","sliding_queue"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/tc_empty.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/tc_hiroshi.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel", 64); 3 | program->configIntersection("s2", "HiroshiIntersection"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/tc_multiskip.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "MultiskipIntersection"); -------------------------------------------------------------------------------- /graphit_eval/lanka_eval/table7/schedules/tc_naive.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "NaiveIntersection"); -------------------------------------------------------------------------------- /graphit_eval/pagerankdelta_example/README.md: -------------------------------------------------------------------------------- 1 | This directory contain the scripts to compile graphit/apps/pagerankdelta.gt with different schedules. 2 | It demonstrates how the algorithm and scheduling language works, following the example in Fig.6. of the [arxiv paper](https://arxiv.org/pdf/1805.00923.pdf) -------------------------------------------------------------------------------- /graphit_eval/pagerankdelta_example/schedules/cache_schedule.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->fuseFields("delta", "out_degree"); -------------------------------------------------------------------------------- /graphit_eval/pagerankdelta_example/schedules/datalayout_schedule.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull-SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->fuseFields("delta", "out_degree"); 4 | -------------------------------------------------------------------------------- /graphit_eval/pagerankdelta_example/schedules/direction_schedule.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull-SparsePush"); -------------------------------------------------------------------------------- /graphit_eval/pagerankdelta_example/schedules/empty_schedule.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | -------------------------------------------------------------------------------- /graphit_eval/pagerankdelta_example/schedules/parallel_schedule.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull-SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/bin/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/compile.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace graphit { 3 | void user_defined_schedule (graphit::fir::high_level_schedule::ProgramScheduleNode::Ptr program) { 4 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[4]");} 6 | } -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/compile.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/priority_graph_cgo2020_eval/perf_eval/compile.o -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/cpps/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/monaco/monaco.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/monaco/monaco.bin -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/monaco/monaco_gapbs.sg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/monaco/monaco_gapbs.sg -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/monaco/monaco_gapbs.wsg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/monaco/monaco_gapbs.wsg -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/testGraph/testGraph_gapbs.sg: -------------------------------------------------------------------------------- 1 | 5  ).//05 2 |  3 |   4 |   5 |  6 |  #(-15 7 |        -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/testGraph/testGraph_gapbs.wsg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/testGraph/testGraph_gapbs.wsg -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/perf_eval/graphs/testGraph/testGraph_gapbs_sym.sg: -------------------------------------------------------------------------------- 1 | j %--1<FQW\aj 2 |  3 |  4 |     5 |   6 |    7 | -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/sssp_delta_stepping_example/schedules/DensePull_VertexParallel_Delta2.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", 2); 6 | -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/sssp_delta_stepping_example/schedules/SparsePush_VertexParallel_Delta2.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", 2); -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/sssp_delta_stepping_example/schedules/priority_update_eager_no_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configApplyParallelization("s2","serial"); 5 | 6 | -------------------------------------------------------------------------------- /graphit_eval/priority_graph_cgo2020_eval/sssp_delta_stepping_example/schedules/priority_update_eager_with_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /include/graphit/backend/backend.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 2/14/17. 3 | // 4 | 5 | #ifndef GRAPHIT_BACKEND_H 6 | #define GRAPHIT_BACKEND_H 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | namespace graphit { 13 | class Backend { 14 | public: 15 | Backend(MIRContext* mir_context) : mir_context_(mir_context){ 16 | 17 | } 18 | 19 | int emitCPP(std::ostream &oss = std::cout, std::string module_name=""); 20 | int emitPython(std::ostream &oss = std::cout, std::string module_name="", std::string module_path=""); 21 | 22 | private: 23 | MIRContext* mir_context_; 24 | }; 25 | } 26 | #endif //GRAPHIT_BACKEND_H 27 | -------------------------------------------------------------------------------- /include/graphit/frontend/fir_context.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 2/15/17. 3 | // 4 | 5 | #ifndef GRAPHIT_FIR_CONTEXT_H 6 | #define GRAPHIT_FIR_CONTEXT_H 7 | 8 | #include 9 | 10 | namespace graphit { 11 | 12 | class FIRContext { 13 | public: 14 | FIRContext() { 15 | } 16 | 17 | 18 | ~FIRContext() { 19 | } 20 | 21 | void setProgram(fir::Program::Ptr program){ 22 | fir_program_ = program; 23 | } 24 | 25 | fir::Program::Ptr getProgram(){ 26 | return fir_program_; 27 | } 28 | 29 | private: 30 | fir::Program::Ptr fir_program_; 31 | }; 32 | } 33 | 34 | 35 | #endif //GRAPHIT_FIR_CONTEXT_H 36 | -------------------------------------------------------------------------------- /include/graphit/midend/field_vector_property.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 6/30/17. 3 | // 4 | 5 | #ifndef GRAPHIT_FIELDVECTORPROPERTY_H 6 | #define GRAPHIT_FIELDVECTORPROPERTY_H 7 | 8 | namespace graphit { 9 | struct FieldVectorProperty { 10 | enum class AccessType { 11 | LOCAL, 12 | SHARED 13 | }; 14 | 15 | enum class ReadWriteType { 16 | READ_ONLY, 17 | WRITE_ONLY, 18 | READ_AND_WRITE 19 | }; 20 | 21 | AccessType access_type_; 22 | ReadWriteType read_write_type; 23 | }; 24 | } 25 | 26 | #endif //GRAPHIT_FIELDVECTORPROPERTY_H 27 | -------------------------------------------------------------------------------- /include/graphit/midend/mir_lower.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/9/17. 3 | // 4 | 5 | #ifndef GRAPHIT_MIR_LOWER_H 6 | #define GRAPHIT_MIR_LOWER_H 7 | 8 | #include 9 | #include 10 | 11 | 12 | 13 | namespace graphit { 14 | class MIRLower { 15 | public: 16 | MIRLower(){}; 17 | 18 | void lower(MIRContext* mir_context, Schedule* schedule); 19 | 20 | }; 21 | } 22 | 23 | 24 | #endif //GRAPHIT_MIR_LOWER_H 25 | -------------------------------------------------------------------------------- /include/graphit/midend/udf_dup.h: -------------------------------------------------------------------------------- 1 | #ifndef GRAPHIT_UDF_DUP_H 2 | #define GRAPHIT_UDF_DUP_H 3 | 4 | #include 5 | 6 | namespace graphit { 7 | 8 | class UDFReuseFinder: public mir::MIRVisitor { 9 | public: 10 | UDFReuseFinder(MIRContext *mir_context) : mir_context_(mir_context){ 11 | 12 | } 13 | 14 | void lower(); 15 | 16 | virtual void visit(mir::EdgeSetApplyExpr::Ptr); 17 | 18 | private: 19 | MIRContext *mir_context_; 20 | 21 | // Map to store all the usages of a function 22 | std::map> udf_usage_map; 23 | 24 | }; 25 | } 26 | #endif //GRAPHIT_UDF_DUP_H 27 | -------------------------------------------------------------------------------- /include/graphit/midend/vertex_edge_set_lower.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 7/24/17. 3 | // 4 | 5 | #ifndef GRAPHIT_VERTEX_EDGE_SET_LOWER_H 6 | #define GRAPHIT_VERTEX_EDGE_SET_LOWER_H 7 | 8 | #include 9 | 10 | 11 | namespace graphit { 12 | 13 | /** 14 | * Lowers declarations of vertexset and edgeset into relevant main function statements 15 | */ 16 | class VertexEdgeSetLower { 17 | public: 18 | VertexEdgeSetLower(MIRContext* mir_context) : mir_context_(mir_context){} 19 | 20 | void lower(); 21 | private: 22 | MIRContext *mir_context_; 23 | }; 24 | } 25 | 26 | #endif //GRAPHIT_VERTEX_EDGE_SET_LOWER_H 27 | -------------------------------------------------------------------------------- /include/graphit/utils/exec_cmd.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/31/17. 3 | // 4 | 5 | // Code from Stackoverflow 6 | // https://stackoverflow.com/questions/478898/how-to-execute-a-command-and-get-output-of-command-within-c-using-posix 7 | 8 | #ifndef GRAPHIT_EXECUTE_CMD_H_H 9 | #define GRAPHIT_EXECUTE_CMD_H_H 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | std::string exec_cmd(std::string input_cmd); 19 | 20 | #endif //GRAPHIT_EXECUTE_CMD_H_H 21 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/src/CMakeLists.txt -------------------------------------------------------------------------------- /src/backend/backend.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 2/14/17. 3 | // 4 | 5 | #include 6 | 7 | namespace graphit{ 8 | int Backend::emitCPP(std::ostream &oss, std::string module_name) { 9 | CodeGenCPP* codegen_cpp = new CodeGenCPP(oss, mir_context_, module_name); 10 | int flag = codegen_cpp->genCPP(); 11 | delete codegen_cpp; 12 | return flag; 13 | } 14 | int Backend::emitPython(std::ostream &oss, std::string module_name, std::string module_path) { 15 | CodeGenPython *codegen_python = new CodeGenPython(oss, mir_context_, module_name, module_path); 16 | int flag = codegen_python->genPython(); 17 | delete codegen_python; 18 | return flag; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/default_schedule.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace graphit { 3 | void user_defined_schedule (graphit::fir::high_level_schedule::ProgramScheduleNode::Ptr program) { 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/frontend/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/src/frontend/CMakeLists.txt -------------------------------------------------------------------------------- /src/frontend/schedule.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/10/17. 3 | // 4 | 5 | #include 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/midend/midend.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 2/14/17. 3 | // 4 | #include 5 | #include 6 | #include 7 | 8 | namespace graphit { 9 | /** 10 | * Read in the fir_context and emits the lowest level MIRs and add them to output mir_context 11 | * @param mir_context 12 | * @return 13 | */ 14 | int Midend::emitMIR(MIRContext* mir_context) { 15 | // MIREmitter first emits high level MIR based on the FIR nodes 16 | MIREmitter(mir_context).emitIR(fir_context_->getProgram()); 17 | //MIRLower lowers the higher level MIRs into lower level MIRs based on the user specified schedules 18 | MIRLower().lower(mir_context, schedule_); 19 | 20 | return 0; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/midend/mir_context.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 2/12/17. 3 | // 4 | #include 5 | 6 | namespace graphit { 7 | 8 | } -------------------------------------------------------------------------------- /src/utils/exec_cmd.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 6/8/17. 3 | // 4 | 5 | #include 6 | 7 | std::string exec_cmd(std::string input_cmd) { 8 | const char* cmd = input_cmd.c_str(); 9 | std::array buffer; 10 | std::string result; 11 | std::shared_ptr pipe(popen(cmd, "r"), pclose); 12 | if (!pipe) throw std::runtime_error("popen() failed!"); 13 | while (!feof(pipe.get())) { 14 | if (fgets(buffer.data(), 128, pipe.get()) != NULL) 15 | result += buffer.data(); 16 | } 17 | return result; 18 | } -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/test/CMakeLists.txt -------------------------------------------------------------------------------- /test/c++/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/test/c++/CMakeLists.txt -------------------------------------------------------------------------------- /test/graphs/4.sg: -------------------------------------------------------------------------------- 1 | 5  ).//05 2 |  3 |   4 |   5 |  6 |  #(-15 7 |        -------------------------------------------------------------------------------- /test/graphs/monaco.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GraphIt-DSL/graphit/2e0149719b10484ae4caf99257fa9448bc1aa9a9/test/graphs/monaco.bin -------------------------------------------------------------------------------- /test/graphs/mst_special_case.wel: -------------------------------------------------------------------------------- 1 | 1 2 1 2 | 2 3 1 3 | 3 4 1 4 | 4 5 1 5 | 1 5 3 -------------------------------------------------------------------------------- /test/graphs/test.el: -------------------------------------------------------------------------------- 1 | 3 4 2 | 4 2 3 | 1 2 4 | 1 3 5 | 1 4 6 | 2 3 7 | 2 4 -------------------------------------------------------------------------------- /test/graphs/test.wel: -------------------------------------------------------------------------------- 1 | 3 4 1 2 | 4 2 2 3 | 1 2 3 4 | 1 3 4 5 | 1 4 5 6 | 2 3 6 7 | 2 4 7 -------------------------------------------------------------------------------- /test/graphs/test2.wel: -------------------------------------------------------------------------------- 1 | 3 4 1 2 | 4 2 2 3 | 1 2 3 4 | 1 3 4 5 | 1 4 6 6 | 2 3 6 7 | 2 4 7 8 | 2 5 4 9 | 5 6 1 10 | -------------------------------------------------------------------------------- /test/graphs/test_cf.wel: -------------------------------------------------------------------------------- 1 | 1 4 3 2 | 1 5 2 3 | 2 6 1 4 | 3 4 1 -------------------------------------------------------------------------------- /test/graphs/test_closeness_sssp.wel: -------------------------------------------------------------------------------- 1 | 1 2 1 2 | 2 1 3 3 | 4 1 1 4 | 2 4 1 5 | 1 3 6 6 | 2 3 3 7 | 3 4 4 8 | 4 3 1 9 | -------------------------------------------------------------------------------- /test/graphs/test_sym.el: -------------------------------------------------------------------------------- 1 | 3 4 2 | 4 3 3 | 4 2 4 | 2 4 5 | 1 2 6 | 2 1 7 | 1 3 8 | 3 1 9 | 1 4 10 | 4 1 11 | 2 3 12 | 3 2 13 | -------------------------------------------------------------------------------- /test/gtest/README.SIMIT: -------------------------------------------------------------------------------- 1 | This directory contains Google Test 1.7.0 (SVN r690) after the 2 | source code has been fused using the fuse_gtest_files.py tool 3 | that ships with Google Test. 4 | -------------------------------------------------------------------------------- /test/input/argv_safe.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | var input1 : int = atoi(argv[1]); 3 | var input2 : int = atoi(argv[2]); 4 | var input3 : int = atoi(argv[3]); 5 | var input4 : int = atoi(argv[4]); 6 | var input5 : int = atoi(argv[5]); 7 | print input1 + input2; 8 | end 9 | -------------------------------------------------------------------------------- /test/input/astar_distance_loader.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex, Vertex, int) = load(argv[1]); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | 7 | extern func load_coords(filename: string, num_nodes: int); 8 | extern func calculate_distance(source: Vertex, destination: Vertex) -> output: double; 9 | 10 | 11 | func main() 12 | load_coords(argv[1], vertices.size()); 13 | print calculate_distance(4, 20); 14 | end 15 | -------------------------------------------------------------------------------- /test/input/bellman_ford_simplified.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex,Vertex, int)=load(argv[1]); 4 | const dist : vector{Vertex}(int) = 2147483647; 5 | 6 | func updateEdge(src : Vertex, dst : Vertex, weight : int) 7 | var new_dist : int = dist[src] + weight; 8 | dist[dst] min= new_dist; 9 | end 10 | 11 | func main() 12 | var start_vertex : int = atoi(argv[2]); 13 | dist[start_vertex] = 0; 14 | var frontier : vertexset{Vertex} = new vertexset{Vertex}(0); 15 | frontier.addVertex(start_vertex); 16 | while (frontier.getVertexSetSize() != 0) 17 | #s1# var output : vertexset{Vertex} = edges.from(frontier).applyModified(updateEdge, dist); 18 | delete frontier; 19 | frontier = output; 20 | end 21 | end -------------------------------------------------------------------------------- /test/input/const_vector_global.gt: -------------------------------------------------------------------------------- 1 | const simple_array: vector[4](int) = {1, 2, 3, 4}; 2 | func main() 3 | print simple_array.sum(); 4 | end -------------------------------------------------------------------------------- /test/input/constant_vector.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | var simple_array: vector[4](int) = {1, 2, 3, 4}; 3 | var value: int = simple_array.sum(); 4 | print value; 5 | end -------------------------------------------------------------------------------- /test/input/export_constant_size_vector_of_vector_return.gt: -------------------------------------------------------------------------------- 1 | export func export_func() -> output: vector[10](vector[10](int)) 2 | var vec: vector[10](vector[10](int)) = new vector[10](vector[10](int))(); 3 | for i in 0:10 4 | for j in 0:10 5 | vec[i][j] = i+1; 6 | end 7 | end 8 | output = vec; 9 | end 10 | -------------------------------------------------------------------------------- /test/input/export_constant_size_vector_return.gt: -------------------------------------------------------------------------------- 1 | export func export_func() -> output: vector[10](int) 2 | var vec: vector[10](int) = new vector[10](int)(); 3 | for i in 0:10 4 | vec[i] = i+1; 5 | end 6 | output = vec; 7 | end 8 | -------------------------------------------------------------------------------- /test/input/export_extern_simple_edgeset_appply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex); 5 | const vertices : vertexset{Vertex}; 6 | const vector_a : vector{Vertex}(float); 7 | extern func extern_src_add_one(src : Vertex, dst : Vertex); 8 | 9 | export func export_func(edges_arg: edgeset{Edge}(Vertex, Vertex)) -> output: int 10 | edges = edges_arg; 11 | vertices = edges.getVertices(); 12 | vector_a = new vector{Vertex}(float)(); 13 | 14 | for i in 0:edges.getVertices() 15 | vector_a[i] = 0; 16 | end 17 | 18 | edges.apply(extern_src_add_one); 19 | var sum : float = 0; 20 | for i in 0:edges.getVertices() 21 | sum += vector_a[i]; 22 | end 23 | print sum; 24 | output = sum; 25 | end 26 | -------------------------------------------------------------------------------- /test/input/export_simple_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex); 5 | const vertices : vertexset{Vertex}; 6 | const vector_a : vector{Vertex}(float); 7 | 8 | func vector_a_init(v : Vertex) 9 | vector_a[v] = 0; 10 | end 11 | 12 | func srcAddOne(src : Vertex, dst : Vertex) 13 | vector_a[src] = vector_a[src] + 1; 14 | end 15 | 16 | export func export_func(input_edges : edgeset{Edge}(Vertex,Vertex)) 17 | edges = input_edges; 18 | vertices = edges.getVertices(); 19 | vector_a = new vector{Vertex}(float)(); 20 | vertices.apply(vector_a_init); 21 | edges.apply(srcAddOne); 22 | var sum : float = 0; 23 | for i in 0 : edges.getVertices() 24 | sum += vector_a[i]; 25 | end 26 | print sum; 27 | end -------------------------------------------------------------------------------- /test/input/export_vector_of_constant_size_arg.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex,Vertex); 4 | const vertices : vertexset{Vertex}; 5 | 6 | 7 | export func export_func(input_edges : edgeset{Edge}(Vertex,Vertex), input_data : vector[100](float)) 8 | edges = input_edges; 9 | vertices = edges.getVertices(); 10 | %for i in 0:100 11 | %print input_data[i]; 12 | %end 13 | 14 | end -------------------------------------------------------------------------------- /test/input/export_vector_of_vector.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex,Vertex); 4 | const vertices : vertexset{Vertex}; 5 | const data : vector{Vertex}(vector[100](float)); 6 | 7 | func increment_by_one(v : Vertex) 8 | data[v][0] += 1; 9 | end 10 | 11 | export func export_func(input_edges : edgeset{Edge}(Vertex,Vertex), input_data : vector{Vertex}(vector[100](float))) -> output : vector{Vertex}(vector[100](float)) 12 | edges = input_edges; 13 | vertices = edges.getVertices(); 14 | data = input_data; 15 | vertices.apply(increment_by_one); 16 | output = data; 17 | end -------------------------------------------------------------------------------- /test/input/extern_add_one.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/16/19. 3 | // 4 | 5 | extern float * vector_a; 6 | 7 | void extern_add_one(int v) { 8 | vector_a[v] += 1; 9 | } -------------------------------------------------------------------------------- /test/input/extern_simple_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const vector_a : vector{Vertex}(float) = 0.0; 7 | extern func extern_src_add_one(src : Vertex, dst : Vertex); 8 | 9 | func main() 10 | edges.apply(extern_src_add_one); 11 | var sum : float = 0; 12 | for i in 0:edges.getVertices() 13 | sum += vector_a[i]; 14 | end 15 | print sum; 16 | end -------------------------------------------------------------------------------- /test/input/extern_src_add_one.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/16/19. 3 | // 4 | 5 | extern float * vector_a; 6 | 7 | void extern_src_add_one(int src, int dst) { 8 | vector_a[src] += 1; 9 | } -------------------------------------------------------------------------------- /test/input/extern_vertexset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vector_a : vector{Vertex}(float) = 1.0; 3 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 4 | 5 | 6 | 7 | extern func extern_add_one(v : int); 8 | 9 | func main() 10 | vertices.apply(extern_add_one); 11 | var sum : float = 0; 12 | for i in 0:5 13 | sum += vector_a[i]; 14 | end 15 | print sum; 16 | end 17 | -------------------------------------------------------------------------------- /test/input/functor.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const simpleArray: vector{Vertex}(int) = 0; 6 | const simpleArrayFloat: vector{Vertex}(float) = 0.0; 7 | func addStuff[a: int, b: float](v: Vertex) 8 | 9 | simpleArray[v] += a; 10 | simpleArrayFloat[v] += b; 11 | 12 | end 13 | 14 | func main() 15 | var test: int = 5; 16 | var test_v2: float = 5.0; 17 | vertices.apply(addStuff[test, test_v2]); 18 | print simpleArray.sum(); 19 | end -------------------------------------------------------------------------------- /test/input/functor_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const simpleArray: vector{Vertex}(int) = 0; 6 | 7 | func updateEdge[addition: int](src: Vertex, dest: Vertex) 8 | simpleArray[src] += addition; 9 | 10 | end 11 | 12 | func main() 13 | var addition: int = 5; 14 | edges.apply(updateEdge[addition]); 15 | print simpleArray.sum(); 16 | delete simpleArray; 17 | end -------------------------------------------------------------------------------- /test/input/functor_edgeset_applyUpdatePriority.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const simpleArray: vector{Vertex}(int) = 0; 6 | 7 | func updateEdge[addition: int](src: Vertex, dest: Vertex) 8 | simpleArray[src] += addition; 9 | 10 | end 11 | 12 | func main() 13 | var addition: int = 5; 14 | edges.applyUpdatePriority(updateEdge[addition]); 15 | print simpleArray.sum(); 16 | delete simpleArray; 17 | end -------------------------------------------------------------------------------- /test/input/functor_edgeset_from_to.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | func updateEdge[local_array: vector{Vertex}(int)](src: Vertex, dst: Vertex) 7 | local_array[src] += 10; 8 | end 9 | 10 | func main() 11 | 12 | var frontier: vertexset{Vertex} = new vertexset{Vertex}(0); 13 | frontier.addVertex(0); 14 | frontier.addVertex(1); 15 | 16 | var simpleArray: vector{Vertex}(int) = 0; 17 | 18 | edges.from(frontier).apply(updateEdge[simpleArray]); 19 | 20 | print simpleArray.sum(); 21 | delete simpleArray; 22 | 23 | end -------------------------------------------------------------------------------- /test/input/functor_float_as_argument.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const simpleArray: vector{Vertex}(float) = 0; 6 | 7 | func addStuff[a: float](v: Vertex) 8 | simpleArray[v] += a; 9 | end 10 | 11 | func main() 12 | vertices.apply(addStuff[5.0]); 13 | print simpleArray.sum(); 14 | end -------------------------------------------------------------------------------- /test/input/functor_int_as_argument.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const simpleArray: vector{Vertex}(int) = 0; 6 | 7 | func addStuff[a: int](v: Vertex) 8 | simpleArray[v] += a; 9 | end 10 | 11 | func main() 12 | vertices.apply(addStuff[5]); 13 | print simpleArray.sum(); 14 | end -------------------------------------------------------------------------------- /test/input/functor_local_vector.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | func initArray[a: vector{Vertex}(int)](v: Vertex) 7 | a[v] = 0; 8 | end 9 | 10 | func addOne[a: vector{Vertex}(int)](v: Vertex) 11 | a[v] += 1; 12 | end 13 | 14 | func main() 15 | 16 | var simpleArray : vector{Vertex}(int) = 0; 17 | 18 | vertices.apply(addOne[simpleArray]); 19 | 20 | print simpleArray.sum(); 21 | delete simpleArray; 22 | end -------------------------------------------------------------------------------- /test/input/functor_multiple_local_vector_with_int.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | func initArray[a: vector{Vertex}(int)](v: Vertex) 7 | a[v] = 0; 8 | end 9 | 10 | func addSomeAmount[a: vector{Vertex}(int), b: vector{Vertex}(int), c: int](v: Vertex) 11 | b[v] += c; 12 | a[v] += 2*b[v]; 13 | end 14 | 15 | func main() 16 | 17 | var simpleArray1 : vector{Vertex}(int) = new vector{Vertex}(int)(); 18 | var simpleArray2: vector{Vertex}(int) = 0; 19 | 20 | vertices.apply(initArray[simpleArray1]); 21 | vertices.apply(addSomeAmount[simpleArray1, simpleArray2, 6]); 22 | 23 | print simpleArray1.sum(); 24 | delete simpleArray1; 25 | delete simpleArray2; 26 | end -------------------------------------------------------------------------------- /test/input/functor_vector.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const simpleArray: vector{Vertex}(int) = 0; 6 | 7 | func addOne[a: vector{Vertex}(int)](v: Vertex) 8 | a[v] += 1; 9 | end 10 | 11 | func main() 12 | vertices.apply(addOne[simpleArray]); 13 | print simpleArray.sum(); 14 | end -------------------------------------------------------------------------------- /test/input/kcore_example.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load(argv[1]); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const D: vector{Vertex}(uint) = edges.getOutDegreesUint(); 6 | const pq: priority_queue{Vertex}(uint); 7 | func apply_f(src: Vertex, dst: Vertex) 8 | var k: int = pq.get_current_priority(); 9 | pq.updatePrioritySum(dst, -1, k); 10 | end 11 | 12 | func main() 13 | pq = new priority_queue{Vertex}(uint)(false, false, D, 1, 0, true, -1); 14 | var finished: int = 0; 15 | while (finished != vertices.size()) 16 | var frontier: vertexset{Vertex}= pq.dequeue_ready_set(); 17 | finished += frontier.getVertexSetSize(); 18 | #s1# edges.from(frontier).applyUpdatePriority(apply_f); 19 | delete frontier; 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /test/input/local_vector.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | 7 | func addOne[array: vector{Vertex}(int)](v: Vertex) 8 | array[v] += 1; 9 | end 10 | 11 | func main() 12 | var array : vector{Vertex}(int) = 0; 13 | 14 | vertices.apply(addOne[array]); 15 | 16 | print array.sum(); 17 | delete array; 18 | end -------------------------------------------------------------------------------- /test/input/local_vector_call_expr.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | 7 | func basicFunc1[array: vector{Vertex}(int)]() -> output: vector{Vertex}(int) 8 | output = array; 9 | end 10 | 11 | func basicFunc2() -> output: vector{Vertex}(int) 12 | var a: vector{Vertex}(int) = 3; 13 | output = a; 14 | end 15 | 16 | func main() 17 | var array : vector{Vertex}(int) = 1; 18 | 19 | var array2 : vector{Vertex}(int) = basicFunc1[array](); 20 | 21 | var array3 : vector{Vertex}(int) = basicFunc2(); 22 | 23 | print array2.sum() + array3.sum(); 24 | delete array; 25 | end -------------------------------------------------------------------------------- /test/input/main_print_add.gt: -------------------------------------------------------------------------------- 1 | func add(a : int, b: int) -> c:int 2 | c = a + b; 3 | end 4 | 5 | func main() 6 | print add(4, 5); 7 | end -------------------------------------------------------------------------------- /test/input/nested_par_for.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load (argv[1]); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | func addOne[a: vector{Vertex}(int)](v: Vertex) 7 | atomicAdd(a, v, 1); 8 | end 9 | 10 | func main() 11 | 12 | var simpleArray: vector{Vertex}(int) = 0; 13 | 14 | #l1# par_for i in 0:10 15 | #l2# par_for j in 0:10 16 | #s1# vertices.apply(addOne[simpleArray]); 17 | end 18 | end 19 | 20 | print simpleArray.sum(); 21 | delete simpleArray; 22 | end -------------------------------------------------------------------------------- /test/input/outdegree_sum.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const out_degrees : vector{Vertex}(int) = edges.getOutDegrees(); 7 | 8 | func main() 9 | % print out_degrees.sum(); 10 | 11 | var sum : int = 0; 12 | for i in 0:edges.getVertices() 13 | sum += out_degrees[i]; 14 | end 15 | print sum; 16 | end -------------------------------------------------------------------------------- /test/input/par_for.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load ("../test/graphs/test.el"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | func addOne[a: vector{Vertex}(int)](v: Vertex) 7 | a[v] += 1; 8 | end 9 | 10 | func main() 11 | 12 | var simpleArray: vector{Vertex}(int) = 0; 13 | 14 | #s1# par_for i in 0:10; 15 | #s2# vertices.apply(addOne[simpleArray]); 16 | end 17 | 18 | print simpleArray.sum(); 19 | delete simpleArray; 20 | end -------------------------------------------------------------------------------- /test/input/par_for_schedule_testing.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex, Vertex) = load (argv[1]); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | 6 | func addOne[a: vector{Vertex}(int)](v: Vertex) 7 | a[v] += 1; 8 | end 9 | 10 | func main() 11 | 12 | var simpleArray: vector{Vertex}(int) = 0; 13 | 14 | #s1# par_for i in 0:10; 15 | #s2# vertices.apply(addOne[simpleArray]); 16 | end 17 | 18 | print simpleArray.sum(); 19 | delete simpleArray; 20 | end -------------------------------------------------------------------------------- /test/input/simple_apply_max.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const vector_a : vector{Vertex}(float) = 0.0; 7 | func srcAddOne(src : Vertex, dst : Vertex) 8 | vector_a[src] = vector_a[src] + 1; end 9 | 10 | func main() 11 | edges.apply(srcAddOne); 12 | #s2# var max : float = vector_a.max(); 13 | print max; 14 | end -------------------------------------------------------------------------------- /test/input/simple_apply_sum.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const vector_a : vector{Vertex}(float) = 0.0; 7 | func srcAddOne(src : Vertex, dst : Vertex) 8 | vector_a[src] = vector_a[src] + 1; end 9 | 10 | func main() 11 | edges.apply(srcAddOne); 12 | #s2# var summation : float = vector_a.sum(); 13 | print summation; 14 | end -------------------------------------------------------------------------------- /test/input/simple_array.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | 3 | const vector_a : vector{Vertex}(float) = 0.0; 4 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 5 | 6 | func main() 7 | print 4; 8 | end -------------------------------------------------------------------------------- /test/input/simple_atoi.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | var input1 : int = atoi(argv[1]); 3 | var input2 : int = atoi(argv[2]); 4 | print input1 + input2; 5 | end 6 | -------------------------------------------------------------------------------- /test/input/simple_boolean_op.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | var x : bool = true; 3 | var y : bool = false; 4 | if x and (not y) 5 | print "x is true and y is false"; 6 | end 7 | if x xor y 8 | print "either x or y is true"; 9 | end 10 | if x or y 11 | print "x or y or both are true"; 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /test/input/simple_edgeset.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 4 | 5 | func main() 6 | print 0; 7 | end -------------------------------------------------------------------------------- /test/input/simple_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const vector_a : vector{Vertex}(float) = 0.0; 7 | func srcAddOne(src : Vertex, dst : Vertex) 8 | vector_a[src] = vector_a[src] + 1; end 9 | 10 | func main() 11 | edges.apply(srcAddOne); 12 | var sum : float = 0; 13 | for i in 0:edges.getVertices() 14 | sum += vector_a[i]; 15 | end 16 | print sum; 17 | end -------------------------------------------------------------------------------- /test/input/simple_edgeset_apply_from_to.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const old_rank : vector{Vertex}(float) = 1.0; 7 | 8 | func from_filter(v: Vertex) -> output :bool output = (old_rank[v] > 40); end 9 | func to_filter (v: Vertex) -> output :bool output = (old_rank[v] < 60); end 10 | 11 | func updateEdge(src : Vertex, dst : Vertex) 12 | old_rank[dst] = old_rank[src]; 13 | end 14 | func main() 15 | edges.from(from_filter).to(to_filter).apply(updateEdge); 16 | end -------------------------------------------------------------------------------- /test/input/simple_edgeset_transpose.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/test.el"); 4 | const vector_a : vector{Vertex}(float) = 0.0; 5 | 6 | func srcAddOne(src : Vertex, dst : Vertex) 7 | vector_a[src] = vector_a[src] + 1; 8 | end 9 | 10 | func main() 11 | var transposed_edges : edgeset{Edge}(Vertex, Vertex) = edges.transpose(); 12 | transposed_edges.apply(srcAddOne); 13 | end -------------------------------------------------------------------------------- /test/input/simple_export_func.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex); 5 | const vertices : vertexset{Vertex}; 6 | const out_degrees : vector{Vertex}(int); 7 | 8 | export func test_export() 9 | 10 | edges = load ("../test/graphs/test.el"); 11 | vertices = edges.getVertices(); 12 | out_degrees = edges.getOutDegrees(); 13 | 14 | var sum : int = 0; 15 | for i in 0:edges.getVertices() 16 | sum += out_degrees[i]; 17 | end 18 | print sum; 19 | end -------------------------------------------------------------------------------- /test/input/simple_extern_function.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | float my_pow(float base, float exponent) { 3 | return pow(base, exponent); 4 | } 5 | -------------------------------------------------------------------------------- /test/input/simple_extern_function.gt: -------------------------------------------------------------------------------- 1 | extern func my_pow(base: float, exponent: float) -> output: float; 2 | 3 | func main() 4 | my_pow(2, 10); 5 | end 6 | -------------------------------------------------------------------------------- /test/input/simple_extern_function_sum.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int sum_list(std::vector * v) { 4 | int sum = 0; 5 | for (auto const& value: *v) 6 | sum += value; 7 | return sum; 8 | } 9 | -------------------------------------------------------------------------------- /test/input/simple_extern_function_sum.gt: -------------------------------------------------------------------------------- 1 | extern func sum_list(v: list{int}) -> output: int; 2 | 3 | func main() 4 | var v: list{int} = new list{int}(); 5 | for i in 1:100 6 | v.append(i); 7 | end 8 | print sum_list(v); 9 | end 10 | -------------------------------------------------------------------------------- /test/input/simple_for_loop.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | for i in 1:10; 3 | print i; 4 | end 5 | end -------------------------------------------------------------------------------- /test/input/simple_func_add_no_return.gt: -------------------------------------------------------------------------------- 1 | func add(a : int, b: int) 2 | 3 | end -------------------------------------------------------------------------------- /test/input/simple_if_elif_else.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | var x : int = 1; 3 | if x < 1 4 | print "x is less than 1"; 5 | elif x > 5 6 | print "x is greater than 5"; 7 | else 8 | print "x is between 1 and 5"; 9 | end 10 | end -------------------------------------------------------------------------------- /test/input/simple_int_list.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | var int_list : list{int} = new list{int}(); 3 | int_list.append(1); 4 | var one : int = int_list.pop(); 5 | end -------------------------------------------------------------------------------- /test/input/simple_main.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | print 4; 3 | end -------------------------------------------------------------------------------- /test/input/simple_main_fail.gt: -------------------------------------------------------------------------------- 1 | func main() -------------------------------------------------------------------------------- /test/input/simple_multi_arrays.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | 3 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 4 | 5 | const old_rank : vector{Vertex}(float) = 0.0; 6 | const new_rank : vector{Vertex}(float) = 0.0; 7 | 8 | 9 | func main() 10 | print 4; 11 | end -------------------------------------------------------------------------------- /test/input/simple_spmv.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex, int) = load ("../test/graphs/test.wel"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | 7 | const input : vector{Vertex}(float) = 1.0; %vector to be multiplied 8 | const output : vector{Vertex}(float) = 0.0; %result of spmv 9 | 10 | func updateEdge(src : Vertex, dst : Vertex, weight : int) 11 | output[src] = output[src] + input[dst] * weight; 12 | % if working on transpose of graph, then change to 13 | % output[dst] = output[dst] + input[src] * weight; 14 | end 15 | 16 | func main() 17 | 18 | startTimer(); 19 | 20 | edges.apply(updateEdge); 21 | 22 | var elapsed_time : float = stopTimer(); 23 | print "elapsed time: "; 24 | print elapsed_time; 25 | 26 | end -------------------------------------------------------------------------------- /test/input/simple_sum_function_double.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vector_a : vector{Vertex}(double) = 1.0; 3 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 4 | func main() 5 | var summation : double = vector_a.sum(); 6 | print summation; 7 | end -------------------------------------------------------------------------------- /test/input/simple_sum_function_float.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vector_a : vector{Vertex}(float) = 1.0; 3 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 4 | func main() 5 | var summation : float = vector_a.sum(); 6 | print summation; 7 | end -------------------------------------------------------------------------------- /test/input/simple_sum_function_int.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vector_a : vector{Vertex}(int) = 1.0; 3 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 4 | func main() 5 | var summation : int = vector_a.sum(); 6 | print summation; 7 | end -------------------------------------------------------------------------------- /test/input/simple_timer.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | startTimer(); 3 | var elapsed_time : float = stopTimer(); 4 | print "elapsed time: "; 5 | print elapsed_time; 6 | end -------------------------------------------------------------------------------- /test/input/simple_variable.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | var a : int = 0; 3 | print a; 4 | end -------------------------------------------------------------------------------- /test/input/simple_vector_sum.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vector_a : vector{Vertex}(float) = 1.0; 3 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 4 | func main() 5 | var sum : float = 0; 6 | for i in 0:5 7 | sum += vector_a[i]; 8 | end 9 | print sum; 10 | end -------------------------------------------------------------------------------- /test/input/simple_vertex_edge_load.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const vector_a : vector{Vertex}(float) = 1.0; 7 | 8 | func main() 9 | var sum : int = 0; 10 | for i in 0:edges.getVertices() 11 | sum += vector_a[i]; 12 | end 13 | print sum; 14 | end -------------------------------------------------------------------------------- /test/input/simple_vertexset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vector_a : vector{Vertex}(float) = 1.0; 3 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 4 | 5 | func addone(v : Vertex) 6 | vector_a[v] = vector_a[v] + 1; 7 | end 8 | 9 | func main() 10 | vertices.apply(addone); 11 | var sum : float = 0; 12 | for i in 0:5 13 | sum += vector_a[i]; 14 | end 15 | print sum; 16 | end 17 | -------------------------------------------------------------------------------- /test/input/simple_vertexset_filter.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 3 | const age : vector{Vertex}(int) = 0; 4 | func vertex_filter(v: Vertex) -> output : bool output = (age[v] > 40); end 5 | func main() 6 | var vertices_above_40 : vertexset{Vertex} = vertices.filter(vertex_filter); 7 | delete vertices_above_40; 8 | end 9 | -------------------------------------------------------------------------------- /test/input/simple_vertexset_list.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | 3 | func main() 4 | var frontier : vertexset{Vertex} = new vertexset{Vertex}(0); 5 | var vertexset_list : list{vertexset{Vertex}} = new list{vertexset{Vertex}}(); 6 | vertexset_list.append(frontier); 7 | var pop_frontier : vertexset{Vertex} = vertexset_list.pop(); 8 | end 9 | -------------------------------------------------------------------------------- /test/input/simple_vertexset_where.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | const vertices : vertexset{Vertex} = new vertexset{Vertex}(5); 3 | const age : vector{Vertex}(int) = 0; 4 | func vertex_filter(v: Vertex) -> output : bool output = (age[v] > 40); end 5 | func main() 6 | var vertices_above_40 : vertexset{Vertex} = vertices.where(vertex_filter); 7 | delete vertices_above_40; 8 | end 9 | -------------------------------------------------------------------------------- /test/input/simple_weighted_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges : edgeset{Edge}(Vertex,Vertex, int) = load ("../test/graphs/test.wel"); 4 | const vertices : vertexset{Vertex} = edges.getVertices(); 5 | const wt_sum : vector{Vertex}(int) = 0; 6 | 7 | func sumEdgeWt(src : Vertex, dst : Vertex, weight : int) 8 | print weight; 9 | wt_sum[dst] = wt_sum[dst] + weight; 10 | end 11 | 12 | func main() 13 | edges.apply(sumEdgeWt); 14 | end -------------------------------------------------------------------------------- /test/input/vertex_edge_load.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load("../test/graphs/test.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | const vector_a : vector{Vertex}(float) = 1.0; 7 | const out_degrees : vector{Vertex}(int) = edges.getOutDegrees(); 8 | const size : int = vertices.size(); 9 | 10 | func main() 11 | var sum : int = vector_a.sum(); 12 | print sum + size; 13 | end -------------------------------------------------------------------------------- /test/input/vertex_size.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | const edges: edgeset{Edge}(Vertex,Vertex) = load("../test/graphs/test.el"); 4 | const vertices: vertexset{Vertex} = edges.getVertices(); 5 | 6 | const vertexSizeArray: vector{Vertex}(int) = 0; 7 | 8 | func incrementing_count(src: Vertex, dst: Vertex) 9 | var src_ngs : vertexset{Vertex} = edges.getNgh(src); 10 | var src_ngs_size: uint_64 = src_ngs.getVertexSetSize(); 11 | vertexSizeArray[src] = src_ngs_size; 12 | end 13 | 14 | func main() 15 | edges = edges.relabel(); 16 | #s1# edges.apply(incrementing_count); 17 | print vertexSizeArray.sum(); 18 | end 19 | 20 | -------------------------------------------------------------------------------- /test/input/vertexset_filter.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/4.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | 7 | 8 | func filter_func(v: Vertex) -> output: bool 9 | if (v < 2) 10 | output = true; 11 | else 12 | output = false; 13 | end 14 | end 15 | func main() 16 | var frontier: vertexset{Vertex} = new vertexset{Vertex}(0); 17 | frontier.addVertex(0); 18 | frontier.addVertex(1); 19 | frontier.addVertex(2); 20 | frontier = frontier.filter(filter_func); 21 | print frontier.getVertexSetSize(); 22 | end 23 | -------------------------------------------------------------------------------- /test/input/vertexset_filter_const.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex) = load ("../test/graphs/4.el"); 5 | const vertices : vertexset{Vertex} = edges.getVertices(); 6 | 7 | 8 | func filter_func(v: Vertex) -> output: bool 9 | if (v < 2) 10 | output = true; 11 | else 12 | output = false; 13 | end 14 | end 15 | func main() 16 | var frontier: vertexset{Vertex} = new vertexset{Vertex}(0); 17 | frontier = vertices.filter(filter_func); 18 | print frontier.getVertexSetSize(); 19 | end 20 | -------------------------------------------------------------------------------- /test/input_with_schedules/DensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /test/input_with_schedules/KCore_SparsePush_VertexParallel_16_Open.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush"); 3 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configNumOpenBuckets("s1", 16); -------------------------------------------------------------------------------- /test/input_with_schedules/SparsePushDensePull_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /test/input_with_schedules/SparsePush_VertexParallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /test/input_with_schedules/SparsePush_VertexParallel_Delta2.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", 2); -------------------------------------------------------------------------------- /test/input_with_schedules/SparsePush_VertexParallel_Delta_NumOpenBuckets_argvs.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 6 | program->configNumOpenBuckets("s1", "argv[4]"); -------------------------------------------------------------------------------- /test/input_with_schedules/SparsePush_VertexParallel_Delta_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush"); 4 | program->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /test/input_with_schedules/bc_ParForSparsePushDensePull_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configParForGrainSize("l1", 16); 3 | 4 | program->configApplyDirection("l1:s2", "SparsePush-DensePull") 5 | ->configApplyParallelization("l1:s2", "dynamic-vertex-parallel") 6 | ->configApplyDenseVertexSet("l1:s2","bitvector", "src-vertexset", "DensePull"); 7 | 8 | program->configApplyDirection("l1:s3", "SparsePush-DensePull") 9 | ->configApplyParallelization("l1:s3", "dynamic-vertex-parallel") 10 | ->configApplyDenseVertexSet("l1:s3","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /test/input_with_schedules/bc_SparsePush.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /test/input_with_schedules/bc_SparsePushDensePull.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDirection("s2", "SparsePush-DensePull")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /test/input_with_schedules/bc_SparsePushDensePull_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | 6 | program->configApplyDirection("s2", "SparsePush-DensePull") 7 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 8 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /test/input_with_schedules/bc_SparsePushDensePull_bitvector_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 4 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull") 5 | ->configApplyNumSSG("s1", "fixed-vertex-count", 10, "DensePull"); 6 | 7 | program->configApplyDirection("s2", "SparsePush-DensePull") 8 | ->configApplyParallelization("s2", "dynamic-vertex-parallel") 9 | ->configApplyDenseVertexSet("s2","bitvector", "src-vertexset", "DensePull"); -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_hybrid_dense_parallel_cas_bitvector.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->configApplyParallelization("s2", "serial"); -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_hybrid_dense_parallel_cas_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull") 3 | ->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 7, "DensePull"); 5 | program->configApplyParallelization("s2", "serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_hybrid_denseforward_serial.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePush-SparsePush"); 3 | program->configApplyParallelization("s1", "serial"); -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_pull_edge_aware_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "edge-aware-dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 10); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/bfs_push_sliding_queue_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel")->setApply("s1", "sliding_queue"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull") 4 | ->configApplyParallelization("s1", "dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_hybrid_dense_parallel_bitvector_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_hybrid_dense_parallel_bitvector_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 8, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 7 | program->configApplyParallelization("s2","serial"); 8 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3, "DensePull"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/cc_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->configApplyParallelization("s2","serial"); 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/cf_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | schedule: 5 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/cf_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/cf_pull_parallel_load_balance_segment.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5, "DensePull"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/cf_pull_parallel_load_balance_segment_argv.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 4 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/cf_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 4, "DensePull"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/closeness_centrality_unweighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/closeness_centrality_unweighted_parallel_for_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configParForGrainSize("l1", 16); 3 | program->configApplyDirection("l1:s1", "SparsePush-DensePull") 4 | ->configApplyParallelization("l1:s1", "dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("l1:s1","bitvector", "src-vertexset", "DensePull"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/closeness_centrality_weighted_hybrid_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/eigenvector_centrality_DensePull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/export_simple_edgeset_apply.gt: -------------------------------------------------------------------------------- 1 | element Vertex end 2 | element Edge end 3 | 4 | const edges : edgeset{Edge}(Vertex,Vertex); 5 | const vertices : vertexset{Vertex}; 6 | const vector_a : vector{Vertex}(float); 7 | 8 | func vector_a_init(v : Vertex) 9 | vector_a[v] = 0; 10 | end 11 | 12 | func srcAddOne(src : Vertex, dst : Vertex) 13 | vector_a[src] = vector_a[src] + 1; 14 | end 15 | 16 | export func export_func(input_edges : edgeset{Edge}(Vertex,Vertex)) 17 | edges = input_edges; 18 | vertices = edges.getVertices(); 19 | vector_a = new vector{Vertex}(float)(); 20 | vertices.apply(vector_a_init); 21 | edges.apply(srcAddOne); 22 | var sum : float = 0; 23 | for i in 0 : edges.getVertices() 24 | sum += vector_a[i]; 25 | end 26 | print sum; 27 | end -------------------------------------------------------------------------------- /test/input_with_schedules/k_core_const_sum_reduce.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyPriorityUpdate("s1", "constant_sum_reduce_before_update"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/nested_par_for_schedule.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("l1:l2:s1", "SparsePush")->configApplyParallelization("l1:l2:s1", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_benchmark_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_benchmark_cache.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel") 5 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 6 | program->fuseFields("delta", "out_degree"); 7 | program->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]", "DensePull"); 8 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("delta", "out_degree"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_hybrid_dense_parallel_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 6 | ->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 7 | program->fuseFields("delta", "out_degree"); 8 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_hybrid_dense_parallel_bitvector_altdir.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_hybrid_dense_parallel_load_balance_no_bitvector.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_hybrid_dense_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->configApplyNUMA("s1", "static-parallel", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_hybrid_dense_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2, "DensePull"); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 4 | program->setApply("s1", "pull_edge_based_load_balance"); 5 | program->fuseFields("delta", "out_degree"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 2); 4 | program->configApplyNUMA("s1", "static-parallel"); 5 | 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyDenseVertexSet("s1","bitvector", "src-vertexset", "DensePull"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 3); 4 | program->fuseFields("delta", "out_degree"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_delta_sparse_push_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush") 5 | ->configApplyParallelization("s1","dynamic-vertex-parallel"); 6 | program->fuseFields("delta", "out_degree"); 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_hybrid_dense.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->fuseFields("out_degree", "old_rank"); 4 | 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_pull_parallel_load_balance.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1", "pull_edge_based_load_balance", 1); 4 | program->fuseFields("out_degree", "old_rank"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_pull_parallel_numa.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 5)->configApplyNUMA("s1", "static-parallel"); 4 | 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_pull_parallel_numa_one_seg.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 3 | program->configApplyNumSSG("s1", "fixed-vertex-count", 1)->configApplyNUMA("s1", "static-parallel"); 4 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_pull_parallel_segment.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel")->configApplyNumSSG("s1", "fixed-vertex-count", 5); 3 | -------------------------------------------------------------------------------- /test/input_with_schedules/pagerank_pull_parallel_segment_argv.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "DensePull") 3 | ->configApplyParallelization("s1","dynamic-vertex-parallel") 4 | ->configApplyNumSSG("s1", "fixed-vertex-count", "argv[2]"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/par_for_grain_size.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configParForGrainSize("s1", 16); 3 | program->configApplyDirection("s2", "SparsePush")->configApplyParallelization("s2", "dynamic-vertex-parallel"); -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_no_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configApplyParallelization("s2","serial"); 5 | 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_no_merge_argv1.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[1]"); 4 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_no_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_no_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_with_merge.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", 2); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_with_merge_argv3.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_with_merge_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[4]"); 4 | program->configBucketMergeThreshold("s1", 1000); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/priority_update_eager_with_merge_threshold_argv4.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyPriorityUpdate("s1", "eager_priority_update_with_merge"); 3 | program->configApplyPriorityUpdateDelta("s1", "argv[3]"); 4 | program->configBucketMergeThreshold("s1", "argv[4]"); 5 | program->configApplyParallelization("s2","serial"); 6 | 7 | -------------------------------------------------------------------------------- /test/input_with_schedules/simple_loop_index_split.gt: -------------------------------------------------------------------------------- 1 | func main() 2 | # l1 # for i in 1:10; 3 | # s1 # print i; 4 | end 5 | end 6 | 7 | schedule: 8 | 9 | program->splitForLoop("l1", "l2", "l3", 2, 8); 10 | -------------------------------------------------------------------------------- /test/input_with_schedules/simple_pagerank_with_AoS.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->fuseFields("old_rank", "out_degree"); 3 | -------------------------------------------------------------------------------- /test/input_with_schedules/simple_vector_sum.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyParallelization("s2","serial"); -------------------------------------------------------------------------------- /test/input_with_schedules/sssp_hybrid_dense_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "SparsePush-DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/sssp_hybrid_denseforward_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | schedule: 3 | program->configApplyDirection("s1", "DensePush-SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 4 | program->configApplyParallelization("s2","serial"); 5 | -------------------------------------------------------------------------------- /test/input_with_schedules/sssp_pull_parallel.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "DensePull")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/sssp_push_parallel_cas.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/sssp_push_parallel_sliding_queue.gt: -------------------------------------------------------------------------------- 1 | 2 | 3 | schedule: 4 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1","dynamic-vertex-parallel")->setApply("s1","sliding_queue"); 5 | program->configApplyParallelization("s2","serial"); 6 | -------------------------------------------------------------------------------- /test/input_with_schedules/tc_empty.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | -------------------------------------------------------------------------------- /test/input_with_schedules/tc_hiroshi.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "HiroshiIntersection"); -------------------------------------------------------------------------------- /test/input_with_schedules/tc_multiskip.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "MultiskipIntersection"); -------------------------------------------------------------------------------- /test/input_with_schedules/tc_naive.gt: -------------------------------------------------------------------------------- 1 | schedule: 2 | program->configApplyDirection("s1", "SparsePush")->configApplyParallelization("s1", "dynamic-vertex-parallel"); 3 | program->configIntersection("s2", "NaiveIntersection"); -------------------------------------------------------------------------------- /test/library_test_drivers/library_test_driver_cf_cpp.txt: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/10/19. 3 | // 4 | 5 | #include "intrinsics.h" 6 | #include "test.cpp" 7 | 8 | 9 | int main(){ 10 | 11 | WGraph edges = builtin_loadWeightedEdgesFromFile("../test/graphs/test_cf.wel"); 12 | export_func()(edges); 13 | 14 | } -------------------------------------------------------------------------------- /test/library_test_drivers/library_test_driver_cpp.txt: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/10/19. 3 | // 4 | 5 | #include "intrinsics.h" 6 | #include "test.cpp" 7 | 8 | 9 | int main(){ 10 | 11 | Graph edges = builtin_loadEdgesFromFile("../test/graphs/test.el"); 12 | export_func()(edges); 13 | 14 | } -------------------------------------------------------------------------------- /test/library_test_drivers/library_test_driver_weighted_cpp.txt: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 5/10/19. 3 | // 4 | 5 | #include "intrinsics.h" 6 | #include "test.cpp" 7 | 8 | 9 | int main(){ 10 | 11 | WGraph edges = builtin_loadWeightedEdgesFromFile("../test/graphs/4.wel"); 12 | export_func()(edges); 13 | 14 | } -------------------------------------------------------------------------------- /test/verifiers/verifier_utils.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Yunming Zhang on 7/13/17. 3 | // 4 | 5 | #ifndef GRAPHIT_VERIFIER_UTILS_H 6 | #define GRAPHIT_VERIFIER_UTILS_H 7 | 8 | template 9 | pvector* readFileIntoVector(std::string file_name){ 10 | 11 | std::ifstream file(file_name); 12 | pvector* output = new pvector(); 13 | T u; 14 | while (file >> u) { 15 | output->push_back(u); 16 | } 17 | return output; 18 | } 19 | 20 | template 21 | T readFileIntoSize(std::string file_name) { 22 | std::ifstream file(file_name); 23 | T output; 24 | file >> output; 25 | return output; 26 | 27 | } 28 | 29 | #endif //GRAPHIT_VERIFIER_UTILS_H 30 | --------------------------------------------------------------------------------