← Back to team overview

yade-dev team mailing list archive

Re: Do we want low precision float in the gitlab CI pipeline?


(sorry for previous empty message)
I don't think DEM can realistically work with floats. If 100 particles in a
row are elongated by 0.01%, the relative displacement between the 99th and
100th particles is 1e-6 times the positions. With single precision it would
already produce substantial numerical noise in terms of contact force.
I mentioned single precision in relation with solving linear systems with
cholmod, and that part does not support HP.
I think we can skip the float pipeline. :)

On Sun, 1 Mar 2020 at 16:24, Janek Kozicki (yade) <jkozicki-yade@xxxxxxxxx>

> Hi,
> The high precision tests are now running in the gitlab pipeline. And
> we can be sure that `double` are not getting by accident into master.
> (except for the modules which are not supported by HP right now [1],
> in there some `double` could sneak in)
> This work also makes low-precision possible. I didn't add this to the
> pipeline, thinking it's not of much use. In some comment Bruno
> mentioned that some people want to use float in the GPUs to get the
> results faster. (Whether these results are correct is a topic for a
> different discussion :)
> I could prepare a merge request that adds float to the pipeline,
> because it is compiling (so it works) but it is not passing the tests.
> The disadvantage is that in many test scripts an exception will have
> to be written using following distinction:
>    if (yade.config.highPrecisionDecimalPlaces < 7):
> That's because some of the tests produce different results when float
> is used, which is not a surprise ;)
> Currently yade --check has following failures on float:
> 7  checks are failed
>   checkColliderConstantness.py
>   checkViscElEng.py
>   checkPotentialParticles.py
>   checkColliderCorrectness.py
>   checkJCFpm.py
>   checkWirePM.py
>   checkCapillaryModels.py
> And yade --test also has similar errors due to only 6 available
> decimal places. The log is longer, so I attach it.
> And most of these failures are because the results are compared with
> 1e-8 precision, while float maximally can offer 6 decimal places.
> best regards
> Janek
> [1]
> https://yade-dev.gitlab.io/-/trunk/-/jobs/455155443/artifacts/install/share/doc/yade-ci/html/HighPrecisionReal.html#supported-modules
> --
> Janek Kozicki, PhD. DSc. Arch. Assoc. Prof.
> Gdańsk University of Technology
> Faculty of Applied Physics and Mathematics
> Department of Theoretical Physics and Quantum Information
> --
> http://yade-dem.org/
> http://pg.edu.pl/jkozicki (click English flag on top right)
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev
> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-dev
> More help   : https://help.launchpad.net/ListHelp

Bruno Chareyre
Associate Professor
ENSE³ - Grenoble INP
Lab. 3SR
BP 53
38041 Grenoble cedex 9
Tél : +33 4 56 52 86 21

Email too brief?
Here's why: email charter

Follow ups