Mention of Julia for the re-implementation of PETSC

I am not sure it is.

In fact, I think that many people here hold the opposite view, ie that various features make Julia is ideal for a user-facing API, with the understanding that “user” in this context means someone who is willing to put together various building blocks to solve numerical problems as part of a program, while preferring to leave the implementation of these blocks to others to the extent possible.

The prevalence of Python comes from history: keep in mind that it is more than 2 decades older than Julia*. Not switching a large existing codebase to another language is a reasonable choice in a lot of cases, but does not necessarily reflect on the relative merits of languages.

3 Likes

Or see Data-exchange Julia-LabView for another use case: Experiment control by LabVIEW, and e.g. signal analysis with Julia.

I and many other people here think that Julia makes a great user facing API, far better than Python. (Maybe not ideal, because of JIT latency, etc. although this is improving greatly). I think Python is an absolutely terrible choice for any position in a scientific computing stack. Maybe I meant “almost no new project” in the measure-theoretic sense. In my experience, essentially everyone mistakenly believes that Python is an ok, or even great, language for scientific computing.

@simonbyrne created Conjugate Gradient for C in Julia.
I haven’t tested it in Windows and haven’t checked the Julia overhead in that case but it is an example.

Are there more like that?
Can anyone write some guidelines on how to optimize such use cases to minimize Julia’s overhead in such modules?

Would you care to elaborate on this? As these are pretty bold statements given the popularity of Python in this context. If “scientific computing” is narrowly defined as “writing code to perform scientific computations” then I would agree with you, but many researchers are using Python as the proverbial “glue language” to build on existing components (regardless of what language those components are developed in). The latter use of Python is where it really shines. I certainly would not consider Julia a better option in that respect.

3 Likes

It is running on Windows:
https://github.com/simonbyrne/libcg/runs/1156215742

2 Likes