CDAT / cdat

Community Data Analysis Tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Some questions and notes about 8.2.1 installation

jypeter opened this issue · comments

I have started installing CDAT 8.2.1 (not too early, some might say), and I have some questions and remarks concerning the Installing latest CDAT - 8.2.1 section

@downiec @jasonb5 ?

I have started with a brand new miniconda3 installation providing conda 4.9.2

cdat installation line does not work with tcsh

You are using lots of wildcards in the installation line, and it seems that the tcsh version of conda has problems with wildcards and produces the No match error below (best thing I have found on google is CSH install/search fail with '*' variable in an argument)

 > conda create -y -n cdat -c conda-forge -c cdat/label/v8.2.1 cdat "libnetcdf=*=mpi_openmpi_*" "mesalib=18.3.1" "python=3.7"
/home/share/unix_files/cdat/miniconda3_21-02/bin/conda: No match

I have switched to using bash for installating, and it seemed to work fine. You may want to add a side note about this

Which version of python should be specified on the installation line?

You have hard-coded 3.7 in the installation parameters ("python=3.7"), but since miniconda had installed 3.8, and you have written The latest CDAT supports [...] and 3.8 I have used only "python=3" and I got
python 3.8.8 hffdb5ce_0_cpython conda-forge
Is this OK, or am I likely to get problems later for not forcing 3.7?

How do you choose between MPI or no-MPI ?

How should I decide if I need MPI or not? I have never used MPI explicitly before in python scripts, but maybe it can be useful behind the scenes, or later ?

Is it OK to install MPI by default, just in case, or am I better off without MPI?

If I install MPI, can I later uninstall it easily (i.e without creating again a full python environment)? Or the reverse?

May you could provide some ultra quick use-cases about why PCMDI people need MPI in CDAT for, in order to help other CDAT users make up their mind

Using MPI and cdms2 leads to a PMIX ERROR error

I have installed the CDAT-with-MPI on the LSCE servers and on the Ubuntu 20 running in WSL on my Win 10 computer.

If I just import cdms2 and exit, it works fine in WSL, but I get a weird PMIX ERROR (see below). I can get rid of the error by setting a PMIX_MCA_gds environment variable, as suggested in OpenMPI 4.0.1 crashing, but I don't like this too much

(cdat-8.2.1_py3) jypeter@obelix5 - ...jypeter - 53 >python
Python 3.8.8 | packaged by conda-forge | (default, Feb 20 2021, 16:22:27)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

(cdat-8.2.1_py3) jypeter@obelix5 - ...jypeter - 54 >python
Python 3.8.8 | packaged by conda-forge | (default, Feb 20 2021, 16:22:27)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cdms2
>>>
(cdat-8.2.1_py3) jypeter@obelix5 - ...jypeter - 55 >[obelix5:30412] PMIX ERROR: NO-PERMISSIONS in file dstore_base.c at line 237
[obelix5:30412] PMIX ERROR: NO-PERMISSIONS in file dstore_base.c at line 246

(cdat-8.2.1_py3) jypeter@obelix5 - ...jypeter - 55 >setenv PMIX_MCA_gds hash

(cdat-8.2.1_py3) jypeter@obelix5 - ...jypeter - 56 >python
Python 3.8.8 | packaged by conda-forge | (default, Feb 20 2021, 16:22:27)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cdms2
>>>
(cdat-8.2.1_py3) jypeter@obelix5 - ...jypeter - 57 >

Is this related to CDAT/cdms#425 ?

What is installed with CDAT 8.2.1 ?

It seems that there is a lot of stuff that come with CDAT, in order to provide the powerful and complete front-end to a rich set of visual-data exploration and analysis capabilities well suited for data analysis problems that we expect. Stuff developed at PCMDI like cdms2 and friends, and other useful packages.

Is it possible to have a list of the main installed packages (without having to install and the do a conda list?).

Maybe this is listed in a conda recipe or whatever this is called and you can just provide a link to it?

Will mesalib affect only vcs?

I have just noticed that you also install mesalib ("mesalib=18.3.1"). Is this going to force only vcs to headless mode, or may other packages be affected? Maybe there should be a note about this on the install page

OK, this guarantees that the test in To Test Your CDAT Installation will work even if there is no X server and no openGL card

btw, I don't think you need the exit(); at the end of the test code

@jypeter Thanks for the feedback and questions. I'm planning on updating the documentation to hopefully clarify things you mentioned, to the best of my knowledge. I am going to attempt to answer everything you posted, when I have a chance to look into all of it. For now, here's what I can respond to:

  1. I'll note that the commands didn't work in tcsh and update the instructions to specify that bash is required (or I'll find an equivalent command for tcsh that works).
  2. I believe Python 3.8 works fine and in the installation documentation it was just showing the 3.7 as the example. When I installed CDAT using this: conda create -y -n cdat -c conda-forge -c cdat/label/v8.2.1 cdat
    I was still successfully able to run some CDAT tasks and didn't find issues, although I would need to do more testing. Again, I can update the Wiki to clarify that Python 3.8 works.
  3. I'm not sure about the MPI and no-MPI differences, but if I remember correctly, there's a libnetcdf issue with the libnetcdf mpi_mpich variant, and if you don't specify the variant as mpi or no_mpi, then the mpi_mpich variant may get installed and that would cause issues depending on the system you are using. For that reason, I think the variant is specifically specified in the commands, however I don't know the reasons for choosing one variant over the other and will have to look into that further before updating the wiki.
  4. The error you mentioned may be related to CDAT/cdms#425 as you stated, perhaps @jasonb5 could answer this better.
  5. This Makefile is a clue that shows what packages are included in the CDAT environment:

    cdat/Makefile

    Line 35 in 4244a8f

    pkgs ?= cdat_info cdtime cdms2 genutil cdutil dv3d vcs wk vcsaddons
    , from this file, it seems the main packages are: cdat_info, cdtime, cdms2, genutil, cdutil, dv3d, vcs, wk, vcsaddons. I can update the wiki to mention these and provide links, if that was your suggestion.
  6. VCS doesn't require mesalib in all circumstances if I remember correctly, however for certain cases we had issues when it wasn't included. Unfortunately I don't remember the specifics and would have to research and run some tests with the latest updates to find out if the issues have been resolved since then. I'm not sure how mesalib will behave with other packages and would need to find out more before I can answer this as well. The reason the mesalib version is tagged in the installation instructions is because there were incompatibility issues between Linux and Mac based on what version is installed. Therefore you'll notice the mesalib version changes depending on the OS you're targeting. I will need to look into it further before I can make updates to the wiki in this regard.

@jypeter I made a few updates to the install wiki page based on your feedback and did my best to answer the questions where I could. We can reopen an issue if there are further things to update, but for now I will close this issue. Thanks