Comments (6)
It is rather cumbersome, but it could be useful in some stability-critical parts of the code.
Actually you can emulate the entire thing with IEEE compliance. I've confirmed that it's possible, just not worth my time. Double-single requires less effort. But even that requires nonzero effort, which I'd like to avoid.
from oxdna.
I'm not sure what you mean by "butterfly effect", but I'm familiar with the idea that the same configuration evolved differently will generate trajectories whose mutual "distance" diverges exponentially with time.
As for the difference in the numerical stability of single vs mixed precision, this is a plot of my phd thesis that shows the energy of an NVE simulation performed with oxDNA with single, mixed and double precision on GPUs:
About your last point, thanks for the reference, I'll give it a look.
from oxdna.
As for the difference in the numerical stability of single vs mixed precision, this is a plot of my phd thesis that shows the energy of an NVE simulation performed with oxDNA with single, mixed and double precision on GPUs:
My issue is that numerical stability and energy conservation are different. If you're connecting this to a thermal bath, small energy deviations won't matter. I'm worried about numerical stability in quaternion math being an "ill-structured problem". Similar to the reason eigenvalue decomposition always occurs in FP64.
from oxdna.
I don't exactly agree with the dismission of the effect of "small energy deviations" on the simulation performance, since a better energy conservation makes it possible to increase the integration time step and/or decouple the thermostat (which can increase particle diffusion and can therefore help simulating diffusion-limited systems).
Having said that, we periodically re-orthonormalise orientations to limit the kind of numerical issues I think you are referring too, although I'm not an expert in this matter.
from oxdna.
better energy conservation makes it possible to increase the integration time step and/or decouple the thermostat
I have a GPU that has zero double precision, and I'm trying to port your algorithm to another package. If it's at least possible, the CPU -> GPU jump should outweigh this performance hit?
from oxdna.
Yes, the raw speed-up should be rather large in that case. Also note that there are ways of doing calculations in double precision with only single-precision registers. It is rather cumbersome, but it could be useful in some stability-critical parts of the code.
from oxdna.
Related Issues (20)
- [BUG] CMake sets fixed path to libcommon.so in build directory / name complicates system-wide installation
- Strange relaxation trajectory HOT 14
- Just a quick fix for oxView overlays HOT 1
- [FEATURE REQUEST] oxdna-> pdb : RMSF feature from tacoxDNA
- OAT installation failing with python 3.9 and python 3.10 HOT 10
- [BUG]ModuleNotFoundError: No module named 'oxpy' HOT 5
- [FEATURE REQUEST] bond_analysis.py HOT 20
- Output_bonds script doesn't give information on timestep [BUG] XXX HOT 4
- Distance between bonded neighbors exceeds acceptable values HOT 6
- `output_bonds` not working HOT 8
- coil structures HOT 1
- [BUG] generate-RNA.py HOT 1
- Location of interaction threshold energies? (General question) HOT 4
- Stacking Strength for Individual Nucs (General Question) HOT 2
- [BUG] oxpy.core.OxDNAError: Key `use_average_seq' not found HOT 4
- [FEATURE REQUEST] a question about oat oxDNA_PDB -p HOT 3
- (OAT Question) Computing Twist between bp HOT 5
- Getting error when installing HOT 7
- UnicodeDecodeError when running FFS HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oxdna.