JaredCrean2 / Petsc

A fork of the original PETSc repo
Other
0 stars 0 forks source link

Julia 0.6 compat, help wanted? #1

Closed grahamrow closed 6 years ago

grahamrow commented 6 years ago

Greetings! I was sloshing through the original PETSc.jl repo trying to convert everything to Julia 0.6 and decided to check into other branches before continuing that battle. Seems like you've been working to improve the v0.4 functionality on the rewrite branch.

I spent a lot of time regenerating the wrappers with Clang.jl, which required a number of tweaks to rewriter.jl (API changes to Clang I presume?).

Want any help on the 0.6 front? Is this of any use to you?

JaredCrean2 commented 6 years ago

Hello,

At this point there are two forks of the original Petsc wrappers (this repo). There is PETSc.jl, which attempts to make Petsc fit into Julia's AbstractArray abstraction, and PETSc2.jl, which wraps the Petsc API closely and provides a few convenience functions that operate on Array, SparseMatrixCSC as well as Petsc objects.

The question is where you want to put your effort. As far as I know, no one is maintaining PETSc.jl (I haven't had time, and I am no longer sure Petsc matrices fit into the AbstractArray abstraction without compromising performance and generality). I am maintaining PETSc2.jl (it is used by my research code), but I don't have any plans to expand its capabilities in the near future. I do plan to update PETSc2.jl to a newer version of Julia in the next few months, although I haven't started yet.

In either case, let me know which fork interests you and I can provide more details on what needs to be done.

grahamrow commented 6 years ago

Thanks for the reply. Based on your descriptions I'm more intrigued by the PETSc2 mentality, and would be happy to help on that front pending sufficient bandwidth. I'll eventually be looking to wrap SLEPc, since I need to solve eigenvalue problems (Julia's builtin performance on sparse arrays is pretty abysmal), but figured it would be best to see what's up in the PETSc ecosystem first.

If the main branch on PETSc2.jl is in good shape I'll try it in Julia 0.4 to start, and move discussions over to that repo.

JaredCrean2 commented 6 years ago

I'm more intrigued by the PETSc2 mentality

Excellent, me too.

I'll eventually be looking to wrap SLEPc

Interesting. I don't know much about SLEPc/eigenvalues problems (my work is in numeric solution of partial differential equations). I took a quick look at their documentation, and it looks like it should be possible to pass PETSc objects from Julia to SLEPc in the same way as to PETSc.

If the main branch on PETSc2.jl is in good shape I'll try it in Julia 0.4 to start, and move discussions over to that repo.

The master branch is in good shape. See you over there.