-
Notifications
You must be signed in to change notification settings - Fork 2
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
BSSw Community Discussion #2
Comments
Finding that our visualization cluster's conda module is currently based on python/3.7, I installed and tried this today. First, I downloaded and ran the official installer to put Then, I cloned this repo and ran some commands. At first, I thought I should source conda-env-mod so that functions like
Adding conda's python (and conda executable) to my PATH should be documented. It makes sense though - since I want to use the newest python and conda by default. However, it might be nice to default to working with an isolated anaconda so the user works exclusively with conda-env-mod. We probably need a separate thread to address all the security concerns with using conda, but one that I notice right away is how creating a new environment makes its own copy of openssl and ca-certificates. Our site prefers us to use their installation because they are very good at keeping it up to date. The environment I created with It would be good to warn users about conda caches - which can quickly grow to tens of gigabytes. Documentation should say where conda keeps its download and compile cache so that I can clear it and/or make sure it doesn't get added to automatic site backups. Summarizing my comments -- the modules-based wrapper for conda is definitely a nice way to link with HPC cluster users. I suggest some more documentation about installing and setting up conda-env-mod so it's accessible within a shared project. As for feature improvements, I would go in a different direction from your suggestions above. I'm a big fan of version-controlling environments. Modules kind of does that by using the "name/version" naming scheme. Why not setup conda-env-mod to be able to create an environment from a git repository of a conda env-yaml file? Then a project group can debate changes to the environment via github. |
@frobnitzem Thank you for the detailed comments and suggestions! We certainly need to make an effort to make this easier to install and use (and have better documentation). Also like your last suggestion. Creating environments from Regarding module files: You can change the location of module files with the We have also been discussing about adding |
|
@hnamLANL |
I should also write a response to your questions!
|
@amaji - sending you information on getting access to Perlmutter/NERSC via email. |
For this tool to scratch my particular itch, it will need to address the issue of a team creating an environment for their product in a way that the user cannot change. Our product requires certain versions and packages to function correctly and the last thing I want to do is help a bunch of users to correctly configure their own python environments. As it is, it's easier to have our own install of what we need for our product everywhere we use our product than to try to use a system-wide solution. |
To the first question:
As a user the most common issues I face are to do with mpi4py installation, which needs to match with the correct MPI. Centers may provide a base conda environment with the correctly installed mpi4py (and possibly other things) but I cannot install packages on top of that environment, so I have to create my own. I can clone the environment, but this brings all packages with it (taking a long time and multiple GB). I would like to be able to 'extend' a central environment with my own (similar to --user, but still within conda). Some places (e.g. NERSC lazy-mpi4py provide a clonable environment with small number of key machine-specific packages (including mpi4py). This is the best approach so far. I guess if this tool makes it easy to create and share an environment as a module, then it would be easier for anyone to create such modules. Test drive of package: I was able to run and share a basic module, with help from https://www.rcac.purdue.edu/knowledge/brown/run/examples/apps/python/packages. It did refer to a The only issue I had is that when I ran the script, it created an environment and installed its own python - but the bin dir did not get prepended to my PATH so was not picking up that python. I had to activate the environment for that to happen, or add it manually. I wasn't clear whether I should need to activate. Also, I got this warning. An anaconda3 module was loaded, but it seems this does not set $CONDA_MODULE on my system. Other thoughts: Simplifying Jupyter support is nice. Different module file format seems a good idea, I cant really say about different environment backends, as I only use conda, to my mind its pretty dominant (but others can comment on that). Any ability to reverse by storing snapshots could be useful. Conda has some ability with revisions, but from memory I think it only works properly for conda installed packages. |
The objective of this thread is to collect requirements for improving conda-env-mod and converting it into a production software that can be used across multiple HPC centers.
For a high-level overview of
conda-env-mod
please see the slides underpresentation
directory or refer to our HUST20 paper:Please add your suggestions as comments in this thread. If a discussion topic becomes too complicated we can move it into its own thread/issue.
Suggested topics:
PYTHONPATH
,PYTHONUSERBASE
etc.)?Current features of
conda-env-mod
Proposed additional features
The text was updated successfully, but these errors were encountered: