Slashdot Mirror


Ask Slashdot: How Reproducible Is Arithmetic In the Cloud?

goodminton writes "I'm research the long-term consistency and reproducibility of math results in the cloud and have questions about floating point calculations. For example, say I create a virtual OS instance on a cloud provider (doesn't matter which one) and install Mathematica to run a precise calculation. Mathematica generates the result based on the combination of software version, operating system, hypervisor, firmware and hardware that are running at that time. In the cloud, hardware, firmware and hypervisors are invisible to the users but could still impact the implementation/operation of floating point math. Say I archive the virutal instance and in 5 or 10 years I fire it up on another cloud provider and run the same calculation. What's the likelihood that the results would be the same? What can be done to adjust for this? Currently, I know people who 'archive' hardware just for the purpose of ensuring reproducibility and I'm wondering how this tranlates to the world of cloud and virtualization across multiple hardware types."

9 of 226 comments (clear)

  1. Numerical instability by Anonymous Coward · · Score: 5, Insightful

    If the value your computing is so dependent of the details of float point implementation that you'er worried about it, you probably have an issue of numerical stability and the results you are computing are likely useless, so this is really a mute point.

  2. Re:Fixed-point arithmetic by Anonymous Coward · · Score: 5, Insightful

    Submitter is entirely ignorant of floating point issues in general. Other than the buzzword "cloud" this is no different from any other clueless question about numerical issues in computing. "Help me, I don't know anything about the problem, but I just realized it exists!"

  3. You need to know some numerical analysis by daniel_mcl · · Score: 5, Insightful

    If your calculations are processor-dependent, that's a bad sign for your code. If your results really depend on things that can be altered by the specific floating-point implementation, you need to write code that's robust to changes in the way floating-point arithmetic is done, generally by tracking the uncertainty associated with each number in your calculation. (Obviously you don't need real-time performance since you're using cloud computing in the first place.) I'm not an expert on Mathematica, but it probably has such things built in if you go through the documentation, since Mathematica notebooks are supposed to exhibit reproduceable behavior on different machines. (Which is not to say that no matter what you write it's automatically going to be reproduceable.

    Archiving hardware to get consistent results is mainly used when there are legal issues and some lawyer can jump in and say, "A-ha! This bit here is different, and therefore there's some kind of fraud going on!"

    --
    I used to read Caltizzle. I was a lot cooler than you.
    1. Re:You need to know some numerical analysis by rockmuelle · · Score: 5, Insightful

      This.

      Reproducibility (what we strive for in science) is not the same as repeatability (what the poster is actually trying to achieve). Results that are not robust on different platforms aren't really scientific results.

      I wish more scientists understood this.

      -Chris

  4. Re:Fixed-point arithmetic by Jane+Q.+Public · · Score: 4, Insightful

    "Is it ia huge problem though?"

    If tools like Mathematica are dependent on the floating-point precision of a given processor, They're Doing It Wrong.

  5. Re:Fixed-point arithmetic by Giant+Electronic+Bra · · Score: 5, Insightful

    I think the problem is that people PERCEIVE it to be a problem. Nothing is any more problematic than it was before, good numerical simulations will be stable over some range of inputs. It shouldn't MATTER if you get slightly different results for one given input. If that's all you tested, well, you did it wrong indeed. Mathematica is fine, people need to A) understand scientific computing and B) understand how to run and interpret models. I think most scientists that are doing a lot of modelling these days DO know these things. Its the occasional users that get it wrong I suspect.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  6. Re:Fixed-point arithmetic by immaterial · · Score: 5, Insightful

    For a guy who started off a reply with an emphatic "Wrong" you sure do seem to agree with the guy you quoted.

  7. Re:Fixed-point arithmetic by gl4ss · · Score: 4, Insightful

    the question was not about compilers or indeed about software, but about fpu's, about firing up the same instance, with the same compilers and indeed with the same original binary.

    it sounds like just fishing for reasons to have a budget to keep old power hw around.

    I would think that if the results change so much to matter depending on fpu, that the whole calculation method is suspect to begin with and exploits some feature/bug to get a tuned result(but assuming that the cpu/vm adheres to the standard that they would be the same - if the old one doesn't and the new one does then I think that a honest scientist would want to know that too).

    --
    world was created 5 seconds before this post as it is.
  8. Re:Fixed-point arithmetic by amck · · Score: 4, Insightful

    Getting the result to be deterministic is only the start of the problem. How do you know it is _correct_, or more properly, know the error bounds involved? How much does it matter to your problem?

    e.g. If I am doing a 48-hour weather forecast, I can compare my results with observations next week; I can treat numerical error as a part of "model" error along with input observational uncertainty, etc.

    I might validate part of my solutions by checking that, for example, the total water content of my planet doesn't change. For a 48-hour forecast, I might tolerate methods that slightly lose water over 48 hours in return for a fast solution. For a climate forecast/projection, this would be unacceptable.

    Getting the same answer every time is no comfort if I have no way of knowing if its the right answer.

    --
    Anyone who believes exponential growth can go on forever in a finite world is either a madman or an economist