- Feasibility Study [3/18]
- collect latest work of processing subgraph on GPU
- collect latest work of techniques of subgraph query
- analyze and find out which benchmark to use
- analyze and find out if TCR can support all required operators
- Implement cypher on TCR [7/15]
- design framework [4/8]
- implement graph storage [4/23]
- implement physical operators [5/23]
- implement hand-optimized query plan towards LSQB or LDBC-SNB-IC or LDBC-SNB-BI [6/7] *
- optimize implementation and hand-optimized query plan [7/7] *
- finish implementation of cypher on TCR [7/15]
- Write SIGMOD paper and do experiments [10/7]
- finish outline [8/7]
- finish design experiments [8/7]
- finish first draft [9/7]
- finish experiments [10/1]
- finish revision [10/7]
- SIGMOD paper submission [10/15]
- VLDB paper submission [2024/1/1] (if not accepted by SIGMOD)
- we choose to implement LDBC-SNB-BI and are working on these now (6/25)
- paper submitted to VLDB.
- finished the first round of paper modification.
- modifying the paper.
- learning PyTorch internals.
- to make the paper ready for submission.
- finished the first draft of paper.
- modifying the paper.
- learning PyTorch internals.
- to do remaining experiments like Performance Per Dollar test.
- finished most of experiments.
- writing the paper.
- learning PyTorch internals.
- to do remaining experiments like Performance Per Dollar test.
- finished implementing all currently supported LDBC BI queries.
- writing the paper.
- learning PyTorch internals.
- doing ablation study
- to do scalability test.
- to do other experiments like query time breakdown and Performance Per Dollar test.
- finished and improved the implementation of
TreeTable
, a class bringing in the graph-ralated optimization. - conducted comparison experiments on implemented LDBC BI benchmark queries.
- conducted comparison experiments on LSQB benchmark queries.
- writing the paper.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to do ablation study.
- to do scalability test.
- to do other experiments like query time breakdown and Performance Per Dollar test.
- finished the draft of the main part of paper.
- implemented the
expand_tree
method ofTreeTable
.
- writing the paper.
- implementing the graph-related optimisation method into our system.
- implementing other LDBC BI queries using new techniques.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to implement
expand_tree
andTreeTable
and test the performance of implemented graph-related optimisation. - to learn about more join methods, like zip join and radix join.
- to think about the way we systematically test the performance of PyTorch Tensor operators on CPU and GPU.
- to think about the possibility of making CPU and GPU cooperate better.
- designed the preliminary structure of the paper and started writing the paper.
- re-implemented LDBC BI Q9, Q11 and Q12 using
EdgeTable
andPathTable
, in addition to Q1-Q8.
- writing the paper.
- implementing the graph-related optimisation method into our system.
- implementing other LDBC BI queries using new techniques.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to implement
expand_tree
andTreeTable
and test the performance of implemented graph-related optimisation. - to learn about more join methods, like zip join and radix join.
- to think about the way we systematically test the performance of PyTorch Tensor operators on CPU and GPU.
- to think about the possibility of making CPU and GPU cooperate better.
- improved and further completed the implementation of
PathTable
andEdgeTable
. - re-implemented LDBC BI Q1 to Q8 using
EdgeTable
andPathTable
, and compared the performance with previous implementation.
- implementing the graph-related optimisation method into our system.
- implementing other LDBC BI queries using new techniques.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to implement
expand_tree
andTreeTable
and test the performance of implemented graph-related optimisation. - to learn about more join methods, like zip join and radix join.
- to think about the way we systematically test the performance of PyTorch Tensor operators on CPU and GPU.
- to think about the possibility of making CPU and GPU cooperate better.
- implemented
get_neighbors
inEdgeTable
. - implemented
select
,project
,aggregate
,distinct
andsort
inPathTable
. - re-implemented LDBC BI Q3 and Q4 using
EdgeTable
andPathTable
, and compared the performance with previous implementation.
- implementing the graph-related optimisation method into our system.
- implementing other LDBC BI queries in addition to Q3 and Q4 using new techniques.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to implement
expand_tree
andTreeTable
and test the performance of implemented graph-related optimisation. - to learn about more join methods, like zip join and radix join.
- to think about the way we systematically test the performance of PyTorch Tensor operators on CPU and GPU.
- to think about the possibility of making CPU and GPU cooperate better.
- implemented node renumbering and EdgeTable preprocessing.
- implemented
expand_path
inPathTable
andclosure
inEdgeTable
.
- implementing the graph-related optimisation method into our system.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to implement
expand_tree
and test the performance of implemented graph-related optimisation. - to learn about more join methods, like zip join and radix join.
- to think about the way we systematically test the performance of PyTorch Tensor operators on CPU and GPU.
- to think about the possibility of making CPU and GPU cooperate better.
- profiled our running code and found that
torch.bincount
takes too much time on GPU in Q3 and Q4, whiletorch.unique
andtorch.sort
are relatively slow on CPU. - designed a graph-related optimisation method for our system, in which we compress the edge table and intermediate join results.
- implementing the graph-related optimisation method into our system.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to learn about more join methods, like zip join and radix join.
- to think about the way we systematically test the performance of PyTorch Tensor operators on CPU and GPU.
- to think about the possibility of making CPU and GPU cooperate better.
- tested the effects of optimizations implemented last week on different queries and different scale factors.
- profiling our running code to see which operators take more time and trying to analyze the reason.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to think about the possibility of making CPU and GPU cooperate better.
- to add graph-specific optimisations into our system.
- implemented some basic optimisations like merging filter and project, merging join and project.
- profiling our running code to see which operators take more time and trying to analyze the reason.
- implementing remaining LDBC BI queries in our system.
- learning PyTorch internals.
- to think about the possibility of making CPU and GPU cooperate better.
- to add graph-specific optimisations into our system.
- built PyTorch from source code and set up the debugging environment.
- learned the basic knowledge of TorchScript.
- looked into the source code of PyTorch Geometric.
- implementing LDBC BI queries Q16 and Q17 in our system.
- learning Pytorch internals.
- to profile our running code and to see why some operators take much more time.
- implemented LDBI BI Q11, Q12, Q13, Q14, Q18.
- finished the script that automatically runs all LDBC BI queries with pre-generated parameters in one time.
- run LDBI BI queries on our system, TigerGraph and Neo4j with the scale factor of 10.
- implementing LDBC BI queries Q16 and Q17 in our system.
- learning PyTorch internals.
- to learn more about PyTorch Geometric.
- tried the scale factors of 10 and 100, but failed.
- read the paper Columnar Storage and List-based Processing for Graph Database Management Systems.
- implemented LDBC BI queries Q1 to Q10 (except for Q10, which involves shortest path computation).
- implementing LDBC BI queries Q11 to Q20 in our system.
- to write a script that can automatically run our system on the LDBC BI queries and output the results to files in some format.
- to learn more about PyTorch Geometric.
- run LDBC BI queries on Neo4j.
- made our system support string filtering.
- fixed some logical bugs about null value processing.
- implementing LDBC BI queries in addition to Q1, Q5 and Q6 in our system.
- to try running our system on the datasets of scale-factor 10 and 100.
- to read the VLDB 2021 paper Columnar Storage and List-based Processing for Graph Database Management Systems.
- to learn more about PyTorch Geometric.
- learned the syntax of GSQL (for TigerGraph) and Cypher (for Neo4j).
- run LDBC SNB BI queries on TigerGraph.
- implementing LDBC BI queries in addition to Q1, Q5 and Q6 in our system.
- to run LDBC BI queries on Neo4j.
- to make our system support string filtering.