HULKs / ditef

Distributed Task Execution Framework with Genetic Algorithm for Neural Network Architecture Search
MIT License
2 stars 3 forks source link

DiTEF: Installation documentation missing #9

Open h3ndrk opened 3 years ago

h3ndrk commented 3 years ago

We need an installation script or documentation of the steps to install e.g. the distributed evolver.

All Python modules must be installed via:

pip install generic/...

Developers may want to use --editable within the above command.

h3ndrk commented 3 years ago

Also mention Python 3.8 dependency.

knoellle commented 3 years ago

I'd argue for a script, as I think it would be easier to keep up to date than external documentation and less of a hassle to set up the environment.

If we go that route, which modules should it install?

For sure these ones:

If the testing module is to be installed, we should change it's name, as "tester" is way too generic.

What about the individual modules and their evaluators? There are a couple options that seem reasonable to me:

IMHO, the script should have an --editable option that is simply passed through to every pip install call. If the user only wants specific modules installed that way, they can always run the script without the option and then reinstall the desired modules with it.

h3ndrk commented 3 years ago

IMHO, installing all modules will install evaluators that either have e.g. Tensorflow dependencies or will not be executed. We've build a Distributed Task Execution Framework. A single installation script does not make sense with that approach because we will rarely install all components in one environment.

Having CLI arguments needs further thinking but we could just install the modules by hand in the special environments we need them in.

Regarding the worker/router/algorithm, you will also not want to install all of them by default, because they may not be needed in your environment.

Because of this reasons, I'm prefering a documentation instead of a script.

knoellle commented 3 years ago

Good point.

A script might still be useful for setting up development enviroments, as you'd likely want the router, evaluator, algorithm(s) and multiple individuals. But even then, you might not want all individuals and their dependencies, so the cli argument version would be nice.

But I agree, that this is not such a common use case.

h3ndrk commented 3 years ago

I think, if we implement an installation script with a fancy general interface s.t. it works in all scenarios, but which get used by a very limited number of people, we might have more costs than benefits. Writing a little documentation is the better choice for now.