Skip to content
Snippets Groups Projects
Commit a8d8d817 authored by Matteo Cicuttin's avatar Matteo Cicuttin
Browse files

Updated changelog & doc

parent 97af8e34
No related branches found
No related tags found
No related merge requests found
......@@ -13,4 +13,5 @@ Unavailable features:
- Repetitive sources on GPU.
## Version v0.2 (NOT RELEASED YET)
- Fixed performance issue in the evaluation of boundary/interface sources (4463681c).
\ No newline at end of file
- Fixed performance issue in the evaluation of boundary/interface sources (4463681c).
- Added HIP support via Hipify (e6f5a020)
......@@ -113,4 +113,4 @@ None.
- `magnetic_initial_condition(x, y, z)`: if defined, the solver calls this function at the beginning of the simulation in order to initialize the magnetic field. The parameters `x`, `y` and `z` represent the point at which the field needs to be evaluated. The function has to return a triple specifying the three field components, i.e. `return Hx, Hy, Hz`.
### Considerations on the evaluation of sources and the computation on GPU
Currently sources for the timestep `t+1` are evaluated asynchronously on the CPU while the GPU is computing the timestep `t`. When the GPU is done, the updated sources are uploaded from the CPU to the GPU and the cycle restarts. This usually works relatively well on big domains with high approximation order, however on small domains at low approximation order does not give any speedup. For this reason, if the sources do not need to be evaluated along the whole simulation, it is suggested to turn them off at the appropriate timestep by using the `on_timestep()` callback and the appropriate functions described below. A future version of the solver will implement repetitive boundary sources, that will be precomputed on the CPU and uploaded on the GPU only once.
\ No newline at end of file
Currently sources for the timestep `t+1` are evaluated asynchronously on the CPU while the GPU is computing the timestep `t`. The sources at `t+1` are then uploaded asynchronously from the CPU to the GPU. This usually works relatively well, especially on big domains with high approximation order, however on small domains at low approximation order you can notice slowdowns. For this reason, if the sources do not need to be evaluated along the whole simulation, it is suggested to turn them off at the appropriate timestep by using the `on_timestep()` callback and the appropriate functions described below. Despite of that, I am not sure that implementing repetitive boundary sources will be necessary.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment