all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Bengt Richter <bokr@bokr.com>
To: zimoun <zimon.toutoune@gmail.com>
Cc: Guix Devel <guix-devel@gnu.org>
Subject: Re: Feedback from JRES in Dijon
Date: Thu, 5 Dec 2019 23:07:44 -0800	[thread overview]
Message-ID: <20191206070455.GA28637@PhantoNv4ArchGx.localdomain> (raw)
In-Reply-To: <CAJ3okZ2hKBPZNthZpBQ=xibxzjJu7_gO8HoEcAzxaZcNbR_0gg@mail.gmail.com>

Hi zimoun,

On +2019-12-05 16:52:47 +0100, zimoun wrote:
> Hi,
> 
> On Thu, 5 Dec 2019 at 16:45, Konrad Hinsen <konrad.hinsen@fastmail.net> wrote:
> 
> > > So they are doing physical simulation (fluid dynamics), so they don't
> > > (can't) get the same result when running the same experiment
> > > twice. They wart replicability, that is, even if the results are
> > > different, they are close enough to each other that you have to draw
> > > the same scientific conclusion, independent of your compiler or other
> > > package inputs.
> >
> > That's a common point of view in the numerical simulation community.
> > What the people defending it don't realize is that both reproducibility
> > and replicability matter, but in different situations and for different
> > reasons. Reproducibility matters for verification ("was the computation
> > done correctly?"), replicability matters for validation ("was the
> > computation the right one for the scientific question?").
> 
> If I might, one the best presentation [1] -- that I am aware of -- on
> this. Sorry in French.
> 
> [1] https://webcast.in2p3.fr/video/les-enjeux-et-defis-de-la-recherche-reproductible
> https://aramis.resinfo.org/wiki/lib/exe/fetch.php?media=pleniaires:aramis_keynote_enjeux-et-defis-recherche-reproductible_konrad_hinsen.pdf
>

Is [1] available as a libre video download?
My current youtube-dl could not find the video of [1], though I watched it with firefox.
I think it would be good for my French, such as it is, to watch that a few times ;-)

IMO if you can't reproduce bit-identical results, you should find out _exactly_ why.
And if you do get exactly the same result, you should also know exactly why ;-)

IME, in the process of figuring out the explanations you will always learn something.

You may be reproducing perfectly a biased result which could be improved as
a numerical result by counter-intuitively adding noise to the inputs
(to spread roundoff across the lsb roundoff boundary so that a mean will show
where in the interval the best estimate fell).

And if you are on the hairy edge of having a non-singular matrix to invert,
results can change because your thread got interrupted at a point where fp regs
got stored as 64 bits and thus restored with different precision than if the
interrupt didn't happen. Just because someone logged in remotely for unrelated reasons.

Such an infinitesimal value change can change the search order for pivot point in a matrix
and change the order of computation, or even make zero elements that otherwise differed
enough to make the inversion possible. And maybe you shouldn't actually store an inverse
from a library routine and then multiply, but rewrite your algorith to avoid truncations-
Of course your results may still be unusably sensitive ;-)

OTOH, you may notice that your algorithm would do much better if you pre-translated your
inputs to a better coordinate system orgin (e.g. to make lots of off-diagonal exact zeroes).

You may want to analyze how roundoff errors propagate through a Kalman filter vs a direct MLE version,
to see at what bit region in your numerical results input effects turn to computational artifacts,
to judge how to express your idea of the scientific significance of your results.

The video touches on IEEE 754 (and I do believe the lecturer understands these issues, but
he says (IIU.fr :) no programming language gives control over the FPU -- is that true?? I mean,
including on-the-metal x86_64 assembly language?? I thought you could set all those bits
that the firmware pays attention to, no?)

BTW, if you are interested in floating point, links from here should be fun:

--8<---------------cut here---------------start------------->8---
https://en.wikipedia.org/wiki/William_Kahan
--8<---------------cut here---------------end--------------->8---

Hey, in the '60s we wrote floating point in assembler, (after having written the assembler
for the custom system :) and were happy to get division timed under a millisecond ;-) Time flies :)

> Maybe we could convert it to an entry for the HPC blog. What do you think?
> 
> 
> Cheers,
> simon
> 

-- 
Regards,
Bengt Richter

  reply	other threads:[~2019-12-06 14:12 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-05 14:16 Feedback from JRES in Dijon Julien Lepiller
2019-12-05 14:34 ` Pierre Neidhardt
2019-12-05 14:42   ` Julien Lepiller
2019-12-05 15:44     ` Konrad Hinsen
2019-12-05 15:52       ` zimoun
2019-12-06  7:07         ` Bengt Richter [this message]
2019-12-06 12:24           ` Konrad Hinsen
2019-12-07 16:35             ` Timothy Sample
2019-12-08  2:48               ` Bengt Richter
2019-12-08  4:11                 ` Timothy Sample
2019-12-08 23:09                   ` Bengt Richter
2019-12-09  5:23                     ` Konrad Hinsen
2019-12-06 12:57         ` Konrad Hinsen
2019-12-10 16:57           ` Ludovic Courtès
2019-12-11 20:48             ` Konrad Hinsen
2020-01-07 16:05           ` Proposal for a blog contribution on reproducible computations Konrad Hinsen
2020-01-09 20:40             ` zimoun
2020-01-10 16:59             ` Ludovic Courtès
2020-01-10 17:19               ` zimoun
2020-01-10 18:53               ` Giovanni Biscuolo
2020-01-11  9:31               ` Konrad Hinsen
2020-01-11 14:05                 ` Giovanni Biscuolo
2020-01-13  8:37                 ` Ludovic Courtès
2020-01-14  9:06               ` Konrad Hinsen
2020-01-14 15:38                 ` Ludovic Courtès
2020-01-14 16:18                   ` Konrad Hinsen
2020-01-14 16:40                     ` Ludovic Courtès
2020-01-10 17:03             ` Ludovic Courtès
2020-01-11  9:39               ` Konrad Hinsen
2020-01-15 22:20                 ` Ludovic Courtès
2019-12-05 15:47     ` Feedback from JRES in Dijon zimoun
2019-12-05 14:39 ` Julien Lepiller
2019-12-05 15:42 ` zimoun
2019-12-10 17:06 ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191206070455.GA28637@PhantoNv4ArchGx.localdomain \
    --to=bokr@bokr.com \
    --cc=guix-devel@gnu.org \
    --cc=zimon.toutoune@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.