Comments (6)
The following test is on merger
on development branch of Microphysics using unit_test/test_react
with the following compilation flags:
make -j NDEBUG=t MPI= OMP= COMP=gfortran NETWORK_DIR=aprox13 EOS_DIR=helmholtz
with INTEGRATOR_DIR=VODE90
or INTEGRATOR_DIR=VODE
.
Due to the recent updates to VODE enforcing limits on mass fractions and T, I'm using commit d98ac7843db80894f78a955f62ca6c3ea282209b
from September 12, 2017. The AMReX git commit is 266f31c00dfacb03b58a551006dce04ee6cc60a7
from September 18, 2017.
VODE
[dwillcox@merger test_react]((d98ac78...))$ ./main.Linux.gfortran.exe inputs_aprox13
MPI initialized with 1 MPI processes
MPI initialized with 1 threads
Initializing Helmholtz EOS and using Coulomb corrections.
small_temp = 100000.00000000000
small_dens = 1.0000000000000000
Execution time: 156.29828095436096
RHS stats:
min: 6
avg: 1522
max: 23965
VODE90
[dwillcox@merger test_react]((d98ac78...))$ ./main.Linux.gfortran.exe inputs_aprox13
MPI initialized with 1 MPI processes
MPI initialized with 1 threads
Initializing Helmholtz EOS and using Coulomb corrections.
small_temp = 100000.00000000000
small_dens = 1.0000000000000000
Execution time: 160.93007707595825
RHS stats:
min: 6
avg: 1522
max: 23965
fcompare
fcompare
reports no differences in the plotfiles written by test_react
with "PLOTFILES AGREE"
All this suggests that on the CPU the two are pretty comparable with a timing difference relative to VODE of 2.9%.
from microphysics.
I've repeated this test 9 more times for a total of 10, and the average times plus or minus a standard deviation for each integrator are as follows:
VODE: 156.2 +/- 1.2 seconds
VODE90: 159.7 +/- 1.3 seconds
Relative difference wrt VODE: 2.25%
Timing spreadsheet: VODE-vs-VODE90-aprox13.pdf
This suggests there is a performance difference on the CPU but it is relatively small.
from microphysics.
Can we get this in a branch and then run the test suite on it to check differences?
from microphysics.
Not quite yet, a few days ago I realized the timing above is for the original VODE90 revisions (on development
), before I made the changes needed to make it operable with CUDA Fortran.
When I've run timing between the versions of VODE90 and VODE on the cudadevice
branch in serial mode on the CPU I'm getting larger timing differences of ~7% and need to determine why. I should be able to look into this more today.
from microphysics.
On development I see 3% performance slowdown for VODE90 on aprox13, but not identical diffs, rather O(1e-10).
from microphysics.
Closing as we have already done the merge from VODE90 into VODE.
from microphysics.
Related Issues (20)
- consider having the Jacobian type depend on T
- can we operator split within VODE? HOT 1
- Compile-time RHS evaluation should have a pretty print option
- verify the Fermi integral approximations in sneut5.H HOT 2
- add a simpler version of neutrino cooling HOT 1
- add option to skip neutrino cooling if it is insignificant
- MathArray uses Fortran ordering -- are we looping correctly?
- compiler error: reference to 'initial_dt' is ambiguous HOT 5
- NSE update doesn't include plasma neutrino losses HOT 2
- macOS CI fails due to misconfigured GitHub actions runners
- code still runs if helm_table.dat is 0 length
- ROCm memory issues affecting Microphysics codes HOT 17
- NSE table does not compile with CUDA HOT 3
- avoid "extern" device global variables HOT 1
- speed up chabrier1998 screening by adding `` entries HOT 3
- avoid "using namespace" in headers included by application codes HOT 1
- replace std::pow(x, N) with amrex::Math::powi<N>(x) for integer N HOT 1
- remove reinterpret_cast in rhs.H HOT 1
- use std::expected to handle burn failures? HOT 4
- Initializing pivot to zero in VODE causes out of boundary access in linpack functions HOT 7
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 microphysics.