Skip to content

Commit 5c1520e

Browse files
Merge pull request #253 from marvin-hansen/main
Removed GH action to run benches; updated version numbers.
2 parents 409b485 + 1ad49a8 commit 5c1520e

File tree

7 files changed

+32
-53
lines changed

7 files changed

+32
-53
lines changed

.github/workflows/run_benches.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@ members = [
77
"deep_causality_macros",
88
]
99

10+
[workspace.dependencies]
11+
# ==============
12+
# Internal Dependencies Aliases
13+
# ==============
14+
dcl_data_structures = {path = "dcl_data_structures"}
15+
deep_causality_macros = {path = "deep_causality_macros"}
16+
ultragraph = {path = "ultragraph"}
17+
# ==============
18+
# External Dependencies Aliases
19+
# ==============
20+
proc-macro2 = "1.0.95"
21+
quote = "1.0"
22+
syn = "2.0"
1023

1124
# Optimize all crates
1225
[profile.release]

deep_causality/Cargo.toml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,10 @@ exclude = ["*.bazel", "*/*.bazel", "*.bazel.*", "BUILD", "BUILD.bazel", "MODULE
1717

1818

1919
[dependencies]
20-
21-
22-
[dependencies.dcl_data_structures]
23-
path = "../dcl_data_structures"
24-
version = "0.9"
25-
26-
27-
[dependencies.deep_causality_macros]
28-
path = "../deep_causality_macros"
29-
version = "0.4"
30-
31-
32-
[dependencies.ultragraph]
33-
path = "../ultragraph"
34-
version = "0.5"
20+
# Internal Dependencies
21+
dcl_data_structures = {workspace = true}
22+
deep_causality_macros = {workspace = true}
23+
ultragraph = {workspace = true}
3524

3625

3726
[dev-dependencies]

deep_causality_macros/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "deep_causality_macros"
3-
version = "0.4.11"
3+
version = "0.7.5"
44
edition = "2021"
55
rust-version = "1.80"
66
repository = "https://github.com/deepcausality/deep_causality.rs"
@@ -16,9 +16,9 @@ proc-macro = true
1616
[features]
1717

1818
[dependencies]
19-
proc-macro2 = "1.0.95"
20-
quote = "1.0"
21-
syn = "2.0"
19+
proc-macro2 = {workspace = true}
20+
quote = {workspace = true}
21+
syn = {workspace = true}
2222

2323
[package.metadata.docs.rs]
2424
all-features = true

ultragraph/Cargo.toml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ultragraph"
3-
version = "0.5.6"
3+
version = "0.7.5"
44
edition = "2021"
55
rust-version = "1.80"
66
repository = "https://github.com/deepcausality/deep_causality.rs"
@@ -13,12 +13,10 @@ categories = ["data-structures"]
1313
keywords = ["data-structures"]
1414
exclude = ["*.bazel", "*/*.bazel", "*.bazel.*", "BUILD", "BUILD.bazel", "MODULE.bazel", ".bazelignore",".bazelrc", "tests/**/*"]
1515

16-
[dependencies.deep_causality_macros]
17-
path = "../deep_causality_macros"
18-
version = "^0.4"
19-
2016

2117
[dependencies]
18+
# Internal Dependencies
19+
deep_causality_macros = {workspace = true}
2220

2321
[dev-dependencies]
2422
criterion = { version = "0.6", features = ["html_reports"] }

ultragraph/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
## 📣 Goal
2525

26-
`ultragraph` provides a high-performance, ergonomic, and directed graph data structure. It is designed around a
26+
ultragraph provides a high-performance, ergonomic, and directed graph data structure. It is designed around a
2727
state-machine architecture that offers both a flexible, mutable graph and a blazing-fast, immutable graph, allowing
2828
users to choose the right tool for the right phase of their application.
2929

@@ -94,17 +94,17 @@ calculation based on the mean time.)*
9494

9595
## Performance Design
9696

97-
The design of `next_graph`'s static analysis structure, `CsmGraph`, is based on the principles for high-performance
97+
The design of `ultragraph`'s static analysis structure, `CsmGraph`, is based on the principles for high-performance
9898
sparse graph representation detailed in the paper "NWHy: A Framework for Hypergraph Analytics" (Liu et al.).
99-
Specifically, `next_graph` adopts the paper's foundational model of using two mutually-indexed Compressed Sparse Row (
99+
Specifically, `ultragraph` adopts the paper's foundational model of using two mutually-indexed Compressed Sparse Row (
100100
CSR) structures to enable efficient, `O(degree)` bidirectional traversal—one for forward (outbound) edges and one for
101101
the transposed graph for backward (inbound) edges.
102102

103-
However, `next_graph` introduces three significant architectural enhancements over this baseline to provide optimal
103+
However, `ultragraph` introduces three significant architectural enhancements over this baseline to provide optimal
104104
performance and to support the specific requirements of dynamically evolving systems.
105105

106106
1. **Struct of Arrays (SoA) Memory Layout:** The internal CSR adjacency structures are implemented using a Struct of
107-
Arrays layout. Instead of a single `Vec<(target, weight)>`, `next_graph` uses two parallel vectors: `Vec<target>` and
107+
Arrays layout. Instead of a single `Vec<(target, weight)>`, `ultragraph` uses two parallel vectors: `Vec<target>` and
108108
`Vec<weight>`. This memory layout improves data locality for topology-only algorithms (e.g., reachability, cycle
109109
detection). By iterating exclusively over the `targets` vector, these algorithms avoid loading unused edge weight
110110
data into the CPU cache, which minimizes memory bandwidth usage and reduces cache pollution.
@@ -116,7 +116,7 @@ performance and to support the specific requirements of dynamically evolving sys
116116
performance across varied graph structures.
117117

118118
3. **Formal Evolutionary Lifecycle:** The most significant architectural addition is a formal two-state model for graph
119-
evolution. `next_graph` defines two distinct representations: a mutable `DynamicGraph` optimized for efficient `O(1)`
119+
evolution. `ultragraph` defines two distinct representations: a mutable `DynamicGraph` optimized for efficient `O(1)`
120120
node and edge additions, and the immutable `CsmGraph` optimized for analysis. The library provides high-performance
121121
`O(V + E)` `.freeze()` and `.unfreeze()` operations to transition between these states. This two-state model directly
122122
supports systems that require dynamic structural evolution, such as those modeling emergent causality, by providing a

0 commit comments

Comments
 (0)