Skip to content

Commit

Permalink
Merge pull request #4 from tudelft-eemcs-dml/poisoned-federator
Browse files Browse the repository at this point in the history
Poisoned federator
  • Loading branch information
JMGaljaard authored Mar 28, 2022
2 parents 853eaf2 + 8871249 commit 84c505a
Show file tree
Hide file tree
Showing 107 changed files with 3,514 additions and 3,011 deletions.
15 changes: 6 additions & 9 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
venv
default_models
data_loaders
data/cifar-10-batches-py
data/cifar-100-python.tar.gz
data/FashionMNIST
data/cifar-100-python
data/cifar-10-python.tar.gz
simple_example
# Ignoring the venv
venv/
logging/
# Ignoring all the compressed archives
**/*.tar.gz
**/__pycache__
44 changes: 44 additions & 0 deletions .github/Bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: "\U0001F41B Bug Report"
about: "If something isn't working as expected \U0001F914."
title: ''
labels: 'i: bug, i: needs triage'
assignees: ''

---

## Bug Report

**Current Behavior**
A clear and concise description of the behavior.

**Input Code**
- REPL or Repo link if applicable:

```js
var your => (code) => here;
```

**Expected behavior/code**
A clear and concise description of what you expected to happen (or code).

**FLTK Configuration (execution config, system parameters, hyper-parameters, etc.)**

```js
{
"your": { "config": "here" }
}
```

**Environment**
- Python version: [e.g. 3.7]
- PyTorch version: [e.g. 1.9.1]
- OS: [e.g. OSX 10.13.4, Windows 10]
- Kubernetes version: [e.g v1.22]
- Platform: [e.g. minikube, GKE, AWS]

**Possible Solution**
<!--- Only if you have suggestions on a fix for the bug -->

**Additional context/Screenshots**
Add any other context about the problem here. If applicable, add screenshots to help explain.
23 changes: 23 additions & 0 deletions .github/Feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: "\U0001F680 Feature Request"
about: "I have a suggestion (and may want to implement it \U0001F642)!"
title: ''
labels: 'i: enhancement, i: needs triage'
assignees: ''

---

## Feature Request

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I have an issue when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen. Add any considered drawbacks.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Teachability, Documentation, Adoption, Migration Strategy**
If you can, explain how users will be able to use this and possibly write out a version the docs.
Maybe a screenshot or design?
20 changes: 20 additions & 0 deletions .github/Pull_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## (Short) Description
This pull request addresses issue ...

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] I have read the **CONTRIBUTING** document.
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.



## (Optional) Additional remarks

<!-- Put additional remarks here, or leave empty -->
42 changes: 42 additions & 0 deletions .github/Regression.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: "\U0001F4A5 v7 Regression"
about: Report an unexpected behavior in v7 from v6
title: ''
labels: 'i: bug, 7.x: regression, i: needs triage'
assignees: ''

---

# Regression

**Potential Commit/PR that introduced the regression**
If you have time to investigate, what PR/date introduced this issue.

**Describe the regression**
A clear and concise description of what the regression is.

**Input Code**
<!--- If you have link to our REPL or a standalone repo please link that! -->

```js
var your => (code) => here;
```

**FLTK Configuration (execution config, system parameters, hyper-paramete
rs, etc.)**

```js
{
"your": { "config": "here" }
}
```

**Expected behavior/code**
A clear and concise description of what you expected to happen (or code).

**Environment**
- Python version: [e.g. 3.7]
- PyTorch version: [e.g. 1.9.1]
- OS: [e.g. OSX 10.13.4, Windows 10]
- Kubernetes version: [e.g v1.22]
- Platform: [e.g. minikube, GKE, AWS]
14 changes: 14 additions & 0 deletions .github/Support_question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: "\U0001F917 Support Question"
about: "If you have a question \U0001F4AC, please check out our the Mattermost or Brightspace page!"
title: ''
labels: 'i: question, i: needs triage'
assignees: ''

---

--------------^ Click "Preview" for a nicer view!
We primarily use GitHub as an issue tracker; for usage and support questions, feel free to open an issue!

---

14 changes: 5 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ share/python-wheels/
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# Usually these files are written by a python script from a master_template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
Expand Down Expand Up @@ -128,15 +128,11 @@ dmypy.json
# Pyre type checker
.pyre/


venv
venv-*
default_models
data
data_loaders
simple_example
data/**
!data/.gitkeep
output
docker_data
.idea
*.tmp.txt
docker-compose.yml

logging/**/events.out.**
41 changes: 13 additions & 28 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,41 +1,26 @@
# Base image to start with
FROM ubuntu:20.04

# Who maintains this DockerFile
MAINTAINER Bart Cox <b.a.cox@tudelft.nl>
MAINTAINER Jeroen Galjaard <J.M.Galjaard-1@student.tudelft.nl>

# Run build without interactive dialogue
ARG DEBIAN_FRONTEND=noninteractive

ENV GLOO_SOCKET_IFNAME=eth0
ENV TP_SOCKET_IFNAME=eth0

# Define the working directory of the current Docker container
WORKDIR /opt/federation-lab

# Update the Ubuntu software repository
# Update the Ubuntu software repository and fetch packages
RUN apt-get update \
&& apt-get install -y vim curl python3 python3-pip net-tools iproute2

# Copy the current folder to the working directory
COPY setup.py ./

# Install all required packages for the generator
RUN pip3 setup.py install

#RUN mkdir -p ./data/MNIST
#COPY ./data/MNIST ../data/MNIST
ADD fltk ./fedsim
#RUN ls -la
COPY federated_learning.py ./
COPY custom_mnist.py ./
#RUN ls -la ./fedsim
&& apt-get install -y curl python3 python3-pip net-tools iproute2

# Expose the container's port to the host OS
EXPOSE 5000
# Add Pre-downloaded models (otherwise needs be run every-time)
ADD data/ data/

# Run command by default for the executing container
# CMD ["python3", "/opt/Generatrix/rpc_parameter_server.py", "--world_size=2", "--rank=0", "--master_addr=192.168.144.2"]
# Use cache for pip, otherwise we repeatedly pull from repository
ADD requirements.txt ./
RUN --mount=type=cache,target=/root/.cache/pip python3 -m pip install -r requirements.txt

#CMD python3 /opt/federation-lab/rpc_parameter_server.py --world_size=$WORLD_SIZE --rank=$RANK --master_addr=10.5.0.11
CMD python3 /opt/federation-lab/federated_learning.py $RANK $WORLD_SIZE 10.5.0.11
# Add FLTK and configurations
ADD fltk fltk
ADD configs configs
ADD charts charts
Loading

0 comments on commit 84c505a

Please sign in to comment.