Conversation
|
Why we don't use [1] https://github.com/simonsobs/soconda/blob/fix/openmpi-external/config/tiger3/build_env.sh |
|
If you load Intel OneAPI stuff I'm sure that brings in MKL to the environment. Definitely we would need to test that nothing breaks then. For example, if the MKL fftw wrappers are first in the linking order ahead of our conda prefix then that would dlopen all the intel threading backend stuff, which conflicts with our conda packages. Do we have any evidence that the current MPI implementation is "slow" for our communication patterns? |
|
Let me do a mlmapmaker test. |
|
My point is that:
I would advocate for leaving things as they are unless the Intel MPI implementation is somehow using a different driver library for the interconnect, and the the performance increase is significant. However, since Giannis is maintaining this system, I will let him make the final call. |
soconda.sh
Outdated
| echo "# condarc for soconda" > "${CONDA_PREFIX}/.condarc" | ||
| echo "channels:" >> "${CONDA_PREFIX}/.condarc" | ||
| echo " - file://${CONDA_PREFIX}/conda-bld" >> "${CONDA_PREFIX}/.condarc" | ||
| echo " - conda-forge/label/mpi-external" >> "${CONDA_PREFIX}/.condarc" |
There was a problem hiding this comment.
We have strict channel ordering and this is placed above the normal conda-forge channel. I believe that means if someone is running on a workstation / laptop, the dummy mpich / openmpi package will get installed rather than the normal conda one. We should test that.
There was a problem hiding this comment.
Only if they ask for openmpi=4.1.6=external_* if you ask for openmpi-4.1.6 it will be installed from conda-forge:
(/scratch/gpfs/SIMONSOBS/env/dev/soconda_v0.6.16) ip8725@tiger3:~$ conda search openmpi
Loading channels: done
# Name Version Build Channel
openmpi 3.1.0 h26a2512_2 conda-forge
openmpi 3.1.0 h26a2512_3 conda-forge
openmpi 3.1.2 h1c2f66e_1000 conda-forge
openmpi 3.1.2 h1c2f66e_1001 conda-forge
openmpi 3.1.2 h1c2f66e_1002 conda-forge
openmpi 3.1.2 h26a2512_0 conda-forge
openmpi 3.1.2 h26a2512_1 conda-forge
openmpi 3.1.2 h26a2512_2 conda-forge
openmpi 3.1.3 h1c2f66e_1000 conda-forge
openmpi 3.1.3 h1c2f66e_1001 conda-forge
openmpi 3.1.4 hc99cbb1_0 conda-forge
openmpi 4.0.1 hc99cbb1_0 conda-forge
openmpi 4.0.1 hc99cbb1_1 conda-forge
openmpi 4.0.1 hc99cbb1_2 conda-forge
openmpi 4.0.2 hb1b8bf9_1 pkgs/main
openmpi 4.0.2 hd49bf07_0 conda-forge
openmpi 4.0.2 hd49bf07_1 conda-forge
openmpi 4.0.2 hd49bf07_2 conda-forge
openmpi 4.0.2 hdf1f1ad_4 conda-forge
openmpi 4.0.3 hdf1f1ad_0 conda-forge
openmpi 4.0.3 hdf1f1ad_1 conda-forge
openmpi 4.0.4 hdf1f1ad_0 conda-forge
openmpi 4.0.5 h2c4babf_3 conda-forge
openmpi 4.0.5 h9b22176_3 conda-forge
openmpi 4.0.5 h9b22176_4 conda-forge
openmpi 4.0.5 ha4a8674_3 conda-forge
openmpi 4.0.5 ha4a8674_4 conda-forge
openmpi 4.0.5 hdf1f1ad_0 conda-forge
openmpi 4.0.5 hdf1f1ad_1 conda-forge
openmpi 4.0.5 hdf1f1ad_2 conda-forge
openmpi 4.0.5 hdf1f1ad_3 conda-forge
openmpi 4.1.0 h9b22176_0 conda-forge
openmpi 4.1.0 h9b22176_1 conda-forge
openmpi 4.1.0 hbfc84c5_2 conda-forge
openmpi 4.1.0 hbfc84c5_3 conda-forge
openmpi 4.1.0 hbfc84c5_4 conda-forge
openmpi 4.1.0 hbfc84c5_5 conda-forge
openmpi 4.1.1 hbfc84c5_0 conda-forge
openmpi 4.1.2 hbfc84c5_0 conda-forge
openmpi 4.1.3 h414127c_0 conda-forge
openmpi 4.1.3 h846660c_102 conda-forge
openmpi 4.1.3 h846660c_103 conda-forge
openmpi 4.1.3 h846660c_104 conda-forge
openmpi 4.1.3 h8b79891_4 conda-forge
openmpi 4.1.3 ha1ae619_105 conda-forge
openmpi 4.1.3 hbea3300_101 conda-forge
openmpi 4.1.4 ha1ae619_100 conda-forge
openmpi 4.1.4 ha1ae619_101 conda-forge
openmpi 4.1.4 ha1ae619_102 conda-forge
openmpi 4.1.5 h414af15_101 conda-forge
openmpi 4.1.5 h9a2ec32_100 conda-forge
openmpi 4.1.6 external_hf12fe31_2 conda-forge/label/mpi-external
openmpi 4.1.6 h336e698_100 conda-forge
only the external version are coming from there.
There was a problem hiding this comment.
On my workstation. This does break mpi. I don't have mpicc executable in the environment.
There was a problem hiding this comment.
Which mpi does it try to install? How can I replicate it? Do you have a trace I can look at? Or better can you do conda list openmpi if the env was created and see which channel it used?
There was a problem hiding this comment.
The default installs mpich.
List of packages in environment: "/home/bai-chiang/micromamba/envs/soconda-test_0.2.3.dev340"
Name Version Build Channel
──────────────────────────────────────────────────────────────
mpich 5.0.0 h7063c07_1 conda-forge/label/mpi-external
I don't have mpi installed on the OS.
name: soconda-test_0.2.3.dev340
channels:
- conda-forge
- conda-forge/label/mpi-external
- file:///home/bai-chiang/micromamba/envs/soconda-test_0.2.3.dev340/conda-bld
dependencies:
- _openmp_mutex=4.5=7_kmp_llvm
- _python_abi3_support=1.0=hd8ed1ab_2
- _x86_64-microarch-level=4=3_x86_64_v4
- aiobotocore=3.2.0=pyhcf101f3_0
- aiohappyeyeballs=2.6.1=pyhd8ed1ab_0
- aiohttp=3.13.3=py312h5d8c7f2_0
- aioitertools=0.13.0=pyhd8ed1ab_0
- aiosignal=1.4.0=pyhd8ed1ab_0
- alsa-lib=1.2.15.3=hb03c661_0
- annotated-doc=0.0.4=pyhcf101f3_0
- anyio=4.12.1=pyhcf101f3_0
- anytree=2.13.0=pyhd8ed1ab_0
- aom=3.9.1=hac33072_0
- archspec=0.2.5=pyhd8ed1ab_0
- argon2-cffi=25.1.0=pyhd8ed1ab_0
- argon2-cffi-bindings=25.1.0=py312h4c3975b_2
- arrow=1.4.0=pyhcf101f3_0
- asteval=1.0.8=pyhd8ed1ab_0
- astropy=7.2.0=pyhd8ed1ab_0
- astropy-base=7.2.0=py312h4f23490_0
- astropy-iers-data=0.2026.3.9.0.47.45=pyhd8ed1ab_0
- asttokens=3.0.1=pyhd8ed1ab_0
- async-lru=2.2.0=pyhcf101f3_0
- attr=2.5.2=h39aace5_0
- attrs=25.4.0=pyhcf101f3_1
- autoconf=2.72=pl5321hbb4ee43_1
- automake=1.17=pl5321ha770c72_0
- aws-c-auth=0.9.6=hb9c0fe4_1
- aws-c-cal=0.9.13=h2c9d079_1
- aws-c-common=0.12.6=hb03c661_0
- aws-c-compression=0.3.2=h8b1a151_0
- aws-c-event-stream=0.5.9=h841be55_2
- aws-c-http=0.10.10=hf621c6d_0
- aws-c-io=0.26.1=h3ca20c3_1
- aws-c-mqtt=0.14.0=ha25ca29_1
- aws-c-s3=0.11.5=h9b5df67_3
- aws-c-sdkutils=0.2.4=h8b1a151_4
- aws-checksums=0.2.10=h8b1a151_0
- aws-crt-cpp=0.37.3=hb153662_0
- aws-sdk-cpp=1.11.747=h133b1ee_1
- azure-core-cpp=1.16.2=h206d751_0
- azure-identity-cpp=1.13.3=hed0cdb0_1
- azure-storage-blobs-cpp=12.16.0=hdd73cc9_1
- azure-storage-common-cpp=12.12.0=ha7a2c86_1
- azure-storage-files-datalake-cpp=12.14.0=h52c5a47_1
- babel=2.18.0=pyhcf101f3_1
- backports.zstd=1.3.0=py312h90b7ffd_0
- beautifulsoup4=4.14.3=pyha770c72_0
- binutils_impl_linux-64=2.45.1=default_hfdba357_101
- binutils_linux-64=2.45.1=default_h4852527_101
- bleach=6.3.0=pyhcf101f3_1
- bleach-with-css=6.3.0=hbca2aae_1
- blinker=1.9.0=pyhff2d567_0
- blosc=1.21.6=he440d0b_1
- boltons=25.0.0=pyhd8ed1ab_0
- botocore=1.42.55=pyhd8ed1ab_0
- bottleneck=1.6.0=np2py312hfb8c2c5_3
- bqplot=0.12.37=pyhd8ed1ab_0
- brotli=1.2.0=hed03a55_1
- brotli-bin=1.2.0=hb03c661_1
- brotli-python=1.2.0=py312hdb49522_1
- brunsli=0.1=hd1e3526_2
- bzip2=1.0.8=hda65f42_9
- c-ares=1.34.6=hb03c661_0
- c-blosc2=2.23.1=hc31b594_0
- ca-certificates=2026.2.25=hbd8a1cb_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- cairo=1.18.4=h3394656_0
- camb=1.6.5=py312hbd90422_0
- ceres-solver=2.2.0=cpugplh3f48201_209
- certifi=2026.2.25=pyhd8ed1ab_0
- cffi=2.0.0=py312h460c074_1
- cfitsio=4.6.3=ha0b56bc_0
- chardet=5.2.0=pyhd8ed1ab_3
- charls=2.4.3=hecca717_0
- charset-normalizer=3.4.5=pyhd8ed1ab_0
- chealpix=3.31.0=h001b3b8_9
- click=8.3.1=pyh8f84b5b_1
- cloudpickle=3.1.2=pyhcf101f3_1
- cmake=4.2.3=hc85cc9f_1
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- conda=26.1.1=py312h7900ff3_0
- conda-build=26.1.0=pyh31ec981_2
- conda-index=0.7.0=pyhd8ed1ab_0
- conda-libmamba-solver=25.11.0=pyhd8ed1ab_1
- conda-package-handling=2.4.0=pyh7900ff3_2
- conda-package-streaming=0.12.0=pyhd8ed1ab_0
- contourpy=1.3.3=py312h0a2e395_4
- coverage=7.13.4=py312h8a5da7c_0
- coveralls=4.1.0=pyhcf101f3_0
- cpp-expected=1.3.1=h171cf75_0
- cpython=3.12.13=py312hd8ed1ab_0
- cycler=0.12.1=pyhcf101f3_2
- cyrus-sasl=2.1.28=hd9c7081_0
- cython=3.2.4=py312h68e6be4_0
- dash=4.0.0=pyhd8ed1ab_0
- dask-core=2026.1.2=pyhcf101f3_0
- dav1d=1.2.1=hd590300_0
- dbus=1.16.2=h24cb091_1
- debugpy=1.8.20=py312h8285ef7_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- dill=0.4.1=pyhcf101f3_0
- distro=1.9.0=pyhd8ed1ab_1
- double-conversion=3.4.0=hecca717_0
- ducc0=0.40.0=py312h1289d80_0
- eigen=3.4.0=h54a6638_2
- ephem=4.2.1=py312h4c3975b_0
- evalidate=2.0.5=pyhe01879c_0
- exceptiongroup=1.3.1=pyhd8ed1ab_0
- executing=2.2.1=pyhd8ed1ab_0
- fftw=3.3.10=nompi_h3b011a4_112
- filelock=3.25.1=pyhd8ed1ab_0
- flacarray=0.3.4=py312h9fe008e_0
- flask=3.1.3=pyhcf101f3_1
- fmt=12.1.0=hff5e90c_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.17.1=h27c8c51_0
- fonts-conda-ecosystem=1=0
- fonts-conda-forge=1=hc364b38_1
- fonttools=4.62.0=py312h8a5da7c_0
- fqdn=1.5.1=pyhd8ed1ab_1
- freetype=2.14.2=ha770c72_0
- frozendict=2.4.7=py312h4c3975b_0
- frozenlist=1.7.0=py312h447239a_0
- fsspec=2026.2.0=pyhd8ed1ab_0
- future=1.0.0=pyhd8ed1ab_2
- gast=0.4.0=pyh9f0ad1d_0
- gcc_impl_linux-64=14.3.0=hbdf3cc3_18
- gcc_linux-64=14.3.0=h298d278_21
- gflags=2.2.2=h5888daf_1005
- gfortran_impl_linux-64=14.3.0=h1a219da_18
- gfortran_linux-64=14.3.0=hfa02b96_21
- giflib=5.2.2=hd590300_0
- glog=0.7.1=hbabe93e_0
- gmp=6.3.0=hac33072_2
- gmpy2=2.3.0=py312hcaba1f9_1
- graphite2=1.3.14=hecca717_2
- greenlet=3.3.2=py312h8285ef7_0
- gsl=2.7=he838d99_0
- h11=0.16.0=pyhcf101f3_1
- h2=4.3.0=pyhcf101f3_0
- h5py=3.15.1=nompi_py312ha4f8f14_101
- harfbuzz=12.2.0=h15599e2_0
- hdf5=1.14.6=nompi_h19486de_106
- healpy=1.19.0=py312hb99e9eb_0
- hpack=4.1.0=pyhd8ed1ab_0
- html5lib=1.1=pyhd8ed1ab_2
- httpcore=1.0.9=pyh29332c3_0
- httpx=0.28.1=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he02047a_0
- idna=3.11=pyhd8ed1ab_0
- imagecodecs=2026.3.6=py312h40df4bb_1
- imageio=2.37.0=pyhfb79c49_0
- importlib-metadata=8.7.0=pyhe01879c_1
- iniconfig=2.3.0=pyhd8ed1ab_0
- ipydatagrid=1.4.0=pyhcf101f3_2
- ipykernel=7.2.0=pyha191276_1
- ipython=9.11.0=pyhecfbec7_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- ipywidgets=8.1.8=pyhd8ed1ab_0
- isoduration=20.11.0=pyhd8ed1ab_1
- itsdangerous=2.2.0=pyhd8ed1ab_1
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhcf101f3_1
- jmespath=1.1.0=pyhcf101f3_1
- jplephem=2.24=pyha4b2019_1
- json5=0.13.0=pyhd8ed1ab_0
- jsonpatch=1.33=pyhd8ed1ab_1
- jsonpointer=3.0.0=pyhcf101f3_3
- jsonschema=4.26.0=pyhcf101f3_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jsonschema-with-format-nongpl=4.26.0=hcf101f3_0
- jupyter-lsp=2.3.0=pyhcf101f3_0
- jupyter_client=8.8.0=pyhcf101f3_0
- jupyter_core=5.9.1=pyhc90fa1f_0
- jupyter_events=0.12.0=pyhe01879c_0
- jupyter_server=2.17.0=pyhcf101f3_0
- jupyter_server_terminals=0.5.4=pyhcf101f3_0
- jupyterlab=4.5.6=pyhd8ed1ab_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- jupyterlab_server=2.28.0=pyhcf101f3_0
- jupyterlab_widgets=3.0.16=pyhcf101f3_1
- jxrlib=1.1=hd590300_3
- kernel-headers_linux-64=6.12.0=he073ed8_6
- keyutils=1.6.3=hb9d3cd8_0
- kiwisolver=1.5.0=py312h0a2e395_0
- krb5=1.21.3=h659f571_0
- lark=1.3.1=pyhd8ed1ab_0
- lazy-loader=0.5=pyhd8ed1ab_0
- lcms2=2.18=h0c24ade_0
- ld_impl_linux-64=2.45.1=default_hbd61a6d_101
- lerc=4.1.0=hdb68285_0
- libaatm=1.1.0=h5888daf_0
- libabseil=20260107.1=cxx17_h7b12aa8_0
- libactpol=c0c1647ad62b418f34fe38eb73168d4f2e13ff6f=h9bf148f_0
- libactpol_deps=db0aee380dad503ba8fdf058d4d8075387100758=h6578b86_0
- libaec=1.1.5=h088129d_0
- libamd=3.3.3=haaf9dc3_7100102
- libarchive=3.8.6=gpl_hc2c16d8_100
- libarrow=23.0.1=h711ef25_3_cpu
- libarrow-acero=23.0.1=h635bf11_3_cpu
- libarrow-compute=23.0.1=h53684a4_3_cpu
- libarrow-dataset=23.0.1=h635bf11_3_cpu
- libarrow-substrait=23.0.1=hb4dd7c2_3_cpu
- libavif16=1.4.0=hcfa2d63_0
- libblas=3.11.0=5_h4a7cf45_openblas
- libboost=1.85.0=h0ccab89_4
- libboost-python=1.85.0=py312hf74af30_4
- libbrotlicommon=1.2.0=hb03c661_1
- libbrotlidec=1.2.0=hb03c661_1
- libbrotlienc=1.2.0=hb03c661_1
- libbtf=2.3.2=h32481e8_7100102
- libcamd=3.3.3=h32481e8_7100102
- libcap=2.77=h3ff7636_0
- libcblas=3.11.0=5_h0358290_openblas
- libccolamd=3.3.4=h32481e8_7100102
- libcholmod=5.3.1=h59ddab4_7100102
- libclang-cpp21.1=21.1.8=default_h99862b1_3
- libclang13=22.1.0=default_h746c552_0
- libcolamd=3.3.4=h32481e8_7100102
- libcrc32c=1.1.2=h9c3ff4c_0
- libcups=2.3.3=hb8b1518_5
- libcurl=8.18.0=h4e3cde8_0
- libcxsparse=4.4.1=h32481e8_7100102
- libdeflate=1.25=h17f619e_0
- libdrm=2.4.125=hb03c661_1
- libedit=3.1.20250104=pl5321h7949ede_0
- libegl=1.7.0=ha4b6fd6_2
- libev=4.33=hd590300_2
- libevent=2.1.12=hf998b51_1
- libexpat=2.7.4=hecca717_0
- libffi=3.5.2=h3435931_0
- libflac=1.5.0=he200343_1
- libfreetype=2.14.2=ha770c72_0
- libfreetype6=2.14.2=h73754d4_0
- libgcc=15.2.0=he0feb66_18
- libgcc-devel_linux-64=14.3.0=hf649bbc_118
- libgcc-ng=15.2.0=h69a702a_18
- libgfortran=15.2.0=h69a702a_18
- libgfortran-ng=15.2.0=h69a702a_18
- libgfortran5=15.2.0=h68bc16d_18
- libgl=1.7.0=ha4b6fd6_2
- libglib=2.86.4=h6548e54_1
- libglvnd=1.7.0=ha4b6fd6_2
- libglx=1.7.0=ha4b6fd6_2
- libgomp=15.2.0=he0feb66_18
- libgoogle-cloud=2.39.0=h9d11ab5_1
- libgoogle-cloud-storage=2.39.0=hdbdcf42_1
- libgrpc=1.78.0=h1d1128b_1
- libhwy=1.3.0=h4c17acf_1
- libiconv=1.18=h3b78370_2
- libjpeg-turbo=3.1.2=hb03c661_0
- libjxl=0.11.2=ha09017c_0
- libklu=2.3.5=hf24d653_7100102
- liblapack=3.11.0=5_h47877c9_openblas
- libldl=3.3.2=h32481e8_7100102
- liblief=0.17.1=hecca717_0
- libllvm21=21.1.8=hf7376ad_0
- libllvm22=22.1.0=hf7376ad_0
- libltdl=2.4.3a=h5888daf_0
- liblzma=5.8.2=hb03c661_0
- liblzma-devel=5.8.2=hb03c661_0
- libmamba=2.5.0=hd28c85e_0
- libmamba-spdlog=2.5.0=h12fcf84_0
- libmambapy=2.5.0=py312h1ca65c7_0
- libnghttp2=1.67.0=had1ee68_0
- libnl=3.11.0=hb9d3cd8_0
- libnsl=2.0.1=hb9d3cd8_1
- libntlm=1.8=hb9d3cd8_0
- libogg=1.3.5=hd0c01bc_1
- libopenblas=0.3.30=openmp_hd680484_4
- libopengl=1.7.0=ha4b6fd6_2
- libopentelemetry-cpp=1.21.0=h9692893_2
- libopentelemetry-cpp-headers=1.21.0=ha770c72_2
- libparquet=23.0.1=h7376487_3_cpu
- libparu=1.0.0=h17147ab_7100102
- libpciaccess=0.18=hb9d3cd8_0
- libpng=1.6.55=h421ea60_0
- libpq=18.1=h5c52fec_2
- libprotobuf=6.33.5=h2b00c02_0
- librbio=4.3.4=h32481e8_7100102
- libre2-11=2025.11.05=h0dc7533_1
- libsanitizer=14.3.0=h8f1669f_18
- libsodium=1.0.20=h4ab18f5_0
- libsolv=0.7.35=h9463b59_0
- libspex=3.2.3=had10066_7100102
- libspqr=4.3.4=h852d39f_7100102
- libsqlite=3.52.0=h0c1763c_0
- libssh2=1.11.1=hcf80075_0
- libstdcxx=15.2.0=h934c35e_18
- libstdcxx-devel_linux-64=14.3.0=h9f08a49_118
- libstdcxx-ng=15.2.0=hdf11a46_18
- libsuitesparseconfig=7.10.1=h92d6892_7100102
- libsystemd0=259.3=h6569c3e_0
- libthrift=0.22.0=h454ac66_1
- libtiff=4.7.1=h9d88235_1
- libtool=2.5.4=h5888daf_0
- libudev1=259.3=h6569c3e_0
- libumfpack=6.3.5=heb53515_7100102
- libutf8proc=2.11.3=hfe17d71_0
- libuuid=2.41.3=h5347b49_0
- libuv=1.51.0=hb03c661_1
- libvulkan-loader=1.4.341.0=h5279c79_0
- libwebp-base=1.6.0=hd42ef1d_0
- libxcb=1.17.0=h8a09558_0
- libxcrypt=4.4.36=hd590300_1
- libxkbcommon=1.13.1=hca5e8e5_0
- libxml2=2.15.1=h26afc86_0
- libxml2-16=2.15.1=ha9997c6_0
- libxslt=1.1.43=h711ed8c_1
- libzlib=1.3.1=hb9d3cd8_2
- libzopfli=1.0.3=h9c3ff4c_0
- llvm-openmp=22.1.0=h4922eb0_0
- llvmlite=0.46.0=py312h7424e68_0
- lmfit=1.3.4=pyhd8ed1ab_0
- locket=1.0.0=pyhd8ed1ab_0
- lz4-c=1.10.0=h5888daf_1
- lzo=2.10=h280c20c_1002
- m4=1.4.21=hb03c661_0
- markdown-it-py=4.0.0=pyhd8ed1ab_0
- markupsafe=3.0.3=py312h8a5da7c_1
- matplotlib=3.10.8=py312h7900ff3_0
- matplotlib-base=3.10.8=py312he3d6523_0
- matplotlib-inline=0.2.1=pyhd8ed1ab_0
- mbedtls=3.6.3.1=h5888daf_0
- mdurl=0.1.2=pyhd8ed1ab_1
- menuinst=2.4.2=py312h7900ff3_0
- metis=5.1.0=hd0bcaf9_1007
- mistune=3.2.0=pyhcf101f3_0
- moby2=0ae27c81ea6b326e165c553786531086bb4dd13d=py312h7255cad_0
- mpc=1.3.1=h24ddda3_1
- mpfr=4.2.1=h90cbb55_3
- mpi=1.0.1=mpich
- mpi4py=4.1.1=py312h613620b_103
- mpich=5.0.0=h7063c07_1
- mpmath=1.4.0=pyhd8ed1ab_0
- msgpack-python=1.1.2=py312hd9148b4_1
- multidict=6.7.1=py312h8a5da7c_0
- munkres=1.1.4=pyhd8ed1ab_1
- namaster=2.7=py312he5275ef_0
- narwhals=2.18.0=pyhcf101f3_0
- nbclient=0.10.4=pyhd8ed1ab_0
- nbconvert-core=7.17.0=pyhcf101f3_0
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h2d0b736_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.6.1=pyhcf101f3_0
- nlohmann_json=3.12.0=h54a6638_1
- nlohmann_json-abi=3.12.0=h0f90c79_1
- notebook-shim=0.2.4=pyhd8ed1ab_1
- numba=0.64.0=py312hd1dde6f_0
- numdifftools=0.9.42=pyhecae5ae_0
- numpy=2.4.2=py312h33ff503_1
- openjpeg=2.5.4=h55fea9a_0
- openjph=0.26.3=h8d634f6_0
- openldap=2.6.10=he970967_0
- openssl=3.6.1=h35e630c_1
- orc=2.2.2=hbb90d81_1
- orjson=3.11.7=py312h94568fe_0
- overrides=7.7.0=pyhd8ed1ab_1
- packaging=26.0=pyhcf101f3_0
- pandas=3.0.1=py312h8ecdadd_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.6=pyhcf101f3_0
- partd=1.4.2=pyhd8ed1ab_0
- patch=2.8=hb03c661_1002
- patchelf=0.17.2=h58526e2_0
- pcre2=10.47=haa7fec5_0
- perl=5.32.1=7_hd590300_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- pgplot=5.2.2=hbeaba86_1009
- pillow=12.1.1=py312h50c33e8_0
- pip=26.0.1=pyh8b19718_0
- pixell=0.31.8=py312h6eeef32_2
- pixman=0.46.4=h54a6638_1
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- platformdirs=4.9.4=pyhcf101f3_0
- plotly=6.6.0=pyhd8ed1ab_0
- plotly-resampler=0.11.0=pyhcf101f3_1
- pluggy=1.6.0=pyhf9edf01_1
- prometheus-cpp=1.3.0=ha5d0236_0
- prometheus_client=0.24.1=pyhd8ed1ab_0
- prompt-toolkit=3.0.52=pyha770c72_0
- propcache=0.3.1=py312h178313f_0
- pshmem=1.3.3=pyhd8ed1ab_0
- psutil=7.2.2=py312h5253ce2_0
- psycopg2=2.9.10=py312hf59bad3_4
- psycopg2-binary=2.9.10=pyhd8ed1ab_1
- pthread-stubs=0.4=hb9d3cd8_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
- py-lief=0.17.1=py312h1289d80_0
- py2vega=0.6.1=pyhd8ed1ab_0
- pyaml=26.2.1=pyhcf101f3_1
- pyarrow=23.0.1=py312h7900ff3_0
- pyarrow-core=23.0.1=py312h2054cf2_0_cpu
- pybind11-abi=11=hc364b38_1
- pycosat=0.6.6=py312h4c3975b_3
- pycparser=2.22=pyh29332c3_1
- pyerfa=2.0.1.5=py310h32771cd_2
- pyfftw=0.15.1=py312h4f23490_1
- pygments=2.19.2=pyhd8ed1ab_0
- pyparsing=3.3.2=pyhcf101f3_0
- pyside6=6.10.1=py312h9da60e5_0
- pysm3=3.4.2=pyhc455866_0
- pysocks=1.7.1=pyha55dd90_7
- pysqlite3=0.5.4=py313hb2a9d6d_0
- pytest=9.0.2=pyhcf101f3_0
- pytest-cov=7.0.0=pyhcf101f3_1
- python=3.12.13=hd63d673_0_cpython
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- python-gil=3.12.13=hd8ed1ab_0
- python-json-logger=2.0.7=pyhd8ed1ab_0
- python-libarchive-c=5.3=pyhe01879c_1
- python-tzdata=2025.3=pyhd8ed1ab_0
- python_abi=3.12=8_cp312
- pytz=2025.2=pyhd8ed1ab_0
- pyyaml=6.0.3=py312h8a5da7c_1
- pyzmq=27.1.0=py312hda471dd_2
- qhull=2020.2=h434a139_5
- qpoint=1.13.0=py312h7255cad_0
- qt6-main=6.10.1=h6f76662_3
- quaternion=2024.0.13=py312h4f23490_0
- rav1e=0.8.1=h1fbca29_0
- rdma-core=61.0=h192683f_0
- re2=2025.11.05=h5301d42_1
- readline=8.3=h853b02a_0
- referencing=0.37.0=pyhcf101f3_0
- reproc=14.2.5.post0=hb9d3cd8_0
- reproc-cpp=14.2.5.post0=h5888daf_0
- requests=2.32.5=pyhcf101f3_1
- retrying=1.4.2=pyhe01879c_0
- rfc3339-validator=0.1.4=pyhd8ed1ab_1
- rfc3986-validator=0.1.1=pyh9f0ad1d_0
- rfc3987-syntax=1.1.0=pyhe01879c_1
- rhash=1.4.6=hb9d3cd8_1
- rich=14.3.3=pyhcf101f3_0
- ripgrep=15.1.0=hdab8a38_0
- rpds-py=0.30.0=py312h868fb18_0
- ruamel.yaml=0.18.17=py312h5253ce2_2
- ruamel.yaml.clib=0.2.15=py312h5253ce2_1
- s2n=1.7.0=ha63dd3a_1
- s3fs=2026.2.0=pyhd8ed1ab_1
- scikit-image=0.26.0=np2py312h4ae17e4_0
- scipy=1.17.1=py312h54fa4ab_0
- send2trash=2.1.0=pyha191276_1
- setuptools=82.0.1=pyh332efcf_0
- setuptools-scm=9.2.2=pyhd8ed1ab_0
- sgp4=2.25=py312hd9148b4_2
- shellingham=1.5.4=pyhd8ed1ab_2
- simdjson=4.2.4=hb700be7_0
- six=1.17.0=pyhe01879c_1
- skyfield=1.54=pyhd8ed1ab_0
- snappy=1.2.2=h03e3b7b_1
- sniffio=1.3.1=pyhd8ed1ab_2
- so3g=0.2.5=py312h9fe008e_0
- sortedcontainers=2.4.0=pyhd8ed1ab_1
- soupsieve=2.8.3=pyhd8ed1ab_0
- spdlog=1.17.0=hab81395_1
- sqlalchemy=2.0.48=py312h5253ce2_0
- sqlite=3.52.0=hbc0de68_0
- stack_data=0.6.3=pyhd8ed1ab_1
- suitesparse=7.10.1=ha0f6916_7100102
- svt-av1=4.0.1=hecca717_0
- sympy=1.14.0=pyh2585a3b_106
- sysroot_linux-64=2.39=hc4b9eeb_6
- terminado=0.18.1=pyhc90fa1f_1
- tifffile=2026.3.3=pyhd8ed1ab_0
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_h366c992_103
- toast=3.0.0a42=py312h9fe008e_0
- toml=0.10.2=pyhcf101f3_3
- tomli=2.4.0=pyhcf101f3_0
- tomlkit=0.14.0=pyha770c72_0
- toolz=1.1.0=pyhd8ed1ab_1
- tornado=6.5.4=py312h961da02_0
- tqdm=4.67.3=pyh8f84b5b_0
- traitlets=5.14.3=pyhd8ed1ab_1
- traittypes=0.2.3=pyh332efcf_0
- truststore=0.10.4=pyhcf101f3_0
- tsdownsample=0.1.4.1=py312h12e396e_1
- typer=0.24.0=pyhcf101f3_0
- typing-extensions=4.15.0=h396c80c_0
- typing_extensions=4.15.0=pyhcf101f3_0
- typing_utils=0.1.0=pyhd8ed1ab_1
- tzdata=2025c=hc9c84f9_1
- ucx=1.20.0=hf72d326_1
- uncertainties=3.2.4=pyhd8ed1ab_0
- uncompresspy=0.4.1=pyhd8ed1ab_0
- unicodedata2=17.0.1=py312h4c3975b_0
- uri-template=1.3.0=pyhd8ed1ab_1
- urllib3=2.6.3=pyhd8ed1ab_0
- versioneer=0.29=pyhd8ed1ab_0
- wayland=1.24.0=hd6090a7_1
- wcslib=8.2.2=h58fca5b_7
- wcwidth=0.6.0=pyhd8ed1ab_0
- webcolors=25.10.0=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- websocket-client=1.9.0=pyhd8ed1ab_0
- werkzeug=3.1.6=pyhcf101f3_0
- wheel=0.46.3=pyhd8ed1ab_0
- widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=2.1.2=py312h4c3975b_0
- wurlitzer=3.1.1=pyhd8ed1ab_1
- xcb-util=0.4.1=h4f16b4b_2
- xcb-util-cursor=0.1.6=hb03c661_0
- xcb-util-image=0.4.0=hb711507_2
- xcb-util-keysyms=0.4.1=hb711507_0
- xcb-util-renderutil=0.3.10=hb711507_0
- xcb-util-wm=0.4.2=hb711507_0
- xkeyboard-config=2.47=hb03c661_0
- xorg-libice=1.1.2=hb9d3cd8_0
- xorg-libsm=1.2.6=he73a12e_0
- xorg-libx11=1.8.13=he1eb515_0
- xorg-libxau=1.0.12=hb03c661_1
- xorg-libxcomposite=0.4.7=hb03c661_0
- xorg-libxcursor=1.2.3=hb9d3cd8_0
- xorg-libxdamage=1.1.6=hb9d3cd8_0
- xorg-libxdmcp=1.1.5=hb03c661_1
- xorg-libxext=1.3.7=hb03c661_0
- xorg-libxfixes=6.0.2=hb03c661_0
- xorg-libxi=1.8.2=hb9d3cd8_0
- xorg-libxrandr=1.5.5=hb03c661_0
- xorg-libxrender=0.9.12=hb9d3cd8_0
- xorg-libxtst=1.2.5=hb9d3cd8_3
- xorg-libxxf86vm=1.1.7=hb03c661_0
- xz=5.8.2=ha02ee65_0
- xz-gpl-tools=5.8.2=ha02ee65_0
- xz-tools=5.8.2=hb03c661_0
- yaml=0.2.5=h280c20c_3
- yaml-cpp=0.8.0=h3f2d84a_0
- yarl=1.23.0=py312h8a5da7c_0
- zeromq=4.3.5=h387f397_9
- zfp=1.0.1=h909a3a2_5
- zipp=3.23.0=pyhcf101f3_1
- zlib=1.3.1=hb9d3cd8_2
- zlib-ng=2.3.3=hceb46e0_1
- zstandard=0.25.0=py312h5253ce2_1
- zstd=1.5.7=hb78ec9c_6
- zziplib=0.13.69=he45264a_2
- pip:
- pipgrip==0.13.0
- quaternionarray==0.6.2
- sotodlib==0.6.16
prefix: "/home/bai-chiang/micromamba/envs/soconda-test_0.2.3.dev340"
There was a problem hiding this comment.
Can you just move this external channel below the conda-forge one? That way doing conda install openmpi will by default grab the first one it finds (from the main channel). Installing specific dummy versions like openmpi=4.1.6=external_* (which are not in the main channel) would then pull it from the external channel. Does that make sense?
There was a problem hiding this comment.
I thought I branched off of main. I will fix that.
Sorry I didn't make it clear. The so3g hash on the main branch is outdated.
There was a problem hiding this comment.
move this external channel below the conda-forge one
This works on my machine
diff --git a/soconda.sh b/soconda.sh
index 784926d..029321f 100755
--- a/soconda.sh
+++ b/soconda.sh
@@ -240,8 +240,8 @@ if [ -z "${env_check}" ]; then
echo "# condarc for soconda" > "${CONDA_PREFIX}/.condarc"
echo "channels:" >> "${CONDA_PREFIX}/.condarc"
echo " - file://${CONDA_PREFIX}/conda-bld" >> "${CONDA_PREFIX}/.condarc"
- echo " - conda-forge/label/mpi-external" >> "${CONDA_PREFIX}/.condarc"
echo " - conda-forge" >> "${CONDA_PREFIX}/.condarc"
+ echo " - conda-forge/label/mpi-external" >> "${CONDA_PREFIX}/.condarc"
echo " - nodefaults" >> "${CONDA_PREFIX}/.condarc"
echo "changeps1: true" >> "${CONDA_PREFIX}/.condarc"
echo "env_prompt: '({name}) '" >> "${CONDA_PREFIX}/.condarc"There was a problem hiding this comment.
Great, sounds like that is a solution!
There was a problem hiding this comment.
But it does not work on Tiger3.
(/scratch/gpfs/SIMONSOBS/env/dev/soconda_dev) ip8725@tiger3:/scratch/gpfs/SIMONSOBS/admin/soconda$ mkdir -p "${CONDA_PREFIX}/conda-bld"
mkdir -p "${CONDA_PREFIX}/conda-bld/temp_build"
conda index "${CONDA_PREFIX}/conda-bld"
echo "# condarc for soconda" > "${CONDA_PREFIX}/.condarc"
echo "channels:" >> "${CONDA_PREFIX}/.condarc"
echo " - file://${CONDA_PREFIX}/conda-bld" >> "${CONDA_PREFIX}/.condarc"
echo " - conda-forge" >> "${CONDA_PREFIX}/.condarc"
echo " - conda-forge/label/mpi-external" >> "${CONDA_PREFIX}/.condarc"
echo " - nodefaults" >> "${CONDA_PREFIX}/.condarc"
echo "changeps1: true" >> "${CONDA_PREFIX}/.condarc"
echo "env_prompt: '({name}) '" >> "${CONDA_PREFIX}/.condarc"
echo "solver: libmamba" >> "${CONDA_PREFIX}/.condarc"
echo "channel_priority: strict" >> "${CONDA_PREFIX}/.condarc"
# Reactivate to pick up changes
conda deactivate
conda activate "${fullenv}"
2026-03-12T09:41:26 Subdir: noarch Gathering repodata
2026-03-12T09:41:26 noarch Writing pre-patch repodata
2026-03-12T09:41:26 noarch Applying patch instructions
2026-03-12T09:41:26 noarch Writing patched repodata
2026-03-12T09:41:26 noarch Building current_repodata subset
2026-03-12T09:41:26 noarch Writing current_repodata subset
2026-03-12T09:41:26 noarch Writing index HTML
(/scratch/gpfs/SIMONSOBS/env/dev/soconda_dev) ip8725@tiger3:/scratch/gpfs/SIMONSOBS/admin/soconda$ conda install op
enmpi=4.1.6=external_*
2 channel Terms of Service accepted
Channels:
- file:///scratch/gpfs/SIMONSOBS/env/dev/soconda_dev/conda-bld
- conda-forge
- conda-forge/label/mpi-external
- nodefaults
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed
LibMambaUnsatisfiableError: Encountered problems while solving:
- package openmpi-4.1.6-external_hf12fe31_2 is excluded by strict repo priority
(/scratch/gpfs/SIMONSOBS/env/dev/soconda_dev) ip8725@tiger3:/scratch/gpfs/SIMONSOBS/admin/soconda$
The strict repo priority is necessary to make sure we pull radical.pilot from the local build and not conda-forge. So moving it after conda-forge is not the solution. I will try to see if I can do something different.
|
|
|
It seems diff --git a/config/tiger3/packages_conda.txt b/config/tiger3/packages_conda.txt
index 04d58a8..e05b7cc 100644
--- a/config/tiger3/packages_conda.txt
+++ b/config/tiger3/packages_conda.txt
@@ -1,6 +1,6 @@
# Adjust the default python version
python=3.11
-openmpi=4.1.6=external_*
+conda-forge/label/mpi-external::openmpi=4.1.6=external_*
#
# These are low-level tools needed to build local packages
# and parse pip dependencies with pipgrip.
diff --git a/soconda.sh b/soconda.sh
index 784926d..5916da5 100755
--- a/soconda.sh
+++ b/soconda.sh
@@ -240,7 +240,6 @@ if [ -z "${env_check}" ]; then
echo "# condarc for soconda" > "${CONDA_PREFIX}/.condarc"
echo "channels:" >> "${CONDA_PREFIX}/.condarc"
echo " - file://${CONDA_PREFIX}/conda-bld" >> "${CONDA_PREFIX}/.condarc"
- echo " - conda-forge/label/mpi-external" >> "${CONDA_PREFIX}/.condarc"
echo " - conda-forge" >> "${CONDA_PREFIX}/.condarc"
echo " - nodefaults" >> "${CONDA_PREFIX}/.condarc"
echo "changeps1: true" >> "${CONDA_PREFIX}/.condarc"Update: No this does not work. (╯_╰) |
|
This works! diff --git a/soconda.sh b/soconda.sh
index 98714b7..eac2d13 100755
--- a/soconda.sh
+++ b/soconda.sh
@@ -242,7 +242,9 @@ if [ -z "${env_check}" ]; then
echo "# condarc for soconda" > "${CONDA_PREFIX}/.condarc"
echo "channels:" >> "${CONDA_PREFIX}/.condarc"
echo " - file://${CONDA_PREFIX}/conda-bld" >> "${CONDA_PREFIX}/.condarc"
+ if grep -q 'mpi.*=external' "${confdir}/packages_conda.txt" ; then
echo " - conda-forge/label/mpi-external" >> "${CONDA_PREFIX}/.condarc"
+ fi
echo " - conda-forge" >> "${CONDA_PREFIX}/.condarc"
echo " - nodefaults" >> "${CONDA_PREFIX}/.condarc"
echo "changeps1: true" >> "${CONDA_PREFIX}/.condarc" |
|
Done |
openmmpi-externalthat Tiger is using has move fromconda-forgeto the label on the subject.This PR introduces that channel to the conda rc.