in k8s/utils/precompile.py [0:0]
def compile_cpp_pie_app():
targets = []
vertex_map_templates = [
"vineyard::ArrowVertexMap<{},{}>",
"vineyard::ArrowLocalVertexMap<{},{}>",
]
lv = vertex_map_templates[0].format(internal_type("int64_t"), "uint64_t")
sv = vertex_map_templates[0].format(internal_type("std::string"), "uint64_t")
# 1. arrow fragment
property_template = "vineyard::ArrowFragment<{},{},{},false>"
lu = property_template.format("int64_t", "uint64_t", lv)
su = property_template.format("std::string", "uint64_t", sv)
# no builtin app can run on the arrow property graph
# 2. projected arrow fragment
project_template = "gs::ArrowProjectedFragment<{},{},{},{},{},false>"
psuee = project_template.format(
"std::string", "uint64_t", "grape::EmptyType", "grape::EmptyType", sv
)
psuel = project_template.format(
"std::string", "uint64_t", "grape::EmptyType", "int64_t", sv
)
psued = project_template.format(
"std::string", "uint64_t", "grape::EmptyType", "double", sv
)
psull = project_template.format("std::string", "uint64_t", "int64_t", "int64_t", sv)
psusl = project_template.format(
"std::string", "uint64_t", "std::string", "int64_t", sv
)
psusu = project_template.format(
"std::string", "uint64_t", "std::string", "uint64_t", sv
)
plull = project_template.format("int64_t", "uint64_t", "int64_t", "int64_t", lv)
pluee = project_template.format(
"int64_t", "uint64_t", "grape::EmptyType", "grape::EmptyType", lv
)
pluel = project_template.format(
"int64_t", "uint64_t", "grape::EmptyType", "int64_t", lv
)
plued = project_template.format(
"int64_t", "uint64_t", "grape::EmptyType", "double", lv
)
targets.extend(
[
("pagerank", psuee),
("pagerank", pluee),
("pagerank", plull),
("wcc", psuee, ["-DWCC_USE_GID=ON"]),
("wcc", psuel, ["-DWCC_USE_GID=ON"]),
("wcc", psued, ["-DWCC_USE_GID=ON"]),
("wcc", psull, ["-DWCC_USE_GID=ON"]),
("wcc", psusl, ["-DWCC_USE_GID=ON"]),
("wcc", psusu, ["-DWCC_USE_GID=ON"]),
("wcc", plull),
("wcc", pluee),
("wcc", pluel),
("wcc", plued),
("sssp", psuel),
("sssp", psued),
("sssp", pluel),
("sssp", plued),
("sssp", plull),
("sssp", psull),
("cdlp", psuee),
("cdlp", pluee),
("cdlp", plull),
("bfs", psuee),
("bfs", pluee),
("bfs", plull),
("kcore", psuee),
("kcore", pluee),
("kshell", plull),
("kshell", pluee),
("kshell", psuee),
("hits", psuee),
("hits", pluee),
("hits", plull),
("triangles", psuee),
("triangles", pluee),
("triangles", plull),
("clustering", psuee),
("clustering", pluee),
("clustering", plull),
("degree_centrality", psuee),
("degree_centrality", pluee),
("degree_centrality", plull),
("eigenvector_centrality", plull),
("eigenvector_centrality", psued),
("eigenvector_centrality", psuel),
("eigenvector_centrality", plued),
("eigenvector_centrality", pluel),
("katz_centrality", psuee),
("katz_centrality", pluee),
("katz_centrality", plull),
("is_simple_path", plull),
("louvain", plull),
("sssp_has_path", plull),
]
)
# 3. flatten fragment
flatten_template = "gs::ArrowFlattenedFragment<{},{},{},{}>"
fsuee = flatten_template.format(
"std::string", "uint64_t", "grape::EmptyType", "grape::EmptyType"
)
fsuel = flatten_template.format(
"std::string", "uint64_t", "grape::EmptyType", "int64_t"
)
fsued = flatten_template.format(
"std::string", "uint64_t", "grape::EmptyType", "double"
)
fluee = flatten_template.format(
"int64_t", "uint64_t", "grape::EmptyType", "grape::EmptyType"
)
fluel = flatten_template.format(
"int64_t", "uint64_t", "grape::EmptyType", "int64_t"
)
flued = flatten_template.format("int64_t", "uint64_t", "grape::EmptyType", "double")
targets.extend(
[
# ("pagerank", fsuee), pagerank cannot run on flatten fragment
# ("pagerank", fluee),
("sssp", fsuel),
("sssp", fsued),
("sssp", fluel),
("sssp", flued),
("cdlp", fsuee),
("cdlp", fluee),
("kcore", fsuee),
("kcore", fluee),
("triangles", fsuee),
("triangles", fluee),
("sssp_projected", fsuee),
("sssp_projected", fsued),
("sssp_projected", fluee),
("sssp_projected", flued),
("sssp_path", fsuee),
("sssp_path", fluee),
("sssp_has_path", fsuee),
("sssp_has_path", fluee),
("sssp_average_length", fsuee),
("sssp_average_length", fsued),
("sssp_average_length", fluee),
("sssp_average_length", flued),
("hits", fsuee),
("hits", fluee),
("degree_centrality", fsuee),
("degree_centrality", fluee),
("eigenvector_centrality", fsuee),
("eigenvector_centrality", fsued),
("eigenvector_centrality", fluee),
("eigenvector_centrality", flued),
("katz_centrality", fsuee),
("katz_centrality", fsued),
("katz_centrality", fluee),
("katz_centrality", flued),
("bfs_generic", fsuee),
("bfs_generic", fluee),
("clustering", fsuee),
("clustering", fluee),
("transitivity", fsuee),
("transitivity", fluee),
("avg_clustering", fsuee),
("avg_clustering", fluee),
]
)
# 4. dynamic fragment
dynamic_template = "gs::DynamicProjectedFragment<{},{}>"
dee = dynamic_template.format("grape::EmptyType", "grape::EmptyType")
ded = dynamic_template.format("grape::EmptyType", "double")
dle = dynamic_template.format("int64_t", "grape::EmptyType")
dde = dynamic_template.format("double", "grape::EmptyType")
targets.extend(
[
("sssp_projected", dee),
("sssp_projected", ded),
("sssp_path", dee),
("sssp_has_path", dee),
("sssp_average_length", dee),
("sssp_average_length", ded),
("hits", dee),
("degree_centrality", dee),
("eigenvector_centrality", dee),
("eigenvector_centrality", ded),
("katz_centrality", dee),
("katz_centrality", ded),
("bfs_generic", dee),
("kcore", dee),
("lcc", dee),
("clustering", dee),
("triangles", dee),
("transitivity", dee),
("avg_clustering", dee),
("pagerank_nx", dee),
("pagerank_nx", ded),
("degree_assortativity_coefficient", dee),
("node_boundary", dee),
("edge_boundary", dee),
("average_degree_connectivity", dee),
("average_degree_connectivity", ded),
("attribute_assortativity_coefficient", dle),
("attribute_assortativity_coefficient", dde),
]
)
with multiprocessing.Pool() as pool:
pool.map(cmake_app, targets)