From 22c2936bbdb9065140f2a6f5b09f26ae6841495a Mon Sep 17 00:00:00 2001 From: jeandut Date: Mon, 18 Nov 2024 23:03:33 +0100 Subject: [PATCH] Adding runtimes and "pinning" versions (#67) * adding runtimes and pinning versions * Update README.md * Update README.md * Update README.md * Update README.md --- README.md | 10 +++++++++- setup.py | 24 +++++++++++++----------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5880655..d422848 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ To install the package, create an env with python `3.9` with conda conda create -n fedeca python=3.9 conda activate fedeca ``` - +Creating the conda environment should take under 20 seconds on a modern computer with a reasonably good internet connexion (see below for details). Within the environment, install the package by running: ``` @@ -31,6 +31,8 @@ git clone https://github.com/owkin/fedeca.git cd fedeca pip install -e ".[all_extra]" ``` +The cloning itself should take less than 5 seconds and the pip install +should take around 1 min and 30 seconds. If you plan on developing, you should also install the pre-commit hooks @@ -40,10 +42,16 @@ pre-commit install This will run all the pre-commit hooks at each commit, ensuring a clean repo. +All estimated runtimes computations use as reference machine a Mac M3 Pro with 18G of RAM +and an internet connexion with a speed of 120Mbps (as measured by fast.com). + ## Quickstart Go [here](./quickstart/quickstart.md). +Copy-pasting all cells of the tutorial into a regular python script gives a runtime of approximately 1 minute, +with less than 2 seconds spent on each run of the FedECA algorithm in-RAM (using the same Mac M3 Pro as a reference). + ## Citing FedECA ``` diff --git a/setup.py b/setup.py index d3e6f75..0a66360 100644 --- a/setup.py +++ b/setup.py @@ -31,22 +31,24 @@ install_requires=[ # We cannot use the git+https / git+ssh syntax here because of docker # build issues related to git not being installed + # Commented pinned versions are only there as references but should + # not matter as long as the versions are compatible with the ones + # uncommented. "substrafl==0.46.0", - "argparse", "numpy==1.26.4", - "pandas", - "pre-commit", - "scipy", - "seaborn", - "opacus", - "lifelines", - "git-python", - "build", + "pandas",#==2.2.3 + "pre-commit",#==4.0.1 + "scipy",#==1.13.1 + "seaborn",#==0.13.2 + "opacus",#==1.4.0 + "lifelines",#==0.29.0 + "git-python",#==1.0.3 + "build",#==1.2.2.post1 "torch==1.13.1", "scikit-learn==1.2.1", - "pydantic", # Need to be updated to > 2.0 to use latest Substra + "pydantic", #==2.23.4 "indcomp==0.2.1", - "hydra-core", + "hydra-core",#==1.3.2 ], extras_require={ "all_extra": all_extra,