A high-performance temporal random walk sampler for dynamic networks with GPU acceleration. Built for scale.
✅ Performance First – GPU-accelerated sampling for massive networks
✅ Memory Efficient – Smart memory management for large graphs
✅ Flexible Integration – Easy Python bindings with NumPy/NetworkX support
✅ Production Ready – Tested with hundreds of extensive unit tests.
✅ Multi Platform Builds and runs seamlessly on devices with or without CUDA.
from temporal_random_walk import TemporalRandomWalk
# Create a directed temporal graph
walker = TemporalRandomWalk(is_directed=True, use_gpu=True, max_time_capacity=-1)
# Add edges - can be numpy arrays or python lists
sources = [3, 2, 0, 3, 3, 1]
targets = [4, 4, 2, 1, 2, 4]
timestamps = [71, 82, 19, 34, 79, 19]
walker.add_multiple_edges(sources, targets, timestamps)
# Sample walks with exponential time bias
walk_nodes, walk_timestamps, walk_lens = walker.get_random_walks_and_times_for_all_nodes(
max_walk_len=5,
walk_bias="ExponentialIndex",
num_walks_per_node=10,
initial_edge_bias="Uniform"
)
- ⚡ GPU acceleration for large graphs
- 🎯 Multiple sampling strategies – Uniform, Linear, Exponential
- 🔄 Forward & backward temporal walks
- 📡 Rolling window support for streaming data
- 🔗 NetworkX integration
- 🛠️ Efficient memory management
- ⚙️ Uses C++ std libraries or Thrust API selectively based on hardware availability and configuration.
Dependency | Purpose |
---|---|
pybind11 | Python-C++ bindings |
python3 | Required for building the python interfaces |
gtest | Unit testing framework |
💡 Tip: Use vcpkg to easily install and link the C++ dependencies.
pip install temporal-random-walk
📌 C++ Documentation →
📌 Python Interface Documentation →
Nguyen, Giang Hoang, et al.
"Continuous-Time Dynamic Network Embeddings."
Companion Proceedings of The Web Conference 2018.
👨🔬 Built by Packets Research Lab
🚀 Contributions welcome! Open a PR or issue if you have suggestions.