{"id":19706026,"url":"https://github.com/llnl/havoqgt","last_synced_at":"2025-04-29T16:32:31.256Z","repository":{"id":48462224,"uuid":"65267779","full_name":"LLNL/havoqgt","owner":"LLNL","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-15T03:11:59.000Z","size":27712,"stargazers_count":28,"open_issues_count":1,"forks_count":12,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-15T03:23:09.205Z","etag":null,"topics":["cpp","graph"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLNL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-09T06:09:51.000Z","updated_at":"2025-04-10T20:56:13.000Z","dependencies_parsed_at":"2022-08-24T06:10:18.134Z","dependency_job_id":null,"html_url":"https://github.com/LLNL/havoqgt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhavoqgt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhavoqgt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhavoqgt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhavoqgt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/havoqgt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251540365,"owners_count":21605891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cpp","graph"],"created_at":"2024-11-11T21:33:11.535Z","updated_at":"2025-04-29T16:32:26.245Z","avatar_url":"https://github.com/LLNL.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nHavoqGT (Highly Asynchronous Visitor Queue Graph Toolkit) is a framework for\nexpressing asynchronous vertex-centric graph algorithms.  It provides a visitor\ninterface, where actions are defined at an individual vertex level.\nThis code was developed at Lawrence Livermore National Laboratory.\n\nBuilt in C++, the framework provides a runtime for parallel communication and\nalgorithm termination detection.   V0.1 is an initial release with only MPI support.\nAll graph data is stored in mmaped files, using Boost.Interprocess and Memory \nMapped (mmap) I/O.   Large graphs that cannot fit in main-memory may still be\nprocessed using mmap as external memory.  For best results, high speed Flash \ndevices are preferred for external memory storage.\n\n--------------------------------------------------------------------------------\n# Getting Started\n\n## Required to Build HavoqGT\n\n- GCC 8.1 or later.\n- CMake 2.6 or later.\n- Boost C++ Libraries 1.64 or later (only headers required).\n- Metall (https://github.com/LLNL/metall) 0.5 or later.\n\n## Build\nOne can install Boost C++ Libraries and Metall using Spack.\nA proper version of Boost C++ Libraries will be installed along with Metall.\n\nAn example to build HavoqGT with Spack is:\n```bash\nspack install metall\nspack load metall\ngit clone https://github.com/LLNL/havoqgt.git\ncd havoqgt\ngit checkout -b develop\nmkdir build_dir\ncd build_dir\ncmake ../ \\\n  -DCMAKE_BUILD_TYPE=Release \\\n  -DCMAKE_CXX_FLAGS=\"-std=c++17 -lrt -lstdc++fs -lpthread\" \\\n  -DHAVOQGT_BUILD_TEST=TRUE \\\n  -DMPIEXEC_NUMPROC_FLAG=\"-n\"\nmake\nmake test # option\nmake install # option\n```\n\nUse `CMAKE_CXX_COMPILER=/path/to/g++` and `MPI_CXX_COMPILER=/path/to/mpic++` CMake options to specify a C++ compiler and a MPI compiler, respectively.\nTo change the install directory, one can use `CMAKE_INSTALL_PREFIX` CMake option.\n\n\n### Build without Spack\n\nHere are the CMake variables to specify the locations of Boost C++ Libraries and Metall manually.\n* `BOOST_ROOT=/path/to/boost`\n* `METALL_ROOT=/path/to/metall`\n\nHavoqGT uses header files of the libraries. One does not need to build them.\n\n\n## Build with Umap\n\nTo use Umap instead of system mmap(), use CMake option `-DUSE_UMAP=on`.\n\nCMake tries to find the library from its default search paths.\nTo manually specify the location of Umap, use CMake variable `-DUMAP_ROOT=/path/to/umap/install/dir/root`.\n\n\n## Build with HDF5\n\nTo build executable(s) that use HDF5, use CMake option `-DUSE_HDF5=ON`.\nCMake tries to find the library from its default search paths ---\nfor instance, one can control the search path by using CMake variable `CMAKE_PREFIX_PATH`\n\n\n# About\n\n## Authors\n\n* Roger A Pearce (rpearce at llnl dot gov)\n* Keita Iwabuchi (kiwabuchi at llnl dot gov)\n* Tahsin A Reza (reza2 at llnl dot gov)\n\n## License\n\nHavoqGT is distributed under the terms of the MIT license.\nAll new contributions must be made under this license.\n\nSee [LICENSE](LICENSE) and [NOTICE](NOTICE) for details.\n\nSPDX-License-Identifier: MIT\n\n## Release\n\nLLNL-CODE-814805\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fhavoqgt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Fhavoqgt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fhavoqgt/lists"}