Coder Social home page Coder Social logo

Comments (13)

connorjward avatar connorjward commented on August 16, 2024

There appear to be two links that they search to find the URL. The former (https://download.open-mpi.org/release/hwloc/v2.10/hwloc-2.10.0.tar.gz) appears to work. It's possible that that server or your network experienced a temporary issue. Can you please try again?

from firedrake.

jonathonmckay avatar jonathonmckay commented on August 16, 2024

Unfortunately, I have been trying this off an on for the last month or so, hoping that I just caught someone with a missing file. It's never worked.

I have also noticed that it is trying two places. The download.open-mpi.org URL works when I try it manually,but the script seems to be hung up on the web.cels.anl.gov URL not working.

Also the help message from the log says Unable to download package HWLOC from: https://download.open-mpi.org/release/hwloc/v2.10/hwloc-2.10.0.tar.gz, yet this is the URL that works, and was the one tried first (according to the order of the log). While the web.cels.anl.gov URL is the one the doesn't work, its not mentioned in the help message (even though the help message happens immediately after trying this URL (again, according to the order of the log)). The order of the messages is kinda odd.

from firedrake.

connorjward avatar connorjward commented on August 16, 2024

Strange. Do you have a non-standard network setup? Or some sort of firewall?

This is really an issue with PETSc instead of Firedrake so I would recommend asking for help there. If you want to reproduce the issue without using Firedrake you should be able to run ./configure --download-hwloc from inside the firedrake/src/petsc directory.

Lastly, we updated our fork of PETSc last Friday. I think that is unlikely to have fixed this issue, but you could try a fresh install and see if things work.

from firedrake.

jonathonmckay avatar jonathonmckay commented on August 16, 2024

We do in-fact have non-standard network with a very annoying firewall. But this is a know problem with this sort of automatic install script, so I tried downloading the failing hwloc file with a computer on the guest network, and my personal phone. All got the same problem.

Yeah, I know this problem is ultimately in the script provided by PETSc, but I didn't know how much control your script was exerting over it. I will check their forums. I'll post here if I get any meaningful information there for completeness.

While I've been trying this for over a month, I downloaded a new "firedrake-install" script on 2024-06-21.

from firedrake.

connorjward avatar connorjward commented on August 16, 2024

We do in-fact have non-standard network with a very annoying firewall. But this is a know problem with this sort of automatic install script, so I tried downloading the failing hwloc file with a computer on the guest network, and my personal phone. All got the same problem.

Yeah, I know this problem is ultimately in the script provided by PETSc, but I didn't know how much control your script was exerting over it. I will check their forums. I'll post here if I get any meaningful information there for completeness.

While I've been trying this for over a month, I downloaded a new "firedrake-install" script on 2024-06-21.

It is also possible to install PETSc separately from the rest of the installation script. If you run firedrake-install --show-petsc-configure-options you can see what flags we pass to PETSc. It is quite annoying and manual but you could then clone your own PETSc, download all of the packages manually and then run something like

$ ./configure --hwloc-dir=/path/to/downloaded/tar/file ...etc

I don't really recommend this though. Figuring out how to satisfy the firewall is definitely a better option.

Alternatively we do have Docker and Singularity containers that might be suitable.

from firedrake.

balay avatar balay commented on August 16, 2024

Actually the option here is:

$ ./configure --download-hwloc=/path/to/downloaded/tar/file

Alternative:

  --with-packages-download-dir=<dir>
       Skip network download of package tarballs and locate them in specified dir. If not found in dir, print package URL - so it can be obtained manually.

from firedrake.

jonathonmckay avatar jonathonmckay commented on August 16, 2024

With the extensive help of @balay (99% sure it's the same person) over on the PETSc Discord, I was able work out the problem was our annoying corporate firewall.
The solution was to set export SSL_CERT_FILE=/path/to/file.crt to a known certificate file I have for our annoying corporate firewall.
This solved the HWLOC problem.

(It's now having the same problem with the PETSc script downloading HDF5, but again its likely a problem with our annoying corporate firewall, which I will have to muddle through now that I know that's what the problem is.)

For reference, here's the link to the Discord thread:
https://discord.com/channels/1119324534303109172/1254799088495362080

Thank you all for your help.

from firedrake.

connorjward avatar connorjward commented on August 16, 2024

Glad to hear you're making progress! Thanks for sharing these tips.

from firedrake.

balay avatar balay commented on August 16, 2024

BTW: something firedrake installer could do is accept additional PETSc configure options - similar to the pip installer - via an env variable - PETSC_CONFIGURE_OPTIONS

$ git grep PETSC_CONFIGURE_OPTIONS
setup.py:  Provide any ``PETSc`` ./configure options using the environmental variable ``PETSC_CONFIGURE_OPTIONS``.
setup.py:    options = os.environ.get('PETSC_CONFIGURE_OPTIONS', '')

If they are append to the end of firedrake generated options - they can over-ride the defaults set here.

from firedrake.

connorjward avatar connorjward commented on August 16, 2024

BTW: something firedrake installer could do is accept additional PETSc configure options - similar to the pip installer - via an env variable - PETSC_CONFIGURE_OPTIONS

$ git grep PETSC_CONFIGURE_OPTIONS
setup.py:  Provide any ``PETSc`` ./configure options using the environmental variable ``PETSC_CONFIGURE_OPTIONS``.
setup.py:    options = os.environ.get('PETSC_CONFIGURE_OPTIONS', '')

If they are append to the end of firedrake generated options - they can over-ride the defaults set here.

Firedrake already supports PETSC_CONFIGURE_OPTIONS like this.

from firedrake.

balay avatar balay commented on August 16, 2024

Ah - then @jonathonmckay can use this feature to add in required petsc configure options to overcome the firewall issues.

from firedrake.

jonathonmckay avatar jonathonmckay commented on August 16, 2024

Oh yeah. python3 firedrake-install --help shows this at the end:

The installer will ensure that the required configuration options are
passed to PETSc. In addition, any configure options which you provide
in the PETSC_CONFIGURE_OPTIONS environment variable will be
honoured.

Guess I didn't read the whole thing, or didn't understand what it would mean to my specific case when I did.
Thank you. This will likely come in handy.

from firedrake.

jonathonmckay avatar jonathonmckay commented on August 16, 2024

Yes, setting PETSC_CONFIGURE_OPTIONS clears up the HDF5 problem.
And I've learned you can stack the settings (because our annoying corporate firewall is giving me grief for other automatic downloads). You can do this:

export PETSC_CONFIGURE_OPTIONS="--download-hdf5=/path/to/downloads/hdf5-1.14.3-p1.tar.bz2 --download-netcdf=/path/to/downloads/netcdf-c-4.9.2-p1.tar.gz"

(Manually download the required files first, of course)
Then run python3 firedrake-install after.

from firedrake.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.