Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Wednesday September 25 2019, @11:42PM   Printer-friendly
from the "irrational"-conclusion dept.

Arthur T Knackerbracket has found the following story:

Professor Peter Coveney, Director of the UCL Centre[*] for Computational Science and study co-author, said: "Our work shows that the behaviour of the chaotic dynamical systems is richer than any digital computer can capture. Chaos is more commonplace than many people may realise and even for very simple chaotic systems, numbers used by digital computers can lead to errors that are not obvious but can have a big impact. Ultimately, computers can't simulate everything."

The team investigated the impact of using floating-point arithmetic -- a method standardised by the IEEE and used since the 1950s to approximate real numbers on digital computers.

Digital computers use only rational numbers, ones that can be expressed as fractions. Moreover the denominator of these fractions must be a power of two, such as 2, 4, 8, 16, etc. There are infinitely more real numbers that cannot be expressed this way.

In the present work, the scientists used all four billion of these single-precision floating-point numbers that range from plus to minus infinity. The fact that the numbers are not distributed uniformly may also contribute to some of the inaccuracies.

First author, Professor Bruce Boghosian (Tufts University), said: "The four billion single-precision floating-point numbers that digital computers use are spread unevenly, so there are as many such numbers between 0.125 and 0.25, as there are between 0.25 and 0.5, as there are between 0.5 and 1.0. It is amazing that they are able to simulate real-world chaotic events as well as they do. But even so, we are now aware that this simplification does not accurately represent the complexity of chaotic dynamical systems, and this is a problem for such simulations on all current and future digital computers."

The study builds on the work of Edward Lorenz of MIT whose weather simulations using a simple computer model in the 1960s showed that tiny rounding errors in the numbers fed into his computer led to quite different forecasts, which is now known as the 'butterfly effect'.

[*] UCL: University College London

