Nicolas Ducarton (de0b3f6f) at 29 Mar 11:24
Merge branch 'fault_tolerance' of https://git.opencarp.org/openCARP...
... and 1 more commit
Edward Vigmond (131513d6) at 27 Mar 13:41
suppress warning about x dimensiob
Hello,
You weren't missing something, the repo was. I fixed the issue described above, you should be able to compile with the commands you provided above now.
Sorry for the inconvenience
Nicolas Ducarton (e8e89108) at 27 Mar 12:39
resolved previous commit issue
Nicolas Ducarton (ff28efce) at 27 Mar 08:34
temporarly added submodules
Yes, I also suggest running the models 1000 times longer instead of 1000 cells and to evaluate drifts compared to the f64 model. I also expect the most critical component the Ca_i but other concentrations might also be affected. Thus I suggest to compare the drifts in all concentrations as parameters of acceptable f32 deviations from the f64 result. If the deviation is too large, you have to identify the equations within each model that needs double precision. Additionally, it would be interesting to see, why some of the models are slower with f32...
Someone pointed out that openMP does not work for igbutils:
https://opencarp.org/q2a/1222/precompiled-binaries-igbutils-with-openmp
As discussed in the Dev Meeting, there is only a single openMP switch in the configuration, which might sometime lead even to increased time to the simulation.
One suggestion was to include two openMP switches -- one for utilities and one for the simulator.
I'm not sure about the details of the possible implementation. Please comment if you could provide better explanation of what is required.
The most critical state variable is most models is Cai
. Might be good to leave this at double precision.
Another thing to consider is changes accumulating over time. Could you evaluate the last of say 1000 cycles?
Let's set up a regression test that could have prevented openCARP#332
The update to the regression tests should consist of setting up an .sv file, and reading it for an imp_region not represented in the mesh.
Nicolas Ducarton (d5ac32ea) at 25 Mar 08:10
fixed typo
Nicolas Ducarton (6fece42a) at 25 Mar 07:50
added ifdef statements around gpu code
Ni @NicolasD , thank you for adding further files to the repo.
I have now on the latest commit in the branch starpu_opencarp
with a commit ID 48c9c8ba8f23a8fea4664a8d4df123ed7ee4fb97
.
Unfortunately, the compilation still fails with the following error error-starpu_opencarp-48c9c8.txt. So I am probably still missing something.
For the compilation I use a setup similar to the described docker container enviroment in the wiki. This ensures the same environment setup across different machines. This way the above error can be reproduced by running:
git clone --recursive https://git.opencarp.org/openCARP/openCARP # if necessary to start from fresh repository
cd openCARP/
git checkout starpu_opencarp
sed -i -e 's@--parallel 8 @@g' docker/Dockerfile # force serial build (to exit at the first error)
docker build --pull -f docker/Dockerfile -t my-opencarp .
Hi Jorge, thanks for having a look!
It was posted as a reader comment under the original publication: https://journals.plos.org/ploscompbiol/article/comments?id=10.1371/journal.pcbi.1002061
(BTW: that is also where the comment about swapping the INa comes from, see comment from tohara there.)
That's all I have, I found it basically by accident.
I'm not sure what description you're asking for. The Google doc seems to have all the implementation details and references. Maybe you'd like to contact Michael directly?
Cheers, Eike
Thanks @huppe!
Let me loop in @gunnar.seemann who also did some experiments regarding float/double in the past
I have been investigating using single precision (f32) numbers for LIMPET computations. This could offer significant speedups to the cost of reduced numerical precision.
I tried two things:
A working version of openCARP with f32 limpet enabled by default is available on the branch lut-f32-inmemory. Needs to be built with MLIR.
I attached to this post a PDF with plots of the potential over time for each model, comparing the output for baseline (all f64), only LUTs f32 and both LUTs and state variables f32.
The speedup is very interesting for some models and the error seems acceptable for most models. There are a few ways this could be integrated to opencarp: a runtime switch for the user (meaning we would have to compile all versions f32/f64, making the build process heavier) or enable f32 only for some models (maybe with a switch in easyML). I think it depends mostly on how acceptable the error is. Maybe @axel.loewe @edward.vigmond you have an idea what direction we could go?
These are the speedups I get using bench
with 1000 cells for 1000 ms with a time step of 0.01. The benchmarks were ran on a single core with AVX512 (16 floats per vector operation).
bench --bin --validate --no-trace -I <Model> -n 1000 -a 1000
Hi and sorry for the late answer. I added the missing files back to the git repo. This should be enough to compile it for now. As for the failing pipeline, @valba and I will look into it as soon as possible.
PUSH_TOKEN (2271a3cc) at 20 Mar 10:38
Release v15.0
PUSH_TOKEN (2271a3cc) at 20 Mar 10:38
Release v15.0
PUSH_TOKEN (2271a3cc) at 20 Mar 10:38
Release v15.0