Comments (8)
Hi @JiaweiZhuang thanks for the mention!
Yeah a conda package for GEOS-Chem would be great! Regarding GEOS-Chem Classic, I agree it probably wouldn't be too difficult, but I do see two challenges:
- Run directories still need to be created from the unit tester, so users would have to be sure to checkout the same version of the unit tester that conda installed. This will be fixed by the rundir wizard for GEOS-Chem Classic. Do you think it would be worth waiting until then?
- Chemistry mechanisms are still compile-time changes. A possible workaround would be to ship
geos
executables for all three (e.g.geos-standard
,geos-tropchem
, andgeos-soa_svpoa
) and decide at runtime which one actually gets called based calling./getRunInfo
.
For GCHP I think we still have the same issues, but it also might be worth waiting until ESMF is made an external library so we can depend on the conda distribution of it.
Regarding Spack vs Conda vs containers, I don't think it needs to be one or the other. I think each serves a slightly different audience.
User needs a cluster? | Target users is someone who wants... | |
---|---|---|
conda | Yes | A quick and easy way to install a prebuilt GEOS-Chem |
spack | Yes | To build GEOS-Chem from source or optimized compiler options |
containers | No | To run GEOS-Chem on the cloud |
One of my motivations for the CMake work was that it would make automated builds easier (less sensitive to the build environment and build-configuration-time error checking) which I hope will make it easier to support and maintain support for projects things like conda, spack, and singularity. Striving to support all three might be a good goal!
I think this is a great idea and I'd be happy to help out in getting a conda package for GEOS-Chem going!
What do you think?
Btw, it sounds like GMAO has some interest in spack too (see GEOS-ESM/MAPL#25).
from geos-chem.
This will be fixed by the rundir wizard for GEOS-Chem Classic. Do you think it would be worth waiting until then?
Definitely. There is no urgency for this.
Chemistry mechanisms are still compile-time changes.
I would probably just support geos-standard
to avoid maintenance troubles. Users who want more customization should compile from source code instead...
Regarding Spack vs Conda vs containers, I don't think it needs to be one or the other. I think each serves a slightly different audience!
I agree. My only concern is adding maintenance burden on GCST, and whether the benefits justifies this additional maintenance (although updating a package should be as simple as changing version name and rerunning the build)
Anaconda cloud tracks how many times a package gets downloaded, so we will be able to see whether this is used at all, and decide whether to continue supporting it.
For GCHP I think we still have the same issues, but it also might be worth waiting until ESMF is made an external library so we can depend on the conda distribution of it.
Given that GC-classic is not hard to compile, the most useful case is probably allowing conda install gchp
so users can grab a standard implementation of GCHP without having to learn anything about containers or Spack. ESMF 8.0.0 should be available on conda by the end of this year; I also need it for xesmf.
from geos-chem.
That all sounds good to me. I could tackle the GC-Classic conda package once the rundir wizard is added and GCHP once CMake is added.
from geos-chem.
Hi --
This all sounds interesting. I don't know about Conda but I think you can tell Spack a Git repository that it should pull code from.
The one downside of this is that people might get a little too comfortable with installing pre-built GEOS-Chem and then start demanding that we make available all of the varieties. (It's just human nature.) I think it's good to have the standard version but then for anything beyond that, users should clone GC from the Git repo.
from geos-chem.
A few questions:
- Is there a develop mode such that the GEOS-Chem install comes with the source code and links to github?
- Creating a run directory will require the source code. Is this what you meant by run directory wizard GC Classic?
- Who is the target user for this?
- We have ready-to-run binary available on AWS cloud. How does this expand on that accessibility?
I think making gcpy available on conda is higher priority than GEOS-Chem, but I'd like to hear more.
from geos-chem.
- Is there a develop mode such that the GEOS-Chem install comes with the source code and links to github?
Yes, for example the ESMF config file pulls from ESMF's git repo. The version can be specified by git_tag
.
- Creating a run directory will require the source code. Is this what you meant by run directory wizard GC Classic?
I think the run directory can be treated as "small data files" and just shipped with the compiled binary.
- Who is the target user for this?
- We have ready-to-run binary available on AWS cloud. How does this expand on that accessibility?
It is probably the quickest way to install GCHP on user's own cluster or server? No containers needed; no need to spend long time building from source as with Spack (which can also have compiler-specific problems for GCHP).
Think about why Anaconda takes off in the numerical Python community -- it makes SciPy (mostly wrappers around Fortran & C functions) and all SciPy-related packages very easy to install. Otherwise people would have to build the Fortran dependencies manually. From code perspective, numerical models are somewhat like SciPy... This packaging method works greats as long as people don't need to change source code.
making gcpy available on conda
For pure Python packages this is very easy to do!
from geos-chem.
it makes SciPy (mostly wrappers around Fortran & C functions) and all SciPy-related packages very easy to install
I'm not sure that GEOS-Chem is comparable with SciPy. SciPy is typically used as a supporting library for whatever it is you are working on, is it not? In the case of GEOS-Chem, GEOS-Chem is the 'whatever it is you are working on', and the SciPy equivalent would be something like the NetCDF4 libraries (which are already straightforward to install with conda
).
If the GEOS-Chem community largely consisted of model runners, and not people who are both running and modifying the model to explore science questions, then straightforward installation of a pre-compiled model would undoubtedly be valuable. I'm not sure that the GEOS-Chem community is this way, leaving me wondering 'what is the substantial value in developing and supporting an additional way to get the model?'.
from geos-chem.
I will close out this discussion but feel free to reopen.
from geos-chem.
Related Issues (20)
- [FEATURE REQUEST] Replace space-delimiter requirement in HISTORY.rc
- Where can I find the GEOSChemv13.3.2 user manual? HOT 2
- How to save all layers in THE DryDep COLLECTION?
- GEOS-CHEM Aerosol scheme HOT 2
- How to save all layers in THE DryDep COLLECTION in GEOSChemv13.3.2? HOT 4
- where can I find the description of each ouput variables? HOT 1
- Where to find fullchem chemical mechanisms in old GEOS-Chem? HOT 1
- How to add PM10 in GEOSChem 13.3.0 HOT 3
- How to caculate PM2.5 compositions? HOT 11
- Where to download the APEI data? HOT 1
- How do I set perturbations for each state vector element in HEMCO_Config.rc for global methane inversion in GEOS-Chem 14.3.1? HOT 3
- KPP integration error in 14.4.0 HOT 9
- Satellite Diagnostics not working with 0.25x0.325 grid HOT 1
- Model level check in GC Classic 14.3.1 HOT 3
- Forced exit from Rosenbrock : Step size too small error HOT 1
- What happened if I open two global anthropogenic emissions? HOT 3
- When I use the GEOS-Chem simulation, I always get a random error for NetCDF: HDF error【BUG】 HOT 5
- Errors when compiling HOT 1
- TagO3 cannot obtain the correct vertical distribution map of ozone. HOT 4
- Sulfate_mod, Chem_H2O2 convert unit mistake HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geos-chem.