<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix"> Hello,<br>
I agree with Matt, all the functions PetscOptions*(...)
pass standard C data types, so Julia can call them directly. For
well written interfaces like Petsc's, I prefer very thin wrappers
that provide as similar a user experience as possible to the
original interface. For the higher level interface, my goal is to
provide abstraction for populating the array but not for creating
it or doing math with it, so there is no violation of the
abstraction by allowing option setting.<br>
<br>
As for typing, I think the wrappers should employ the same
abstract that Petsc itself does and typealias PetscInt,
PetscScalar etc. to the proper Julia types, and use those aliases
for all the wrapper functions. <br>
<br>
To find out the proper sizes, PetscInitialize can be called
with no arguments, and then
PetscDataTypeGetSize(PETSC_TYPE,&sz) can be used to figure
out the required type.<br>
<br>
Patrick, by bitbucket username is jcrean. I'd definitely
like to take a look at your slides. I did some reading about
Julia on PowerPC, and the results aren't good. I think running on
the BG will have to wait for statically compiled Julia. For now,
I am targeting an 1024 core Sandy Bridge cluster with InfiniBand.<br>
<br>
Jared Crean<br>
<br>
On 7/6/2015 9:02 AM, Matthew Knepley wrote:<br>
</div>
<blockquote
cite="mid:CAMYG4Gn-dyn75=HUSj8WM72k8NLRyzakJLSgRGdrtYfgXN1sSQ@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Mon, Jul 6, 2015 at 4:59 AM,
Patrick Sanan <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:patrick.sanan@gmail.com" target="_blank">patrick.sanan@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">I had a couple of brief discussions about
this at Juliacon as well. I think it would be useful,
but there are a couple of things to think about from the
start of any new attempt to do this:
<div>1. As Jack pointed out, one issue is that the PETSc
library must be compiled for a particular precision.
This raises some questions - should several versions
of the library be built to allow for flexibility?</div>
<div>2. An issue with wrapping PETSc is always that the
flexibility of using the PETSc options paradigm is
reduced - how can this be addressed? Could/should an
expert user be able to access the options database
directly, or would this be too much violence to the
wrapper abstraction?</div>
</div>
</blockquote>
<div><br>
</div>
<div>I have never understood why this is an issue. Can't you
just wrap our interface level, and use the options just as
we do? That</div>
<div>is essentially what petsc4py does. What is limiting in
this methodology? On the other hand, requiring specific
types, ala FEniCS,</div>
<div>is very limiting.</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra">
<div class="gmail_quote">On Sat, Jul 4, 2015 at 11:00
PM, Jared Crean <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:jcrean01@gmail.com" target="_blank">jcrean01@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> <big>Hello,<br>
I am a graduate student working on a CFD
code written in Julia, and I am interested in
using Petsc as a linear solver (and possibly for
the non-linear solves as well) for the code. I
discovered the Julia wrapper file Petsc.jl in
Petsc and have updated it to work with the
current version of Julia and the MPI.jl package,
using only MPI for communication (I don't think
Julia's internal parallelism will scale well
enough, at least not in the near future).<br>
<br>
I read the discussion on Github [<a
moz-do-not-send="true"
href="https://github.com/JuliaLang/julia/issues/2645"
target="_blank">https://github.com/JuliaLang/julia/issues/2645</a>],
and it looks like <br>
there currently is not a complete package to
access Petsc from Julia. With your permission,
I would like to use the Petsc.jl file as the
basis for developing a package. My plan is
create a lower level interface that exactly
wraps Petsc functions, and then construct a
higher level interface, probably an object that
is a subtype of Julia's AbstractArray, that
allows users to store values into Petsc vectors
and matrices. I am less interested in
integrating tightly with Julia's existing linear
algebra capabilities than ensuring good
scalability. The purpose of the high level
interface it simple to populate the vector or
matrix.<br>
<br>
What do you think, both about using the
Petsc.jl file and the overall approach?<span><font
color="#888888"><br>
<br>
Jared Crean</font></span></big><br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature">What most experimenters take for
granted before they begin their experiments is infinitely
more interesting than any results to which their experiments
lead.<br>
-- Norbert Wiener</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>