[petsc-dev] How long?

Jed Brown jed at jedbrown.org
Mon Mar 11 22:18:03 CDT 2019


It's a solvable problem so long as compute nodes can execute preferred
compilers (which for Julia, means LLVM).  Current precompilation support
can get you much of the way.  Julia has run at large scale.  It required
some customization, but most of that work generalizes.

  https://juliacomputing.com/case-studies/celeste.html

Writing a PETSc replacement in Julia would, unfortunately, make it
harder to use for all the non-Julia libraries and applications out
there.  One of my interests in Rust is that it's possible to write
libraries with C interfaces such that the user need not know what
language(s) the library is implemented in.

One thing I've been thinking about lately is how to write parallel
libraries that can be cleanly interrupted.  This is very common in
interactive workflows.  One could adopt a strictly process-based
approach with clever use of shared memory to manage IO costs, but that
makes assumptions about the environment.  Much better would be for the
library itself to be able to handle and propagate interrupt requests so
as to return in a consistent state without leaks.  I don't feel like
that is a (maintainably) tractable problem when working in C.


More information about the petsc-dev mailing list