IDSIA / sacred

Sacred is a tool to help you configure, organize, log and reproduce experiments developed at IDSIA.
MIT License
4.21k stars 380 forks source link

Add documentation for running mongodb in the cloud #420

Open JarnoRFB opened 5 years ago

Mastercorp commented 5 years ago

What exactly do you mean? Something like using sacred with https://www.mongodb.com/cloud/atlas ? Are these not enough? https://sacred.readthedocs.io/en/latest/observers.html#authentication

SumNeuron commented 5 years ago

@Mastercorp I think (but am not sure) that @JarnoRFB means a wholesome example including MongoDB setup? (e.g. if someone starts using MongoDB because of Sacred and have limited idea of how to set up a server and opts for a cloud solution)

JarnoRFB commented 5 years ago

@SumNeuron Yeah that was basically the idea. I talked to some people that said that they use the FileStorageObserver, because it is easier to collaborate on... However, it is easier if you have a remote server that everybody can write to, but people also said they do not want to administrate a mongoDB. So some pointers where you can easily setup a mongoDB in the cloud. I already have a PR for a setup with docker, so that should complement it. Basically just saying you can choose one of x,y,z providers and start your containers there.

SumNeuron commented 5 years ago

@JarnoRFB I am new to Sacred and not the most experienced with MongDB, but docker sounds like the right way to go (for local).

I have found an article using MLab as a cloud solution. Most free options only offer 0.5GB which is not a lot.

However, to my current (and perhaps wrong) understanding, using an observer saves basically everything (especially if you are adding your own artifacts) - which is sort of the purpose of Sacred. This means any free solutions will quickly be consumed in terms of storage (so a local version might be better...)

JarnoRFB commented 5 years ago

@SumNeuron yes if you are working on a project alone that is definitely easier and cheaper. But for larger projects with many people working on the same thing you want to have a remote server. I use scaleway which gives you 50GB for ~5EUR a month, which is quite ok in my opinion.

Feel free to check out https://github.com/IDSIA/sacred/pull/400/. Happy to hear if more documentation if needed on this.

SumNeuron commented 5 years ago

@JarnoRFB yeah, I would love it (plus I think it will greatly lower the barrier to entry to many others)

Basically something like:

project/
-- experiment.py
-- mongodb.config.json
-- __init__.py
# experiment.py

# ...

@ex.automain
def main(...):
    # example of saving dummy data and adding artifact

    # example of adding dummy metric
    pass
JarnoRFB commented 5 years ago

Thanks for the ideas!