Skip to main content

We're not playing dices !


Software programming and design is an amazingly complex task. Specially when it concerns numerical applications, that generally require optimization to get results in a reasonable time. For that purpose the basic pattern is usually to write the code as simple as possible, debug it and when it works to begin the optimization process. This asks for some nerves, and patience, two things I usually don't have in real life, but for programming yes.

This design pattern makes sense because we are doing things really sequentially. You first wrote some c++ class and then add some feature progressively, and when you come up with essentially different concept (I mean a concept that should be well separated from the first one), you write an other class and so on...

Usually the class-writing process follows the solving process you have in mind. For instance you have to make some initialization on your model first, then you declare some variables for the computation, the computation then follows and everything ends by post processing some (possibly) meaningful results.

So, basically, inherently, their is a sequential pre-designed pattern that you follow naively. And you always keep in mind the sentence of D. Knuth: "Early optimization is the root of Evil."

Really ? Hum, not sure. At least it is true in our sequential way of working. But if you consider primitive life, or bacteria, may be the picture is different. May be each individual tries to optimize as much as possible, but only the one who have the good genome and initial condition succeed, while the other perish. In their case, optimization and selection is the root of something that works better that whatever we may think about, and possibly the index of God (or the intelligent design maker of our messy, not messiah -bible mistranslation-, universe).

So nonetheless God actually play dices a lot but moreover he left the code programmer with the inability to do the same thing.

Such a pity.

PS: The picture from the dices is taken at the CERN, see this site. Phycisist changed their minds ?

Comments

Popular posts from this blog

Shear waves, medecine and brain

Yesterday evening, too bored by what TV was proposing to me, I decided to watch a conference of Mathias Fink , a french researcher working on multidisciplinary application of waves. Specially shear waves.  Here is a brief summary of his talk. In solids, waves have two principal components:  compression waves (P-waves for primary) moving in the direction of propagation, and shear waves (S-waves, for secondary) that make ripples in the plane orthogonal to that direction. Since compression waves propagate in the direction of propagation, they move faster than shear waves. Usually ultrasound equipment in medicine only use compressional waves. But since human tissues have a high bulk modulus, the P-wave speed is relatively constant (around 1580 m/s). Human tissues are very stiff if you apply isotropic constraints on them (like pressure of water). However M. Fink and his colleagues proposed a new way to investigate human tissues by first sending a strong compressional wave in ...

Hypnothic patterns of integrer decomposition

http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/

Beauty is in the eyes(n,n)

Any people interested by sparse matrix algorithms should know the University of Florida sparse matrix collection and, by the way, Tim Davis . If you don't, please spend some time using the above links, it really worth it ! It collects many different kind of matrices, real, hermitian, symmetric, unsymmetric, rectangular, etc, etc. Moreover you have a nice colored view of each matrices obtained by spectral mapping and colouring. Could you guess for which kind of problem each of the matrices below arised ?