From 7b038e2197a3e11440952c1f5e6261dfe49d87d3 Mon Sep 17 00:00:00 2001 From: Erick Lavoie <erick.lavoie@epfl.ch> Date: Thu, 30 Sep 2021 11:36:26 +0200 Subject: [PATCH] Added new scaling experiments --- ...nist-2-shards-uneq-classes-fractal-1000.sh | 42 +++++++++++++++++++ ...p-mnist-2-shards-uneq-classes-ring-1000.sh | 42 +++++++++++++++++++ ...t-2-shards-uneq-classes-smallworld-1000.sh | 42 +++++++++++++++++++ ...ideal-mnist-max-local-skew-fractal-1000.sh | 40 ++++++++++++++++++ ...dc-ideal-mnist-max-local-skew-ring-1000.sh | 40 ++++++++++++++++++ ...al-mnist-max-local-skew-smallworld-1000.sh | 40 ++++++++++++++++++ 6 files changed, 246 insertions(+) create mode 100755 results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-fractal-1000.sh create mode 100755 results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-ring-1000.sh create mode 100755 results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-smallworld-1000.sh create mode 100755 results-v2/dc-ideal-mnist-max-local-skew-fractal-1000.sh create mode 100755 results-v2/dc-ideal-mnist-max-local-skew-ring-1000.sh create mode 100755 results-v2/dc-ideal-mnist-max-local-skew-smallworld-1000.sh diff --git a/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-fractal-1000.sh b/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-fractal-1000.sh new file mode 100755 index 0000000..6b484d3 --- /dev/null +++ b/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-fractal-1000.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# Path to current script +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +TOOLS=$SCRIPT_DIR/$(cat toolspath); cd $TOOLS + +# Add current working directory to executable namespace +export PATH=$PATH:$TOOLS +# Setup root directory for resolution of imports: +# the path of all local python libraries are relative to this +export PYTHONPATH=$TOOLS + +# Each command outputs the run directory, which is then used +# by the next command to add parameters and generate information +# used by the simulator. For a list of available options for each +# command, run 'export PYTHONPATH=.; <command> --help'. +for SEED in 1 2 3; do +setup/meta.py \ + --results-directory $SCRIPT_DIR/tmp \ + --seed $SEED | +setup/dataset.py \ + --name mnist \ + --train-examples-per-class 4943 5607 4926 5121 4860 4529 4960 5237 4877 4940 | +setup/nodes/google-fl.py \ + --name 2-shards-uneq-classes \ + --nb-nodes 1000 \ + --local-shards 2 \ + --shard-size 25 | +setup/topology/d_cliques/greedy_swap.py \ + --interclique fractal \ + --max-clique-size 10 \ + --max-steps 1000 | +setup/model/linear.py | +simulate/algorithm/d_sgd.py \ + --batch-size 13 \ + --learning-momentum 0.0 \ + --learning-rate 0.1 \ + --clique-gradient | +simulate/logger.py \ + --nb-processes 8 | +simulate/run.py \ + --nb-epochs 100; +done diff --git a/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-ring-1000.sh b/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-ring-1000.sh new file mode 100755 index 0000000..1d1d899 --- /dev/null +++ b/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-ring-1000.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# Path to current script +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +TOOLS=$SCRIPT_DIR/$(cat toolspath); cd $TOOLS + +# Add current working directory to executable namespace +export PATH=$PATH:$TOOLS +# Setup root directory for resolution of imports: +# the path of all local python libraries are relative to this +export PYTHONPATH=$TOOLS + +# Each command outputs the run directory, which is then used +# by the next command to add parameters and generate information +# used by the simulator. For a list of available options for each +# command, run 'export PYTHONPATH=.; <command> --help'. +for SEED in 1 2 3; do +setup/meta.py \ + --results-directory $SCRIPT_DIR/tmp \ + --seed $SEED | +setup/dataset.py \ + --name mnist \ + --train-examples-per-class 4943 5607 4926 5121 4860 4529 4960 5237 4877 4940 | +setup/nodes/google-fl.py \ + --name 2-shards-uneq-classes \ + --nb-nodes 1000 \ + --local-shards 2 \ + --shard-size 25 | +setup/topology/d_cliques/greedy_swap.py \ + --interclique ring \ + --max-clique-size 10 \ + --max-steps 1000 | +setup/model/linear.py | +simulate/algorithm/d_sgd.py \ + --batch-size 13 \ + --learning-momentum 0.0 \ + --learning-rate 0.1 \ + --clique-gradient | +simulate/logger.py \ + --nb-processes 8 | +simulate/run.py \ + --nb-epochs 100; +done diff --git a/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-smallworld-1000.sh b/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-smallworld-1000.sh new file mode 100755 index 0000000..59f0a1b --- /dev/null +++ b/results-v2/dc-greedy-swap-mnist-2-shards-uneq-classes-smallworld-1000.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# Path to current script +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +TOOLS=$SCRIPT_DIR/$(cat toolspath); cd $TOOLS + +# Add current working directory to executable namespace +export PATH=$PATH:$TOOLS +# Setup root directory for resolution of imports: +# the path of all local python libraries are relative to this +export PYTHONPATH=$TOOLS + +# Each command outputs the run directory, which is then used +# by the next command to add parameters and generate information +# used by the simulator. For a list of available options for each +# command, run 'export PYTHONPATH=.; <command> --help'. +for SEED in 1 2 3; do +setup/meta.py \ + --results-directory $SCRIPT_DIR/tmp \ + --seed $SEED | +setup/dataset.py \ + --name mnist \ + --train-examples-per-class 4943 5607 4926 5121 4860 4529 4960 5237 4877 4940 | +setup/nodes/google-fl.py \ + --name 2-shards-uneq-classes \ + --nb-nodes 1000 \ + --local-shards 2 \ + --shard-size 25 | +setup/topology/d_cliques/greedy_swap.py \ + --interclique smallworld \ + --max-clique-size 10 \ + --max-steps 1000 | +setup/model/linear.py | +simulate/algorithm/d_sgd.py \ + --batch-size 13 \ + --learning-momentum 0.0 \ + --learning-rate 0.1 \ + --clique-gradient | +simulate/logger.py \ + --nb-processes 8 | +simulate/run.py \ + --nb-epochs 100; +done diff --git a/results-v2/dc-ideal-mnist-max-local-skew-fractal-1000.sh b/results-v2/dc-ideal-mnist-max-local-skew-fractal-1000.sh new file mode 100755 index 0000000..1bbf7d3 --- /dev/null +++ b/results-v2/dc-ideal-mnist-max-local-skew-fractal-1000.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# Path to current script +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +TOOLS=$SCRIPT_DIR/$(cat toolspath); cd $TOOLS + +# Add current working directory to executable namespace +export PATH=$PATH:$TOOLS +# Setup root directory for resolution of imports: +# the path of all local python libraries are relative to this +export PYTHONPATH=$TOOLS + +# Each command outputs the run directory, which is then used +# by the next command to add parameters and generate information +# used by the simulator. For a list of available options for each +# command, run 'export PYTHONPATH=.; <command> --help'. +for SEED in 1 2 3; do +setup/meta.py \ + --results-directory $SCRIPT_DIR/tmp \ + --seed $SEED | +setup/dataset.py \ + --name mnist \ + --train-examples-per-class 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 | +setup/nodes.py \ + --name max-local-skew \ + --nb-nodes 1000 \ + --local-classes 1 \ + --nodes-per-class 100 100 100 100 100 100 100 100 100 100 | +setup/topology/d_cliques/ideal.py \ + --interclique fractal | +setup/model/linear.py | +simulate/algorithm/d_sgd.py \ + --batch-size 13 \ + --learning-momentum 0.0 \ + --learning-rate 0.1 \ + --clique-gradient | +simulate/logger.py \ + --nb-processes 8 | +simulate/run.py \ + --nb-epochs 100; +done diff --git a/results-v2/dc-ideal-mnist-max-local-skew-ring-1000.sh b/results-v2/dc-ideal-mnist-max-local-skew-ring-1000.sh new file mode 100755 index 0000000..0d2b212 --- /dev/null +++ b/results-v2/dc-ideal-mnist-max-local-skew-ring-1000.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# Path to current script +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +TOOLS=$SCRIPT_DIR/$(cat toolspath); cd $TOOLS + +# Add current working directory to executable namespace +export PATH=$PATH:$TOOLS +# Setup root directory for resolution of imports: +# the path of all local python libraries are relative to this +export PYTHONPATH=$TOOLS + +# Each command outputs the run directory, which is then used +# by the next command to add parameters and generate information +# used by the simulator. For a list of available options for each +# command, run 'export PYTHONPATH=.; <command> --help'. +for SEED in 1 2 3; do +setup/meta.py \ + --results-directory $SCRIPT_DIR/tmp \ + --seed $SEED | +setup/dataset.py \ + --name mnist \ + --train-examples-per-class 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 | +setup/nodes.py \ + --name max-local-skew \ + --nb-nodes 1000 \ + --local-classes 1 \ + --nodes-per-class 100 100 100 100 100 100 100 100 100 100 | +setup/topology/d_cliques/ideal.py \ + --interclique ring | +setup/model/linear.py | +simulate/algorithm/d_sgd.py \ + --batch-size 13 \ + --learning-momentum 0.0 \ + --learning-rate 0.1 \ + --clique-gradient | +simulate/logger.py \ + --nb-processes 8 | +simulate/run.py \ + --nb-epochs 100; +done diff --git a/results-v2/dc-ideal-mnist-max-local-skew-smallworld-1000.sh b/results-v2/dc-ideal-mnist-max-local-skew-smallworld-1000.sh new file mode 100755 index 0000000..d847f31 --- /dev/null +++ b/results-v2/dc-ideal-mnist-max-local-skew-smallworld-1000.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# Path to current script +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +TOOLS=$SCRIPT_DIR/$(cat toolspath); cd $TOOLS + +# Add current working directory to executable namespace +export PATH=$PATH:$TOOLS +# Setup root directory for resolution of imports: +# the path of all local python libraries are relative to this +export PYTHONPATH=$TOOLS + +# Each command outputs the run directory, which is then used +# by the next command to add parameters and generate information +# used by the simulator. For a list of available options for each +# command, run 'export PYTHONPATH=.; <command> --help'. +for SEED in 1 2 3; do +setup/meta.py \ + --results-directory $SCRIPT_DIR/tmp \ + --seed $SEED | +setup/dataset.py \ + --name mnist \ + --train-examples-per-class 4500 4500 4500 4500 4500 4500 4500 4500 4500 4500 | +setup/nodes.py \ + --name max-local-skew \ + --nb-nodes 1000 \ + --local-classes 1 \ + --nodes-per-class 100 100 100 100 100 100 100 100 100 100 | +setup/topology/d_cliques/ideal.py \ + --interclique smallworld | +setup/model/linear.py | +simulate/algorithm/d_sgd.py \ + --batch-size 13 \ + --learning-momentum 0.0 \ + --learning-rate 0.1 \ + --clique-gradient | +simulate/logger.py \ + --nb-processes 8 | +simulate/run.py \ + --nb-epochs 100; +done -- GitLab