DavidDureau
DavidDureau
Is it possible to port the `synchronizeMaterialsInCells()` with the accelerator API? Indeed, when a code is running with AcceleratorRuntime=cuda, then the main part of `synchronizeMaterialsInCells()` is running on CPU and...
Traditional initialization code executed in serial on CPU: ```c++ VariableCellInteger var_ci(...); VariableCellReal var_cr(...); MaterialVariableCellReal var_mr1(...); MaterialVariableCellReal var_mr2(...); ... MaterialVariableCellReal var_mr7(...); VariableNodeReal var_nr(...); VariableNodeReal3 var_nr3(...); var_ci.fill(1); var_cr.fill(0.0); var_mr1.fill(0.0); var_mr2.fill(1.0); ... var_mr7.fill(0.0);...
Temporary arrays or variables are often used in simulation code but it implies numerous allocations/freeing at each time-step cycle. In addition, when the cuda accelerator runtime is enabled, we have...
In a accelerator loop, we would like to get the environment id for a given MatVarIndex: ```c++ CellToAllEnvCellAcessor c2ae(....); command
With an environment variable, we would like to choose if scalar (resp. array) variables (item-kind="none") are allocated with cudaMallocManaged or with the standard memory allocator.
**Goal: to have or to "manipulate" a dynamic number of item variables** **Choice 1**: Array of `MeshVariableArrayRefT< ItemTypeT, DataTypeT>` We could have a N-dimensional array of `MeshVariableArrayRefT` Here, an example...
Context: - the whole domain is a cartesian mesh with cartesian patches; - the cell edges are parallel to the XYZ axis; - the number of ghost layers is greater...
Now, the load balancing is able to migrate items among sub-domains with only 1 ghost layer. Goal: to transfer items from one sub-domain to another with N ghost layers where...
Consider a variable of type `VariableCellArrayReal` where the second dimension is high (for example 38400). When we want to synchronize this variable between GPUs, the messages are packed and unpacked...