Skip to content

Conversation

@yh-yao
Copy link
Contributor

@yh-yao yh-yao commented Sep 10, 2025

This pull request refactors the benchmark_GC.py script 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:

  • Replaced the previous monolithic workflow with a unified benchmarking loop that iterates over datasets, algorithms, and trainer counts, enabling easier extensibility and cleaner experiment management.
  • Consolidated configuration handling: now loads YAML config files per algorithm, injects missing required parameters, and ensures proper naming conventions for model and algorithm selection.
  • Simplified experiment execution by using the single entrypoint function run_fedgraph, removing manual server/trainer setup and algorithm selection logic.

Codebase cleanup:

  • Removed unused imports, commented code, and legacy logic for data loading, trainer/server setup, and algorithm dispatch, resulting in a more concise and readable script.
  • Ensured Ray environments are properly initialized and shut down between runs to avoid resource conflicts and improve reliability.

Documentation update:

  • Updated the Slack invite link in the README.md to the new workspace URL.

yuyang2S2023 and others added 30 commits January 6, 2025 18:10
@yh-yao yh-yao requested a review from Copilot September 10, 2025 22:37
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@yh-yao yh-yao merged commit fe7618a into main Sep 10, 2025
1 check passed
@yh-yao yh-yao deleted the framework-compare branch September 18, 2025 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants