<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">I’m in the process of planning a basic fluids code based on the lattice Boltzmann method (LBM) and would like some input from the petsc user base. All the computation in LBM is local, so parallelization is straightforward and can be simply done in a threaded application; a simple google search yields numerous of simple LBM codes on GitHub. I’d like to possibly use petsc's dmda to facilitate splitting the grid across multiple compute nodes and use a framework like libocca (cuda/opencl/openmp backend) to handle the on-node computation through kernels. In my limited knowledge, it looks like libraries like libCEED do something similar to this. I’ve also looked through a LANL code called Taxila that uses fortran and petsc for LBM, but that doesn’t use kernels.</div><div class=""><br class=""></div><div class="">Is it overkill (or recommended even) to have petsc split the grid across nodes, while the majority of the computation is handled by a cuda/opencl/openmp kernel?</div><div class=""><br class=""></div>Thanks for your input,<div class=""><br class=""><div class="">
<div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;">Sam</div><br class="Apple-interchange-newline">
</div>
<br class=""></div></body></html>