Replies: 5 comments 26 replies
-
Assuming you're referring to Or do you mean trying to use |
Beta Was this translation helpful? Give feedback.
-
Computing shape functions for quadrature points on reference coordinate does not need to be on GPU, but the problem is their transformation to the physical coordinate of each element. Also, shape functions are not necessarily computed for quadrature points, but they can be computed for arbitrary points in MOOSE, so we were wondering if we could take advantage from libCEED capabilities. Probably |
Beta Was this translation helpful? Give feedback.
-
A couple reasons i feel for keeping native MOOSE q-functions (what we call kernels in MOOSE) as opposed to going whole-hog into libCEED:
I will demonstrate my complete ignorance and ask is it silly to do full matrix assembly on device just to copy the memory to host for the linear solve depending on the PC? In which case we might as well just focus on matrix-free for GPU and go 100% with libCEED? Or is the matrix-free focus of libCEED based more on the focus on high order finite element methods? @NamjaeChoi talked about evaluating shapes based on inverse mapping from physical point location. We do that for DG methods when evaluating the shape functions for neighbor elements. That’s also central in our contact methods. Does libCEED support trace space bases for e.g. HDG methods? |
Beta Was this translation helpful? Give feedback.
-
I am starting a new sub-thread so as not to divert previous discussion. I am a user of the MOOSE solid mechanics module. The types of material we work with all involve some form of plasticity, and so I am most interested in what the p-mutligrid AMG preconditioner can bring to us for such problems. In terms of scalability, we've had the best luck with Hypre so far. The benchmark we've run is remarkably similar to the Schwarz Primitive example as described in the arXiv paper. The major difference is that our material is hyperelastic-plastic with linear elements. In our benchmark, the linear solve (with Hypre as the preconditioner) very quickly becomes the bottleneck. Therefore, I am interested in learning how the performance improvements (as illustrated in the arXiv paper) carry over to plasticity problems, or more generally how libCEED can help in our applications. |
Beta Was this translation helpful? Give feedback.
-
I presume if we are using a nonlinear solution method like Newton, that the matrix-free approach of libCEED is more efficient than the matrix-free approach where J or its action can be approximated via finite differencing residual evaluations? It certainly has the advantage of not being sensitive to a differencing parameter, which can be very difficult to select for multiphysics problems whose function may be more noisy for some physics than others |
Beta Was this translation helpful? Give feedback.
-
We have spent the past few months evaluating different means to enable GPU acceleration for MOOSE. @NamjaeChoi has done some really great work writing MOOSE kernels using static polymorphism where before we used run-time virtuals for computing quadrature-point residuals and Jacobians. These "GPU" kernels appear very similar to our traditional "CPU" kernels which would be ideal as our application developers will need to understand what changes they need to make to enable their applications to run on GPU. As a note, he has been writing the GPU kernels with the help of kokkos so that we can support various backends.
Currently he is evaluating our finite element shape functions on CPU using our traditional finite element backend libMesh. However, if we can avoid having to rewrite/abstract our shape function evaluation routines in libMesh, that would be ideal. So we are wondering whether it could make sense for us to use libCEED for basis function evaluation and then pull its
CeedVector
data into our kokkos kernels? I don't know if anyone has considered using libCEED in such a piecemeal way. We are constantly developing our migration plan. I'm happy to share more thoughts/ideas/info to expand the discussion or provide clarification (on what feels like it's been a ramble/stream-of-consciousness)@MengnanLi91 FYI
Beta Was this translation helpful? Give feedback.
All reactions