4 ms·
As one of the other commentators mentioned, it's not that kind of simulation. It's similar to looking at electron shells in an atom, where you don't simulate th
by bazzargh 3y ago
As one of the other commentators mentioned, it's not that kind of simulation. It's similar to looking at electron shells in an atom, where you don't simulate the motion of an electron from a start point to an end point, but can predict bulk properties of energy states, eg that radiation of a particular wavelength will excite the system to another state, and we should see absorbtion an emission spectra from those effects (and this is how you get lasers, and detect the composition of stars, and so on). Analogously in nuclei you get gamma radiation spectra, and statistical predictions about other phenomena.
The numerical stability issues I complained about are inherent due to the accumulation of floating point errors in the Lanczos algorithm. You just end up with completely junk results. (so, you work with double precision all the time, chewing more memory). We do have some "initial conditions" in the calculation, in that the lanczos algorithm is repeatedly applying a matrix to a vector that represents state occupancies; but if this was numerically stable it wouldn't much matter what initial vector you chose (I can't remember if ours used (1,0,0...0) or 1/root(N)*(1,1,...,1))
- ftxbro 3y agoIs there a code that i can run to check the stability, if i have a lot of time to spare and a fast computer with a lot of memory? Do the codes use GPU for their Lanczos things yet?
- bazzargh 3y agoGPU? I was writing this stuff _30 years ago_. You were lucky to have a soundblaster. Everyone I knew who worked on this is long retired or passed away. AFAIK the code isn't available, that just wasn't how things worked back then, there were some ftp sites but open source was still nascent (Linux didn't exist yet). The architecture I was writing for was a Parsytec Supercluster https://en.wikipedia.org/wiki/Parsytec https://en.wikipedia.org/wiki/Parsytec which doesn't exist as a thing any more, it was mostly straight K&R C tho with a harness written in Occam, controlled from a workstation running SunOS (not even Solaris). If you happened to find the code it'd be completely worthless. Like I said above, we weren't able to use off the shelf, optimised matrix libraries because of the way we were generating coefficients on the fly, for what was a very sparse matrix. It's just not how you'd do it on modern hardware.
- ftxbro 3y agoI meant more like the code they are using these days for that same problem of ab initio oxygen isotopes or whatever it would be called. I know they didn't use GPU for things until recently, like maybe even now they haven't converted it yet.
- jacquesm 3y agoYou can bet that the people that need that kind of compute power are aware of the available options, they're not exactly stupid (to put it mildly).
- ftxbro 3y agoYeah you would think, which is why I was wondering "is there a code that i can run to check the stability" but apparently that's a silly thing to ask for some reason.
- jacquesm 3y agoI don't think there is such a thing as a silly question but consider this: it's not just 'running the code', you need to actually understand the problem and short of a career in physics you're looking at 'numbers in that make no sense to you' and 'numbers out that make no sense to you'. To be able to meaningfully contribute you'd have to do a ton of groundwork first and then by the time you're ready to put your GPU goodies to work you'll probably find that path well trodden by others. For instance: https://ieeexplore.ieee.org/document/5763440 https://ieeexplore.ieee.org/document/5763440
- ftxbro 3y ago> I don't think there is such a thing as a silly question but consider this: it's not just 'running the code', you need to actually understand the problem and short of a career in physics you're looking at 'numbers in that make no sense to you' and 'numbers out that make no sense to you'. ok but what if the numbers do make sense to me tho, maybe i'm a computational physicist in some other area but not that one > by the time you're ready to put your GPU goodies to work you'll probably find that path well trodden by others yes that's what i was asking, what are the codes that others who have trodden that path are using
- jacquesm 3y agoThank you for the answer. It is super interesting stuff and I wished I had another lifetime (or two...) to spend on these subjects, all I can do now is read the layman oriented publications and hope to at least stay current with the discoveries and what experiments are being run (and sometimes the odd unexpected result). Floating point is nasty in that even if you are really careful if you run something for long enough it tends to trend towards nonsense due to accumulation of errors. Might it be possible to use very large fixed point numbers for that algorithm or would that reduce the runtime to something unusable? Or is the magnitude of the numbers such that this would be impractical from a memory point of view? In Dutch we have a proverb that says that one crazy person can ask more questions than 10 wise people can answer so if these are off-base feel free to ignore :)
- bazzargh 3y agoFixed point: pretty sure that would not work, I recall the numbers ran over many orders of magnitude. I did waste a ton of time back then looking at whether things like interval arithmetic would help. And double precision was - as I recall - enough to avoid precision problems in the results, it was just unsatisfying because we didn't really have the memory for it. "is the magnitude of the numbers such that this would be impractical..." is maybe the wrong way to look at our problem. Doubling memory to use double precision was an inconvenience, we were trying to squeeze out results with the hardware we had. The elephant in the room was the size of the matrix. Increasing the number of shells in the model - necessary to model heavier nuclei - massively expanded the size of the matrix, and needed a generation for the kind of computer a small research grant can afford to be capable of doing the next set of nuclei. And then it'll be another generation or two before the next set again. And you can ask, but it's a lifetime ago, it's like asking if Napoleon could in some way have avoided defeat at Waterloo - just idle speculation on my part now. I have to laugh at the question in one of the other replies if this had been converted to run on GPU, man, those were 20 years away and some of the machines I coded for didn't have an FPU.
- jacquesm 3y agoI was around back then and played with transputers as well, I really hoped they'd be the future because it seemed a lot more interesting than the alternatives. Well, here we are :) It's interesting how you now have the equivalent of a supercomputer from back then in your pocket. Talk about wasted potential... I read the Parsytec page, I never knew about them, but very interesting machines.