Journal Reference:
Bruce M. Boghosian, Peter V. Coveney, Hongyan Wang. A New Pathology in the Simulation of Chaotic Dynamical Systems on Digital Computers. Advanced Theory and Simulations, 2019; 1900125 DOI: 10.1002/adts.201900125


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 0) by Anonymous Coward on Thursday September 26 2019, @12:53AM (20 children)

    by Anonymous Coward on Thursday September 26 2019, @12:53AM (#898870)

    That would work for representing any given location of any given thing, but I'm assuming there is a huge (probably exponential) cost to doing operations that way. Basically, there a lot of smart people in computer science (not to be confused with "programming"), and in physics. I'm sure if it were this easy, it'd already be done this way.

    Then again, it could be like that clever graphical rendering trick where you render the insides of objects instead of outsides for collisions, and they really do need a neophyte to say "the emperor has no clothes." I doubt it, but it could be true.

    As for using base3... Uhh... am I misunderstanding? All our current computer technology, including decades of optimization, is based on binary. Are you suggesting that we create new trinary-computers for some reason?

  • (Score: 3, Informative) by c0lo on Thursday September 26 2019, @01:24AM (18 children)

    by c0lo (156) Subscriber Badge on Thursday September 26 2019, @01:24AM (#898880) Journal

    That would work for representing any given location of any given thing, but I'm assuming there is a huge (probably exponential) cost to doing operations that way.

    Nope, the multiplication difficulty scales less-than-quadratic-law with the number of bits in the representation. More precisely, with at most the power of log2(3) [wikipedia.org] - faster algos exist for sufficiently larger number of bits in the representation.

    Given that the computation of most of the functions use convergent series, this gets to say that you can expect somewhere a less than cubic degradation of performance with the number of bits in the representation.

    Basically, there a lot of smart people in computer science (not to be confused with "programming"), and in physics. I'm sure if it were this easy, it'd already be done this way.

    Nope again. TFA is just a warning to all "wet-behind-the-ears scientists" to consider the precision they need before blindly relying on already written ones or whatever the hardware they use provide (being tempted by fast, on chip, but low precision arithmetics - e.g. neural networks on your mobile [fritz.ai])

    Otherwise, bignum libs exist and are being used for quite a long time. [wikipedia.org]

    --
    https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
    • (Score: 3, Funny) by krishnoid on Thursday September 26 2019, @02:40AM

      by krishnoid (1156) on Thursday September 26 2019, @02:40AM (#898910)

      I don't understand most of that but it sounds authoritative and falsifiable, so +1 Informative for you.

    • (Score: 2) by HiThere on Thursday September 26 2019, @03:15AM (2 children)

      by HiThere (866) Subscriber Badge on Thursday September 26 2019, @03:15AM (#898920) Journal

      The point about "BigNum"s is valid. As for the other, why do things the hard way for an infrequent edge case?

      Using BigNums and such when a floating point is good enough adds extra complexity, extra cost, and requires more computing cycles, so there's no way that would be made the default when it's only rarely needed.

      FWIW, most of the time we don't even need floats, so lots of computers were made that didn't *have* hardware floating point units. Hardware got cheaper, so now we have built in floats, and even things like GPUs. Handling chaos "correctly" is not normally needed. Yes, it shows up all over the place, but usually your measurements aren't accurate enough that you could take advantage of the extra capability, and so it would only be useful in unusual circumstances. And then you can use an "infinite precision floating point" library...and expect things to take a very long time to run.

      --
      Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.
      • (Score: 2) by c0lo on Thursday September 26 2019, @03:38AM

        by c0lo (156) Subscriber Badge on Thursday September 26 2019, @03:38AM (#898926) Journal

        As for the other, why do things the hard way for an infrequent edge case?

        because, now and then (i.e. infrequent), one does have things that can't be done without bignum?

        so there's no way that would be made the default when it's only rarely needed.

        Nor me neither TFA say "do it always".
        However, if the CPU providers will find cheap enough to go to higher bitnum on-chip arithmetic**, my argument suggest that computations beyond 256bit numbers for physics modeling (that includes weather) could be an overkill.
        (the age of Universe is somewhere in the 14e+9 years => 4.42e+17 seconds => 8.1966042e+60 Plank time units => 256 bit numbers are precise enough too for time scales going over 16k times longer than the current age of the universe)

        ---

        ** from the first IC CPU [wikipedia.org] to date, it's less than 50 years. And the bits went from 4 to 64 - 16x times
        From 64 to 256 is only 4x times, so who knows what would the next 50 years bring in?

        --
        https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
      • (Score: 1, Insightful) by Anonymous Coward on Thursday September 26 2019, @05:57AM

        by Anonymous Coward on Thursday September 26 2019, @05:57AM (#898972)

        It's our god given right to waste CPU cycles. We'll use BigNums, and we'll do it in a virtual machine written in JavaScript.

    • (Score: 3, Interesting) by bzipitidoo on Thursday September 26 2019, @04:17AM (13 children)

      by bzipitidoo (4388) on Thursday September 26 2019, @04:17AM (#898934) Journal

      Skimming, I see that neither article nor paper explicitly mentions Numerical Stability, a primary concern in the subfield of Numerical Analysis. I find it hard to believe that the authors and reviewers did not know of this, or at least did not learn of it in doing this research. But maybe they missed it. Iterative methods in particular can be highly prone to instability. By choosing among methods, and carefully ordering the operations, a lot of unstable scenarios can be avoided.

      A simple example is the equation a*b*c. Multiplication is associative, of course. Ideally, you would get the same results with either (a*b)*c or a*(b*c). But in practice, you might get widely divergent answers. If a*b is close to the maximum value, and c is a small fraction, you would want to multiply by c first, otherwise a lot of precision will be lost. Should also use the commutative property, and consider orders such as a*c*b.

      Can't have the computer blindly plow ahead with whatever arbitrary order it was fed the numbers, it should be programmed to test for instability and to juggle the operations in the way that will be most stable. If they aren't taking such precautions, then their results are not that interesting or valuable. Yeah, yeah, chaotic systems are extremely sensitive to initial conditions. We know that already. There are plenty of chaotic systems that cannot be accurately calculated even with the use of stable methods. Numerical Stability is still very valuable.

      • (Score: 2) by c0lo on Thursday September 26 2019, @05:40AM (11 children)

        by c0lo (156) Subscriber Badge on Thursday September 26 2019, @05:40AM (#898959) Journal

        The path of a numerical computer is beset on all sides by the approximation errors and the propagation of these errors. Blessed is he who, in the name of charity and good, will know about these and shepherds the weak in this knowledge through the valley of darkness for he is truly his brother's keeper and the finder of lost children.

        But don't strike down with great vengeance and furious anger those that don't go shepherding all the way, 'cause good can be still good without being perfect and nobody is perfect anyway.

        --
        https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
        • (Score: 2) by JoeMerchant on Thursday September 26 2019, @02:01PM (10 children)

          by JoeMerchant (3937) on Thursday September 26 2019, @02:01PM (#899092)

          don't strike down with great vengeance and furious anger those that don't go shepherding all the way, 'cause good can be still good without being perfect and nobody is perfect anyway.

          Unless they write control loops such as:

          float n = 0.0;

          while ( n != 10.0 )

              { blah blah

                  n = n + 0.1;

              }

          for they deserve, at the very least, great ridicule in front of their peers.

          --
          🌻🌻 [google.com]
          • (Score: 2) by DannyB on Thursday September 26 2019, @03:25PM (6 children)

            by DannyB (5839) Subscriber Badge on Thursday September 26 2019, @03:25PM (#899157) Journal

            5 DEFDBL n
            10 n = 0.0
            20 GOTO 50
            30 blah blah
            40 n = n + 0.1
            50 IF n != 10.0 GOSUB 30
            60 END

            --
            The lower I set my standards the more accomplishments I have.
            • (Score: 2) by JoeMerchant on Thursday September 26 2019, @03:37PM (5 children)

              by JoeMerchant (3937) on Thursday September 26 2019, @03:37PM (#899161)

              Did you copy this from my computer lab partner in 1984? - I think I've seen exactly that code sequence before.

              --
              🌻🌻 [google.com]
              • (Score: 2) by DannyB on Thursday September 26 2019, @03:40PM (4 children)

                by DannyB (5839) Subscriber Badge on Thursday September 26 2019, @03:40PM (#899164) Journal

                I proudly translated it myself, without any help, into the ideal programming language without any misteaks.

                --
                The lower I set my standards the more accomplishments I have.
                • (Score: 2) by JoeMerchant on Thursday September 26 2019, @03:44PM (3 children)

                  by JoeMerchant (3937) on Thursday September 26 2019, @03:44PM (#899170)

                  I particularly like the stack overflow insert, so you don't get stuck in an infinite loop.

                  --
                  🌻🌻 [google.com]
                  • (Score: 2) by DannyB on Thursday September 26 2019, @03:52PM (2 children)

                    by DannyB (5839) Subscriber Badge on Thursday September 26 2019, @03:52PM (#899174) Journal

                    That's why I have the title Senior Software Developer.

                    --
                    The lower I set my standards the more accomplishments I have.
                    • (Score: 3, Touché) by JoeMerchant on Thursday September 26 2019, @04:01PM (1 child)

                      by JoeMerchant (3937) on Thursday September 26 2019, @04:01PM (#899180)

                      They gave me the title "Principal", twice now - the first time they did that, I had them change it to "Principle" because, you know, I've got principles, not a bunch of unruly kids running around.

                      This time Principal fits, so I let it stay.

                      --
                      🌻🌻 [google.com]
                      • (Score: 2) by DannyB on Thursday September 26 2019, @05:30PM

                        by DannyB (5839) Subscriber Badge on Thursday September 26 2019, @05:30PM (#899210) Journal

                        I think I have that title because I've been here so long (almost 40 years) that I know where all the bodies are buried.

                        --
                        The lower I set my standards the more accomplishments I have.
          • (Score: 2) by DannyB on Thursday September 26 2019, @03:39PM (2 children)

            by DannyB (5839) Subscriber Badge on Thursday September 26 2019, @03:39PM (#899163) Journal

            for they deserve, at the very least, great ridicule in front of their peers.

            I was recently discussing right here on SN, how in the 1960's and certainly 70's, how everyone learned never to use floating point to hold money values.

            float payment = 0.00; // start at zero dollars and sense
            while( payment != 10.00 ) { // while not up to ten dollars
                blah blah
                payment = payment + 0.10; // add ten cents (but with no sense)
            }

            I would ordinarily write payment = 10.0, rather than not equal. But even if you're not paranoid, you should be able to assume dollars and cents are exact and make sense.

            --
            The lower I set my standards the more accomplishments I have.
            • (Score: 2) by DannyB on Thursday September 26 2019, @03:55PM (1 child)

              by DannyB (5839) Subscriber Badge on Thursday September 26 2019, @03:55PM (#899178) Journal

              I would ordinarily write payment = 10.0

              Ugh, can't write a less than without using html entity.

              Try this.. .

              I would ordinarily write: payment <= 10.00

              --
              The lower I set my standards the more accomplishments I have.
              • (Score: 0) by Anonymous Coward on Thursday September 26 2019, @07:19PM

                by Anonymous Coward on Thursday September 26 2019, @07:19PM (#899267)

                No, everyone knows it should be: 10.00 >= payment

      • (Score: 2) by JoeMerchant on Thursday September 26 2019, @01:58PM

        by JoeMerchant (3937) on Thursday September 26 2019, @01:58PM (#899090)

        Chaos is often modeled with feedback oscillators, so you've got an infinite chain of operations, and, yes, it is very important to keep in the "sweet spot" of your numerical representation - most chaotic oscillators I've ever worked with keep their numbers in the range of ~ +/- 10.0 to +/- 0.1, regardless of whether they are using float, double, or other precision to compute them.

        If you want to see it bigger (or smaller), scale it up (or down), but the chaotic feedback computation loop stays planted within a narrow well behaved range.

        --
        🌻🌻 [google.com]
  • (Score: 4, Interesting) by c0lo on Thursday September 26 2019, @02:19AM

    by c0lo (156) Subscriber Badge on Thursday September 26 2019, @02:19AM (#898901) Journal

    As for using base3... Uhh... am I misunderstanding? All our current computer technology, including decades of optimization, is based on binary. Are you suggesting that we create new trinary-computers for some reason?

    Clearly, on top of being ignorant, you are lazy too. Your opportunity to, at least, appear humble about (instead of dismissive) could start here [google.com]

    From the list of results:
    * history of ternary computers [wikipedia.org] - yes, they do even have a history and the history shows they can be cheaper than binary.
    * Samsung backing research in ternary chip design [extremetech.com] - so... maybe not that crazy an idea after all?
    * optical computers highly likely to use ternary [iop.org] - with two orthogonal polarisation and absence of light representing the trit. Otherwise, a balanced ternary [wikipedia.org] electronics would use 1, 0 and -1 polarity for the gates, which is not that hard to do.
    * some resources [uiowa.edu] - will tell you that a ternary computer could at least cut the necessary wires (read connections) to 64%. Fast arithmetic is also possible.
    * some even propose an "open source/crowdfunding/maker-style" approach [ternary-computing.com]. Others invest their hobby time into just for the hack of it [hackaday.com]

    --
    https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford