55 lines
2.7 KiB
YAML
55 lines
2.7 KiB
YAML
name: UnitTests for Distributed Mode
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, edited]
|
|
|
|
jobs:
|
|
run:
|
|
if: false == contains(github.event.pull_request.title, 'WIP')
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 20
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
python-version: ['3.9']
|
|
torch-version: ['1.10.1']
|
|
torchvision-version: ['0.11.2']
|
|
torchaudio-version: ['0.10.1']
|
|
env:
|
|
OS: ${{ matrix.os }}
|
|
PYTHON: '3.9'
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: Setup Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@master
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install PyTorch ${{ matrix.torch-version }}+cpu
|
|
run: |
|
|
pip install numpy typing-extensions dataclasses
|
|
pip install torch==${{ matrix.torch-version}}+cpu torchvision==${{matrix.torchvision-version}}+cpu torchaudio==${{matrix.torchaudio-version}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
|
|
- name: Install FS
|
|
run: |
|
|
pip install -e .[test]
|
|
- name: Test Distributed (LR on toy with a unified files)
|
|
run: |
|
|
python scripts/distributed_scripts/gen_data.py
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_server_no_data.yaml distribute.grpc_compression gzip &
|
|
sleep 2
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_client_1.yaml distribute.grpc_compression gzip &
|
|
sleep 2
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_client_2.yaml distribute.grpc_compression gzip &
|
|
sleep 2
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_client_3.yaml distribute.grpc_compression gzip
|
|
[ $? -eq 1 ] && exit 1 || echo "Passed"
|
|
- name: Test Distributed (LR on toy with multiple files)
|
|
run: |
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_server.yaml data.file_path 'toy_data/server_data' distribute.data_idx -1 &
|
|
sleep 2
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_client_1.yaml data.file_path 'toy_data/client_1_data' distribute.data_idx -1 &
|
|
sleep 2
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_client_2.yaml data.file_path 'toy_data/client_2_data' distribute.data_idx -1 &
|
|
sleep 2
|
|
python federatedscope/main.py --cfg scripts/distributed_scripts/distributed_configs/distributed_client_3.yaml data.file_path 'toy_data/client_3_data' distribute.data_idx -1
|