  The accurate assembly of the system matrix is an important step in any code
that solves partial differential equations on a mesh. We either explicitly set
up a matrix, or we work in a matrix-free environment where we have to be able
to quickly return matrix entries upon demand. Either way, the construction can
become costly due to non-trivial material parameters entering the equations,
multigrid codes requiring cascades of matrices that depend upon each other, or
dynamic adaptive mesh refinement that necessitates the recomputation of matrix
entries or the whole equation system throughout the solve. We propose that
these constructions can be performed concurrently with the multigrid cycles.
Initial geometric matrices and low accuracy integrations kickstart the
multigrid, while improved assembly data is fed to the solver as and when it
becomes available. The time to solution is improved as we eliminate an
expensive preparation phase traditionally delaying the actual computation. We
eliminate algorithmic latency. Furthermore, we desynchronise the assembly from
the solution process. This anarchic increase of the concurrency level improves
the scalability. Assembly routines are notoriously memory- and
bandwidth-demanding. As we work with iteratively improving operator accuracies,
we finally propose the use of a hierarchical, lossy compression scheme such
that the memory footprint is brought down aggressively where the system matrix
entries carry little information or are not yet available with high accuracy.
