Cleaned benchmark and workflow. Added HE, DP, and Lowrank#42
Merged
Conversation
… tracking from cluster-specific metrics.
There was a problem hiding this comment.
Pull Request Overview
This pull request refactors and streamlines the benchmarking infrastructure for federated graph learning while adding support for differential privacy, low-rank compression, and homomorphic encryption. The changes modernize the codebase with improved configuration management, simplified workflow execution, and enhanced monitoring capabilities.
Key changes include:
- Unified benchmarking loop that iterates over datasets, algorithms, and trainer counts
- New privacy-preserving techniques: differential privacy (DP) and low-rank compression modules
- Enhanced monitoring system with initialization tracking and theoretical communication cost estimation
- Improved Ray cluster setup scripts with better documentation and reliability
Reviewed Changes
Copilot reviewed 43 out of 89 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| setup_cluster.sh | Updated cluster setup with commented Docker sections and improved port forwarding instructions |
| ray_cluster_configs/ | Modified resource allocation and scaling configurations for head and worker nodes |
| quickstart.py | Added configuration parameters for DP, low-rank compression, and HE features |
| fedgraph/federated_methods.py | Major refactor with enhanced run functions supporting new privacy techniques |
| fedgraph/monitor_class.py | Enhanced monitoring with initialization time tracking and cluster-aware functionality |
| fedgraph/differential_privacy/ | New module implementing DP mechanisms with Gaussian, Laplace, and local DP support |
| fedgraph/low_rank/ | New module providing SVD-based parameter compression for bandwidth reduction |
| benchmark/ | Updated benchmarking scripts and visualization tools with improved data extraction |
Comments suppressed due to low confidence (2)
fedgraph/differential_privacy/dp_mechanisms.py:1
- torch.svd is deprecated. Use torch.linalg.svd instead for better numerical stability and future compatibility.
import torch
fedgraph/federated_methods.py:1
- [nitpick] The removed print statement provided useful debugging information. Consider keeping it or replacing with proper logging.
import argparse
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request refactors the
benchmark_GC.pyscript to streamline and modernize the benchmarking process for federated graph classification algorithms. The changes simplify the codebase, improve maintainability, and enhance usability for running experiments across multiple datasets and algorithms. Notably, the script now uses a unified benchmarking loop, removes redundant code, and adds better configuration management. Additionally, the README's Slack invite link has been updated.Benchmarking script improvements:
run_fedgraph, removing manual server/trainer setup and algorithm selection logic.Codebase cleanup:
Documentation update:
README.mdto the new workspace URL.