Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seeking clarifications #1

Closed
matk86 opened this issue Jun 14, 2017 · 2 comments
Closed

Seeking clarifications #1

matk86 opened this issue Jun 14, 2017 · 2 comments

Comments

@matk86
Copy link
Contributor

matk86 commented Jun 14, 2017

Since i dont have much experience doing the building stuff, could someone explain:

  • The drawbacks in the design of the current builder in pymatpro

  • what new features(other than mpi support and dependency specification capabilities) must the new builder support? As far as i understand the one in pymatpro implements the producer consumer model using the multiprocessing package.

  • It would help my understanding a lot if someone could give me a concrete fully sketched out example of a builder with complicated dependencies.

  • What package dependencies are allowed? for example the current get_db function in the helpers module is a reimplementaion of the function in matgendb.utils module. So should we use those from matgendb package or make everything self-contained?

Thanks

@matk86 matk86 changed the title Clarifications Seeking clarifications Jun 14, 2017
@shyuep
Copy link
Member

shyuep commented Jun 14, 2017

  • Drawbacks - too many to list.
  • General suggestion is that pymatpro should be a thin layer. Everything that can be "outsourced" to public packages should be so. If pymatgen-db already has a db access, improve on that rather than writing your own in pymatpro. If builders need a "workflow" style process, use fireworks. The more code is public, the more eyes will look at the code. The reason why pymatpro is the way it is today is because privacy promotes laziness. There are no tests, people write all sorts of things badly, and no one ever looks at them.
  • Dependencies - use as many public, well-maintained code bases as you like. The more, the better.

@dwinston
Copy link
Member

I agree with @shyuep on shunting MP-specific stuff to public packages. The idea of this public repository specifically is to shunt materials-science-agnostic stuff from pymatgen-db so that more eyes look at the code that essentially just builds on pymongo to manage database building and maintenance -- I couldn't find a good open library for this, and the audience is anyone who uses Mongo and Python (like https://github.com/materialsvirtuallab/flamyngo).

The idea of https://github.com/materialsproject/emmet is to trim pymatpro and outsource stuff to a public repo. emmet should depend on this repo and on pymatgen-db, etc. (emmet:maggma as atomate:fireworks).

@matk86 matk86 closed this as completed Jun 27, 2017
shyamd pushed a commit that referenced this issue May 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants