-
Notifications
You must be signed in to change notification settings - Fork 22
PartitionedArrays v0.2 ‐ v0.3 caveats
WIP ...
-
[WARNING PArrays v0.3] In a number of different scenarios, the user is required to pass
partition(::PRange)as an argument to a function, e.g.,PVector(...,partition(gids)). In many of these scenarios (if not all), there is no type annotation in the function header, so that one may passgidsinstead ofpartition(gids)as an argument in the function call. This causes errors which are hard to relate with the cause of the problem itself, and one has to be quite sharp to understand the problem from the error message. -
AbstractPDatabecomesAbstractArray. Two subtypes ofAbstractArray:MPIArrayandDebugArray -
AbstractIndexSetbecomesAbstractLocalIndices. Much more than a renaming. A refactoring of responsibilities. -
Exchangerno longer exists. Part ofExchangeris inExchangeGraph, the other parts are in the subtypes ofAbstractLocalIndices, in the so-called,AssemblyCachetypes. -
TablebecomesJaggedArray. No longer naming clashes withGridap.Table. -
map_partsbecomesmap. -
To return a tuple of
MPIArrays (orDebugArrays) the output ofmaphas to be redirected to thetuple_of_arraysfunction.
a,b=map(...) do
a,b
end |> tuple_of_arrays-
Run functions are now called
with_debug()andwith_mpi(). The number of parts has to be hard-coded in the function that each part calls. -
Had to add functions
fetch_ghost_values_cacheandfetch_ghost_values!to GridapDistributed because exchange! in PArrays no longer provides the previous functionality. These functions can be waived usingPVectors all the way through. TO-THINK which is more appropriate on a case-by-case basis. -
fetch_ghost_values!returns a JuliaTask, not anAbstractPDataofTasks (as with PArrays v0.2) -
PVectorconstructors have changed quite a bit:- The constructors no longer use
PRangesas inputs, usepartition(PRange)instead. -
PVector(scalar,ids)no longer exists, usepfill(scalar,ids)instead.
- The constructors no longer use