Skip to content
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

Nutils cases are extremely slower than the rest #506

Open
MakisH opened this issue Apr 3, 2024 · 4 comments
Open

Nutils cases are extremely slower than the rest #506

MakisH opened this issue Apr 3, 2024 · 4 comments

Comments

@MakisH
Copy link
Member

MakisH commented Apr 3, 2024

As stated in the Nutils Book, Nutils is not (yet) the fastest tool in its class. I experience that in our perpendicular-flap tutorial, where especially our fluid-nutils case is taking orders of magnitude longer than the rest of the solvers (half a day instead of a couple of minutes).

Following the official suggestions, I tried something like

OMP_NUM_THREADS=1 NUTILS_NPROCS=4 python myscript.py

without a directly visible impact (did not measure). I also commented-out the VTK output at the end of each coupling time window.

However, I think that we should first have a closer look and check if we are doing any extremely unnecessary work (e.g., too tight convergence measures, too much output, etc). The mesh already seems to be very coarse.

@gertjanvanzwieten @uekerman do you maybe have any quick ideas?

If we could drop the simulation time to a couple of minutes (or anything less than an hour), we could also integrate this in our system tests.

@uekerman
Copy link
Member

uekerman commented Apr 3, 2024

IIRC installing mkl should held to some extend. Then, Nutils picks a different solver backend.

Note that the fluid-nutils case uses different numerics than the other fluid cases. We solve for velocities and pressure simultaneously and we use H2-H1 elements. Cheaper would be to use H1-H1 + stabilization, but I also like that we keep the code + formulation here as simple as possible. And we use second-order in time, which we need for testing the waveforms.

If we find anything quick and simple, OK, but I would not want to change the numerics here.

For the systemtests, I would simply compute a few timesteps.

@uekerman
Copy link
Member

uekerman commented Apr 3, 2024

There is already #429 which touches the case quite a bit.

@MakisH
Copy link
Member Author

MakisH commented Apr 3, 2024

Update: @uekerman wanted to have a closer look into the numerics, but after the currently semi-done release cycle.

@IshaanDesai
Copy link
Member

The participant micro-nutils in the two-scale heat conduction tutorial is also extremely slow compared to other micro simulations of similar kind, and I have a feeling that the numerics there has a lot of potential for improvement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants