[petsc-dev] PETSc future starting as a new design layer that runs on top of PETSc 3?
Justin Chang
jychang48 at gmail.com
Wed Jul 27 11:29:22 CDT 2022
FWIW, vendors have poured a lot of effort into making C++ the industry
standard for HPC, and it will remain that way for a very long time.
Switching PETSc to a non-C/C++/Python/Fortran language today while still
enabling GPU/accelerated computing could get ugly from a code
implementation perspective.
Not saying you shouldn't consider other languages, but if we want the most
seamless GPU experience then C++ is still the most pragmatic choice today
and for the foreseeable future. And it could become even more important on
tomorrow’s heterogeneous hardware architectures.
On Tue, Jul 26, 2022 at 11:09 AM Barry Smith <bsmith at petsc.dev> wrote:
>
>
> On Jul 26, 2022, at 11:30 AM, Jed Brown <jed at jedbrown.org> wrote:
>
> These ownership patterns need to be addressed for reliable interfaces in
> any language, the compiler just forces you to do it (or use the unsafe
> escape hatch) in Rust.
>
> I think it's necessary in any incremental porting effort for "old" code to
> call "new" code, due to the nature of our composition and callbacks.
>
>
> I would need to see some use cases of this to be convinced.
>
>
> On Tue, Jul 26, 2022, at 8:17 AM, Jeremy L Thompson wrote:
>
> I feel like someone has to mention the possibility of Rust.
>
> In libCEED, we've found the FFI to C fairly painless. We made some
> improvements on the core C code of libCEED to facilitate Rust error
> handling and data ownership.
>
> From various prototyping we've done in Jed's group, I think the more
> complex data ownership used in PETSc (as compared to libCEED) is one of the
> more complex issues that would need to be planned out for a Rust focused
> interface.
> On 7/25/22 15:34, Barry Smith wrote:
>
>
> A major problem with writing a completely new version of a large code
> base is that one has to start with nothing and slowly build up to
> everything, which can take years. Years in which you need to continue to
> maintain the old version, people want to continue to add functionality to
> the old version, and people want to continue to use the old version because
> the new version doesn't have "the functionality the user needs" ready yet.
>
> Is there an approach where we can have a new PETSc API/language/paradigm
> but start with a very thin layer on the current API so it just works from
> day one?
>
> - to this would seem to require if PETSc future is not in C, there has
> to be a very, very easy way and low error-prone way to wrap PETSc current
> to be called from the new language. For example, how petsc4py wraps seems
> too manual and too error-prone. C++ can easily and low-error prone call C,
> any other viable candidates?
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20220727/74d56340/attachment.html>
More information about the petsc-dev
mailing list