{"id":18421979,"url":"https://github.com/spcl/probgraph","last_synced_at":"2026-03-19T04:18:38.103Z","repository":{"id":135159006,"uuid":"529427521","full_name":"spcl/probgraph","owner":"spcl","description":null,"archived":false,"fork":false,"pushed_at":"2022-08-26T23:16:19.000Z","size":4229,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-12T13:06:03.843Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spcl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-26T23:09:48.000Z","updated_at":"2023-01-24T16:01:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"8412fe34-b96d-4a80-8347-f3f6ecd0ac1f","html_url":"https://github.com/spcl/probgraph","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/spcl/probgraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fprobgraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fprobgraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fprobgraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fprobgraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spcl","download_url":"https://codeload.github.com/spcl/probgraph/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fprobgraph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28870639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T07:35:32.468Z","status":"ssl_error","status_checked_at":"2026-01-29T07:33:31.463Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T04:27:35.004Z","updated_at":"2026-01-29T07:39:43.922Z","avatar_url":"https://github.com/spcl.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Prerequirisites: #\r\n\r\n  * boost 1.76\r\n  * g++ 8.3.0\r\n  * python 3.7\r\n\r\n### Building: #\r\n\r\nRun the following commands from the main probgraph-public folder:\r\n```\r\ncd src\r\nmake\r\ncd ../ \r\n```\r\n\r\n### Using ProbGraph: #\r\n\r\nNow run the test to check that everything works:\r\n\r\n`./test.sh`\r\n\r\nor you can try it yourself by running any of the executables in probgraph-public/src/\r\n\r\nthe general formulation is\r\n\r\n`./src/PROBLEM_APPROXIMATOR OPTIONS`\r\n\r\npossible choices for PROBLEM are:\r\n  * `tc` : Triangle Counting\r\n  * `jp-jc` : Clustering (Jaccard)\r\n  * `jp-ov` : Clustering (Overlap)\r\n  * `jp-cn` : Clustering (Common neigh.)\r\n  * `4c`: 4-cliques\r\n\r\npossible choices for APPROXIMATOR are:\r\n  * `base` : Baseline\r\n  * `1h`: one-hash\r\n  * `bf`: Bloom Filter\r\n  * `pgp`: Partial Graph Processing\r\n  * `redex`: Reduced Execution\r\n  * `colorful`, `doulion` : only available for Triangle Counting\r\n\r\nFor example, \r\n\r\n`./src/tc_bf -g 17 -k 256`\r\n\r\nwill run Triangle counting (TC) using Bloom Filters (BF) on a Kronecker graph with 2^17 nodes and 256 avg. degree (-g 17 -k 256).\r\nRun any executable with the -h flag to see the available options\r\n\r\nIn order to run experiments on stored graphs, you will have to download them in the probgraph-sc/src/graphs/ folder. Some small graphs are already in the folder. You can find a list of graphs in the paper together with references to the datasets. In alternative, you can download your own graphs in the graphs folder. Be sure they are in the ordered edgelist format. \r\n\r\n### Reproducing our results: #\r\n\r\nTo reproduce the experiments in the paper, run \r\n\r\n`./launch_experiments` (use the _CLUSTER version if you are on a cluster) \r\n\r\nThen, collect all results using \r\n\r\n`./collect_results.sh`\r\n\r\nthis will overwrite the existing csv files in the result folders. If you just want to generate the images from the existing data, skip the two previous steps and just run\r\n\r\n`./generate_images.sh`\r\n\r\n### Sample images: #\r\n\r\n Analysis of performance, accuracy and memory for the BF and MH ProbGraph approximators (Jaccard Similarity Clustering) \r\n ![Analysis of performance, accuracy, and memory of ProbGraph](/sample_images/barplot_test_real_JP-JC.pdf)\r\n\r\nAccuracy and Speed-up for various measures estimated with ProbGraph on Kronecker graphs.\r\n![Advantages of ProbGraph for Kronecker graphs.](/sample_images/main-results-kron___low-mem.pdf)\r\n\r\nWeak scaling behaviour of ProbGraph and some representative baselines for the TC problem.\r\n![Weak scaling for the TC problem](/sample_images/plot_weak_scaling_tc.pdf)\r\n\r\n\r\nAnalysis of the accuracy of ProbGraph estimators for intersection.\r\n![Analysis of the accuracy of ProbGraph estimators for intersection.](/sample_images/plot_intersection_b4_mem33.pdf)\r\n\r\n### Reproducing the results on intersection estimator accuracy: #\r\n\r\nRun the following commands to reproduce our accuracy study for the interesection estimator: \r\n\r\n`cd src/src`\r\n\r\n`g++ -o evaluate_intersection_estimators evaluate_intersection_estimators.cpp MurmurHash3.cpp`\r\n\r\n`./evaluate_intersection_estimators`\r\n\r\n`cd ../..`\r\n\r\n`python3 create_intersection_estimator_plots.py`\r\n\r\nThe plots will be saved in the folder 'intersection_estimator_plots'. Please note that due to the random choice of hash functions, the plots will slightly vary each time they are re-generated.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspcl%2Fprobgraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspcl%2Fprobgraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspcl%2Fprobgraph/lists"}