►
From YouTube: SimPEG Meeting, August 23rd, 2023
Description
Weekly SimPEG meeting from August 23rd.
A discussion on solvers and bringing back MUMPS.
A
A
B
I'm
Joe
Capriati
I
I
was
working
as
a
UBC
for
a
while
postdoc
us,
not
simpack
development,
now
I'm
down
at
not
at
mines
as
a
research
associate
still
involved
with
syntag
as
much
as
I
can
so
I
still
kind
of
you
know
doing
a
bunch
of
support,
request,
review
than
I
can
and
going
in
there
so
interacted
with
you
a
bit
on
there
on
your
pull
request
you
already
put
in
yeah.
D
Yeah,
my
name
is
Devin
Cowan
nice
to
meet
Matt
yeah
I
have
I
wear
a
lot
of
hats,
I'm
doing
simpeg
development.
One
of
the
things
I'm
active
in
is
trying
to
build
up
all
the
user.
D
Tutorials
makes
it
a
little
bit
easier
for
new
users
spending
a
lot
of
my
time
right
now,
working
on
some
of
these
new
natural
source
systems
like
qamt
and
mobile
Mt,
and
then
also
some
plate
modeling
and
how
we
are
going
to
do
that
for
time,
domain
problems
working
with
tetrahedral
meshes
and
that
kind
of
stuff,
so
a
little
bit
all
over
the
place.
E
Yeah
so
TiVo
data,
scientist
and
geophysics
with
a
with
a
Cobalt
so
working
with
Matt,
and
we
like
I'm,
very
happy
to
see
all
these
very
dedicated
work
at
all
level,
with
primer
servers.
Getting
pushed
to
the
open
source.
F
H
Hello
I'm
Dom
I'm
in
Vancouver
I.
We
used
to
be
at
UBC
too
not
marriage
of
science
as
a
scientific
programmer
and
I'm
all
over.
Whatever
code
Improvement,
we
can
do
to
send
Peg
yeah.
It.
A
G
Hi
Kalyn
Martens
thanks
Lindsay
I
work
for
SJ
geophysics
at
our
company,
we're
interested
in
doing
large,
loop,
em
and
Mt
for
starters
at
least
and
IP
inversions.
So
that's
why
we're
interested
in
synthetic.
I
Yeah
so
I'm
not
plume
a
software
engineer
at
Coble,
metals
and
I
work
with
Tebow
and
I've,
been
in
addition
to
a
lot
of
the
the
kind
of
machine
learning
work
that
I've
been
doing.
I
I
do
a
lot
with
our
compute
infrastructure
so
trying
to
make
things
faster,
and
so
a
lot
of
the
work
that
I've
ended
up
doing
lately
has
been
with
accelerating
our
geophysical
inversions
and
trying
to
figure
out
various
ways
to
to
support
various
architectures,
as
well
as
making
the
inversions
run
as
fast
as
possible.
A
I'm
thrilled
to
have
you
here,
I'm
Lindsey,
Hagee
I'm,
an
assistant
professor
at
UBC,
and
been
involved
in
simpig
for
quite
a
while
at
this
point,
but
yeah
I
mean
so
normally
we
start
I,
don't
know
if
anybody
has
any
quick
announcements
or
things
to
bring
up
for
the
group,
and
then
we
can
perhaps
hand
the
floor
over
to
Matt.
A
30.
excellent
and
then
John
cut
I
will
be
pinging,
some
of
you
for
a
newsletter
updates
because
we'd
like
to
get
that
out
in
the
next
week
or
so
so,
please
I
get
back
to
him.
If
there's
anything
you'd
like
to
share
in
that
and
feel
free
to
Ping.
If
there's
things
you
would
like
to
include
like
a
new
pull
request
with
mumps,
so
Matt
yeah,
please
take
it
away.
I
Certainly
I
have
some
material
I
can
share
here.
I'll
go
ahead
and
share.
My
screen
looks
like
got
a
participant
screen.
Sharing
is
disabled.
I
Looks
like
it's
working
all
right,
so
the
first
thing
that
I'd
like
to
share
here
so
I
have
a
set
of
benchmarks
that
I've
run
recently.
We
do
a
lot
of
work
in
the
cloud
we
run
on
AWS
and
Tebow,
put
together
a
small
forward
simulation
Benchmark
for
us
to
be
sort
of
comparing
performance
across
instance,
types
and
so
I
just
wanted
to
show
some
of
the
the
variability
of
performance
across
instance
types
as
well
as
the
effects
of
solver
Ops,
and
so
we
can
see
here.
I
You
know,
we've
got
our
our
Baseline
party,
so
with
you
know
as
part
of
mkl,
and
then
we
have
the
mob
solver
that
we've
been
using
at
kobold
for
probably
the
last
year
or
so,
as
we've
been
using
our
our
M1
and
other
Apple
silicon
machines,
and
so
the
the
months.
Software
right
now
is
not
as
performance
as
the
as
partiso,
at
least
in
in
Cloud
usage,
but
it
has
allowed
us
to
do
local
development
on
M1
laptops.
I
I'll
show
some
benchmarks
also
run
on
my
my
M1,
and
so
we
can
see
here
that
you
know
the
the
solver
Ops
if
we're
hinting
to
either
Paradiso
or
mumps,
that
we
are
dealing
with
a
symmetric
or
SPD
Matrix
that
we
see
you
know
significant
performance
increases
in
both
cases.
I
The
months
pull
requests
that
I
have
up
right
now,
standardizes
the
attributes
across
both
of
these
solvers
that
you
can
specify
the
same
solver
Ops
for
both
of
these,
as
well
as
standardizing
the
behavior
of
those
solver
Ops.
So
previously,
when
you,
when
you
were
hinting
to
the
mumps
solver,
that
a
symmetric
Matrix
was
in
use,
it
was
actually
treating
that
Matrix
as
hermitian
and
that's
different
from
the
way
that
our
other
solvers
are
working.
I
I
also
have,
in
the
months
PR
the
capability
to
deal
with
hermesian
matrices,
but
that's
through
additional
means,
where
you
know
in
in
side,
in
yeah,
in
scipy's,
sparse
matrices,
there's
the
dot
T
attribute,
which
is
a
transpose
and
then
there's
the
dot
conjugate
method
which
allows
you
to
take
the
con,
complex,
kanji
and
so
dot
T
dot
kanji.
It
is
how
to
how
to
deal
with
that
kind
of
stuff.
A
I
I
I
If
we
need
to,
we
need
to
up
the
memory,
we
can
generally
use
a
larger
instance
up
to
a
you
know,
a
certain
one
that
at
which
point
I
think
there's
going
to
be
out
of
core
kind
of
stuff
that
we
would
need
to
be
doing.
You
know,
but
that's
not
something.
We've
looked.
B
I
I
I,
don't
have
quantitative
numbers
for
this.
I
do
have
qualitative
painful.
I
I
I
I
These
Cloud
numbers
are
also
hobbled
at
this
point
by
a
task
related
issue,
so
the
environment
management
for
all
of
those
numbers
I
ran
using
basically
a
these
spin
up
Das
clusters
under
the
hood,
and
it
seems
like
one
dask-
is
involved
at
this
point.
Things
run
slower
with
both
parties
so
and
mumps,
but
this
was
not
an
issue
that
I
could
reproduce
with
the
the
super
Lu
solver.
I
I
So
taking
a
look
at
these
numbers
here,
we're
seeing
this
is
actually
pretty
similar
to
what
we
would
be
seeing
on
a
local
Apple,
Intel
machine
and
I.
Think
I've
got
an
I9
here,
so
it
it
does
pretty
well,
and
we
can
also
see
that
supplying
various
hints
to
this
simulation
increases
performance.
So
I
want
to.
E
G
I
These
hence
kind
of
standard
and
also
available.
H
I
The
the
instance
architecture
here
so
these
are
x8664.
So,
for
example,
an
r6a
is
an
R6
yeah.
So
R
is
memory,
optimized
AWS
instances,
it's
a
sixth
generation
and
it's
an
AMD
processor,
the
arm
processors
here,
our
aws's
graviton
processors,
so
images
that
are
that
are
built
for
those
will
work
with
the
with
the
M1
as
well.
I
G
I
M1
here
so
we've
got
the
the
three
numbers
that
we're
looking
at
are
unsymmetric
symmetric
and
SPD,
and
we
can
see
here
that
the
corresponding
numbers
on
M1
unsymmetric,
you
know,
we've
got
and
then
symmetric
and
symmetric,
positive,
definite,
but
I
would
expect
that
these
numbers
will
go
down
as
we
deal
with
that
Das
related
issue
which
I
have
not
been
able
to
chase
down.
A
C
I
The
effect
of
the
changes
is
making
making
it
possible
to
run
months
in
a
standardized
way.
You
know
on
instances
where
we
can
already
run
party
so,
but
also
extending
our
capability
to
to
arm
instances
standardizing
the
interface
between
the
two
so
that
the
same
solver
Ops
can
be
used
there.
I
There's
kind
of
two
different
sets
of
changes.
One
of
them
is
ready,
for.
One
of
them
is
ready
for
review,
which
is
what's
in
this
PR
and
then
the
next
one
is
not
ready
for
review
and
that's
how
do
we
package
this
properly
so
right
now,
Pi
map
solver
as
it
stands,
we'll
take
a
look
at
at
the
main
branch.
I
Here
we
have
this
month's
interface,
that's
slightly
shimmed
out
this
interface
Works
and
we've
been
using
it
at
kobold
for
the
last
year
or
so,
but
something
that
could
use
some
could
use
some
love
and
care,
and
that's
what
I've
done
here,
but
then
kind
of
the
next
step
after
this
and
Joe
and
I
were
were
discussing
this
kind
of
Next
Step
in
some
of
the
pr
comments
here
is:
how
do
we
make
this
available
and
it
seems
like
there
are
a
couple
of
different
problems
that
we
would
want
to
see
so
right
now
we
have
a
Fortran
interface
and
that's
something
that's
going
to
get
kind
of
tricky
to
support,
especially
with
the
the
deprecation
and
removal
of
this
utils
there's
some
complications
with
numpy
disc
utils,
which
is
the
standard
way
that
F2
Pi,
I'm,
sorry,
F2,
Pi
extensions,
get
built,
and
so
F2
Pi
is
a
tool.
I
That's
used
to
take
this
kind
of
you
know
this
kind
of
Trend
interface
here
and
make
it
into
something
that
python
can
understand.
Mumps
also
has
a
c
interface
and
cython
is
a
great
way
to
write
a
python
code
that
needs
to
talk
to
C
padiso
already.
I
Does
this
and
a
cython
extension
is
probably
going
to
be
the
future
here,
so
porting
porting,
this
month's
interface
to
cython
that
could
live
inside
pymat
solver
or
it
can
be
broken
out
into
something
like
something
like
Heidi,
so
I
think
that
what
we
have
right
here
as
far
as
this
packaging.
G
I
I
This
is
good
enough
for
our
use
at
kobold
metals,
because
we
have
very
tight
control
over
our
environment,
but
what
ends
up
happening
with
this
branch
and
why
this
is
not
included
with
these
changes
here.
Is
this
Branch
modifies,
pymat
solver
in
such
a
way
that
if
mumps
was
not
available
on
your
system,
pymat
solver
could
not
be
installed.
That's
not
releasable,
that's
great
for
us,
and
it
leads
to
this
kind
of
benchmarking
capability
and
really
solid
results
on
that
one.
I
But
this
would
be
the
next
step
of
going.
Okay,
we've
got,
we've
got
a
you
know.
Some
love
and
care
applied
to
you
know
months,
leaving
the
packaging
status
quo
as
it
is
where
someone
would
need
to
kind
of
DIY
the
installation,
The
Next
Step
would
be
taking
this
packaging
capability
and
making
it
into
something
that
you
know
we
can
release
the
world
as
this
is
how
to
this
is
how
to
use
pymat
solver
and
have
mumps
available.
I
It
would
be
great
to
be
able
to
interface
with
the
version
of
months
on
conda.
That
would
be,
you
know,
can't
install
mumps,
can't
install
pymat,
solver
and
you're
good
to
go.
There
might
be
an
intermediate
package
that
we
would
do
where
we
would
have.
You
know
you
know,
I,
don't
know
what
it
would
be,
what
it
would
be
called.
I
It
would
be
some
sort
of
mumps
interface
I'm,
hesitant
to
try
to
do
anything
with
the
existing
kind
of
Open
Source
mumps
interfaces,
because
they've
been
dormant
for
so
long
and
because
our
months
interface
needs
are
so
limited,
there's
very
little
that
we
actually
need
to
do
so.
We
don't
need
a
general
purpose,
interface
to
all
or
months
capabilities.
We
can
get.
You
know
future
parity
with
party
so
with
a
very,
very
small
amount
of
blue
code.
I
So
we
could
do
that
months,
interface,
ourselves
and
maintain
that,
in
the
same
way
that
Heidi
cell
is
maintained,
that's
probably
the
the
most
pragmatic
way
to
do
it,
and
if
someone
decides
later
that
they
write
an
excellent
and
well-maintained
mumps
interface,
we
can
then
try
Transitions
and
that.
B
B
B
G
B
Been
definitely
interested
in
month,
stuff
for
a
while
that
just
haven't
had
the
time
to
sit
down
and
play
with
it,
because
I
should
have
probably
have
a
little
bit
more
time
coming
up
soon
supposed
to
be
getting
a
new
Apple
silicon
process.
Machine.
So
I'll
have
a
use
to
doing
this
and
I
think
I
already
mentioned
also
mentioned
on
there.
That
I
had
already
played
around
a
little
bit
at
my
own
computer
with
the
Apple
solver
as
well,
not
sure
if
you
ever
get
a
chance
to
do
that.
I
I
have
looked
at,
I,
did
look
at
umf
hack
as
a
potential
under
sparse
solver,
but
the
performance
that
I
was
getting
was
nowhere
near
mumps.
B
Yeah,
so
it's
like
there's
a
few
things:
did
you
try
any
of
the
like,
specifically
the
chill
mod
solvers.
I
I
have
him
on
my
radar,
but
I
have
not
tried
them.
The
really
nice
thing
with
umash
pack
was
there's
a
package
called
scikit,
umf
pack
and
I
just
wrap
direct
umf
pack
and
I
had
a
solver
that
I
could
use
so
the
the
wrap
direct
stuff
that
lives
in
in
solvers.pi.
Here
that's
the
worst
and
it
made
it
very
quick
to
try
umf
pack.
Unfortunately,
the
the
results
were
were
not
great,
so
I
was
I
was
really
happy
that
it
was
so
easy
to
to
wrap
that
solver.
B
Yeah,
there's
a
there's
a
good
chill
like
tool
mods
so
like
psychic,
sparse,
I
think
that
interfaces
with
chill
mod,
pretty
well
I
mean
that
part
of
that
means.
You
can
only
do
you
know
chilesky
factorizations,
those.
G
B
Pretty
fast
things
to
do,
as
you
see
from
like
just
taking
advantage
of
that
is
symmetric,
is
positive,
definite
on
the
on
the
solvers
there.
The
there
I
I
I've
looked
into
a
bunch
of
different
solvers
myself,
and
it's
just
like
okay.
Well,
most
of
the
things
that
we
were
doing
producer
was
working
pretty
well,
but
now
that
we're
moving
on
to
this
stuff,
it
definitely
makes
sense
to
start
getting
back
into
these
other
solvers.
I
B
Yeah
I
think
the
only
issue
with
months
is
that
it's
not
is
easily
installable
on
Windows,
like
you
can't
get
all
the
features
on
it
was
like
I,
don't
think,
there's
an
MPI.
You
can't
do
a
bunch
of
the
reordering
heuristics
on
Windows
yeah
like
it
works.
It
still
works.
E
B
I
I
They
worked
differently
for
the
months
solver,
and
so
now
what
you
can
do
is
taking
a
look
at
the
at
the
Benchmark
itself.
We
can
read
this
Benchmark
code.
We
can
see
here
that
you
know
okay,
which
solver
do
you
want,
and
so
now
you
know
if
solver
is
part
easier,
solvers
months,
you
know
we
we
import
the
the
correct
thing,
but
then
we
don't
have
to
use
different
solver
options
for
different
solvers
and
the
the
solver
object.
Behavior
is
also
standardized.
B
One
of
the
things
that
I
was
that
I'd
like
to
do
where
we
should
probably
put
up
a
issue
on
Sim
pack
itself
is
to
make
use
of
these
flags
and
more
of
the
simulations
than
they
are,
at
least
by
setting
them
default
flags.
For
some
of
these
things,
because
most
of
the
systems
that
we
do,
we
should
know
whether
they're
you
know
positive
depth
or
symmetric
I.
E
Like
I,
like
as
I
said,
we've
already
switched
us
to
that
branch
of
Biomat
solver,
so
I'm,
actually
using
like
it's
very
nice,
with
the
servers
too,
like
that
you
can
set
the
server
option
on
the
simulation
object.
So
it's
just
like
a
simulation
dot,
solver
option
and
you
specify
that
it's
symmetric
and
positive,
definite
and
with
a
single
line
of
code
in
Simplex.
You
end
up
with
15
20
percent
speed
increase,
which
is
very
nice.
Oh.
B
E
Oh
yeah,
100
that
we
should.
We
should
go
at
some
point
as
default
within
the
syntax
simulation
object,
but
it's
I
just
wanted
to
emphasize
that
it's
a
very
it's
a
it's
a
one-liner.
I
I
B
I
One
thing
that
we're
doing
right
now
is
we're
running
a
lot
of
simulations
like
we're
running
an
ensemble
of
simulations,
and
then
we
would
run
simulations
across
a
lot
of
machines
and
what
I've
found-
and
this
is
very
very
confusing
for
me-
is
that
if
I
have,
if
I
have
a
piece
of
code
that
you
know,
let's
say,
I
I
break
this
simulation
out
into
you,
know
simulation.py
and
then
I
have
a
piece
of
code
that
either
you
know,
bronza
you
know,
starts
up
a
dash
cluster
and
then
submits
this
simulation
function.
I
To
that
dos
cluster
I
see
the
simulation
run
slower
there
I
also
see
the
simulation
run
slower
if
I
create
a
Das
cluster,
do
absolutely
nothing
with
it
and
then
do
a
sub
process
run
of
a
simulation.pi
that
just
has
the
stimulation
in
it.
It's
like.
No,
that
should
have
absolutely
no
awareness
of
the
Das
cluster.
It's
a
very
deeply
confusing
issue
for
me.
B
I
And
I
tried
reproducing
it
it's
reproducible
with
both
the
producer
and
lump
solvers
I,
took
a
simulation
and
vastly
reduced
the
number
of
time,
steps
in
it
and
tried
reproducing
it
with
the
super
Lu
solver
just
to
see
if
I
could
have
something
minimally
reproducible
that
I
could
send
to
somebody
else.
Like
hey,
you
don't
have
to
install
this
software,
you
can
install
syntag
and
then
off
you
go
with
this
reproducer
I
couldn't
reproduce
it
that
way.
So
I
sort
of
said
I'll
leave
that
one
for
later,
but.
B
B
I
Just
no,
it's
an
idle
desk
cluster.
It's
just
sitting
there,
so
it's
yeah
I,
don't
understand
why
it's
happening.
I'd
love
to
get
to
the
bottom
of
it.
B
Client,
not
the
client,
the
thing
that
controls
the
clients,
the
scheduler,
sure
there's
a
scheduler
there's
but
there's
a
there's,
a
main
there's
a
thread
that
has
like
say
it's
running
on
the
main
machine.
And
then
you,
when
you
start
at
the
distribution
or
this
like
a
bunch
of
Das
clusters,
there's
one
that
specifically.
G
I
Lu
is
one
of
the
rap
solvers.
It's
the
Sci-Fi,
sparse,
solver
and.
B
E
B
And
I
know
they've
been
trying
to
update
it
to
more
recent
versions,
but
there's
it's
been
struggling
on
condo
Forge.
There
are
a
few
pull
requests
on
the
feedstock
to
update
it
to
more
recent
versions,
but
they're
none
of
them
have
passed
so
there's
a
there's
like
a
mumps
MPI,
there's
a
month
sequential
there's,
two
kind
of
there's
those
two
got
packages
yeah.
I
A
really
nice
C
make
set
of
set
of
cmank
files
called
Psy
Vision,
slash,
Mouse,
and
that
has
been
very,
very
useful
for
getting
mobs
compiled
and
built
with
various
options.
The
options
changed
a
little
bit
from
five
five
to
five
six,
so
that
was
sort
of.
I
Yeah,
all
of
the
all
of
the
work
that
we've
been
doing
has
been
with
the
you
know,
sequential
months,
which
sequentials
not
the
greatest.
I
It
uses
both
open,
Blossom,
openmp
threading,
it
just
doesn't
run
NPI
and
that
you
know
gives
us
feature
parity
with
parties.
So
now
it
would
be
really
nice.
If
you
know
we
could
improve
kind
of.
You
know
that
single
threaded
performance
as
much
as
possible,
because
you
know
if
we
throw
more
machines
at
something,
then
that
you
know
the
cost
just
balloons
in
order
to
so
efficiency
in
the
kind
of
single
threaded
case
has
been
something
that
we've
been
trying
to
pay
attention
to.
A
Well,
this
is
really
exciting
Matt,
as
you
can
see
ourselves
kind
of
laughing
as
you
pulled
up
the
mumps,
the
Fortran
code,
and
you
can
see
and
get
it's
seven.
A
Last
touch
so
I'm
really
excited
you're
pushing
on
pushing
on
this
I
guess
I
know:
you've
been
chatting
a
bit
with
Joe
on
the
pull
request.
What
do
you
both
sort
of
see
as
as
next
steps
here.
B
And
like
looking
at
the
forecast,
I'm
happy
to
take
that
in
so
at
least,
if
somebody
can,
you
know,
get
mumps
working.
If
somebody
can
install
it
like
the
option
is
still
there
and
I
like
I,
see
what
you've
done
with
the
Polar
Express.
It
looks
good
it's
hard
to
bring
up
the
teacher
parody.
So
if
we
can,
if
someone
can
install
it
with
that
Bare
Bones
interface,
that's
there
right
now,
that's
fine!
We
can
figure
out
distribution
and
how
to
do
all
those
other
steps
I
think
later,
but
that's
kind
of
what
I
see.
I
I
That
for
a
year
it
works
great,
at
least
in
in
our
use
case.
It
doesn't
look
like
writing.
The
side
bomb
will
be
that
difficult,
especially
with
the
Precedence
of
Pi
Diesel,
and
then
a
couple
of
the
other
mumps
interfaces.
They're.
Just
like
it's
like
there's
some
annoying
C
versus
Fortran,
things
of
like
there's
I
can
tell
thing
and
they're
one
base
versus
zero
base.
So
Mom
says
Hey
Define
these
macros
and
you'll
be
throtted.
I
One
of
the
things
that
I
did
was
I
moved
that
conjugate
option
that
was
in
Fortran
out
to
a
numpy
conjugate
call
to
reduce
the
amount
of
C
kind
of
stuff
that
we
would
need
to
do
so.
I
think
it's
going
to
be
a
fairly
tedious,
but
not
difficult
right.
I
H
I
Break
that
out,
I
would
be
happy
to
do
either
way,
whichever
one
is
easier.
I'm
just
wondering
about
you,
know,
integration
kind
of
stuff
of
you
know
how.
How
straightforward
is
it
to
to
do
the
kind
of
integration
testing
of
all
of
the
pieces
and
have
someone
be?
You
know,
have
really
high
assurance
that
the
mumps
extension
is
working.
That
would
be
one
argument
in
favor
of
keeping
it
in
there,
but
we
can
look
at.
We
can
look
at
other
options
as
well.
F
E
B
B
B
B
B
A
I
I
But
if
the
stub
is
there,
then
I
think
it
would
be
a
matter
of
submitting
PR's
to
that
stub.
So
get
the
get
the
get
the
infrastructure
in
place
sort
of
in
a
minimal
way.
That
makes
it
easy
to
to
contribute,
because
it
sounds
like
Joe.
You
might
have
some
time
coming
up
soon.
I
I
might
have
some
time
kind
of
soon,
but
if
we've
got
the
we've
got
the
place
for
it,
then
it's
it's
one,
fewer
thing
that
we
need
to
do
and
it
would
probably
be
pretty
quick
to
at
least
set
the
place
up.
I
B
G
D
Yeah
I
have
something
that's,
maybe
somewhat
related,
so
I
mean
I'm
I'm,
also
working
on
large
loop
time
domain,
em
stuff
I'm,
also
wanting
to
implement
the
B
field,
I'm,
currently
working
on
solving
this
problem
on
a
tetrahedral
mesh
and
I'm,
putting
conductances
on
the
faces
so
that
you
can
do
plate
light
structures,
so
I'm,
not
sure
if
Tebow's
mentioned,
but
we're
we're
working
on
some
very
similar
problems
and
one
of
the
issues
that
I
have
maybe
I'll
you
mind
if
I
screen
share
a
little
bit
of
math,
but
it
should
be
okay
and
it
sort
of
comes
up
if
you
wanted
to
use
the
B
formulation
on
a
tetrahedral
mesh.
D
This
is
basically
this
is
the
system
that
you
have
to
solve
at
each
time
step
and
you
end
up
having
in
your
system
the
inverse
of
one
of
these
Mass
matrices
and
when
you
have
a
mesh,
that's
like
a
tensor
mesh
or
a
tree
mesh.
This
is
diagonal,
so
taking
the
inverse
of
it
is
Trivial.
D
If
you
have
an
unstructured
mesh,
it's
no
longer
diagonal,
and
so
it's
in
a
way
it's
kind
of
like
you
have
to
do
a
solve
within
your
solve
and
I'm
sort
of
look
just
kind
of
looking
for
ways
that
I'm
going
to
attach
attack
this
like.
Can
you
can
you
define
this
using
the
Paradiso
solver
and
then
Define
a
using
a
partiso
solver
in
sort
of
a
nested
way
and
have
it
work
out
these
kinds
of
things
so.
B
D
D
Yeah
well,
if
you're
going
to
at
least
for
what
I'm
doing,
if
you're
going
to
model
dbdt,
then
you
use
the
e-formulation
no
problem.
If
you
want
to
solve
in
terms
of
the
magnetic
fields,
then
I
mean
I
haven't
looked
at
the
H
formulation,
and
maybe
you
can
use
that
for
non,
not
having
conductances.
But
if
you
have
a
conductance,
you're
kind
of
stuck
with
Eon
edges
and
B
on
faces,
and
you
wind
up
with
this.
A
It's
something
we
should
try,
though
I
mean
we
should
have
the
option
to
at
least
have
a
sense
of
what
the
accuracy
is,
and
you
know
there
might
be
a
lot
of
settings
where
that
works
works.
Just
fine.
E
B
D
B
H
I'm
gonna
ask
you
a
question
Matt
just
circle
back
to
to
direct
solvers,
it's
it's
kind
of
like
a
anecdotal
observation
and
I
I
wish
John
was
here,
but
he
experimented
a
lot
with
Paradiso
and
he
if
I
recall,
he
observed
that
parisu
is
eventually
getting
to
like
a
saturation
point
or
even,
if
you
give
more
threads,
it
was
actually
not
necessary.
H
Solving
the
problem
faster
I
would
be
curious
to
know
if,
if
you
experimented
with
it
or
if
moms
you
know,
if
moms
could
has
this
at
the
same
time,
if
you
have
a
first
If
You
observe
that
then
second
does
mom
has
a
work
around
this
yeah.
E
I
was
just
gonna
say
personally,
I
don't
have
numbers,
but
I
have
observed
that
parties
or
past,
like
I,
think
even
like
things
yeah
like
48,
was
kind
of
the
maximum
thing.
I
was
getting,
but
even
before
that,
like
the
difference
between,
for
example,
32
to
48
CPUs
was
minimal,
like
it
was
kind
of
like
an
asymptote
and
plus
48
I
had
nothing
no
gain
at
all,
but
that's
just
a
personal
observation.
I
don't
have
numbers,
so
we
met
yeah.
I
I,
have
some
I
have
some
numbers
that
I
can
share
here.
So
this
was
a
another
Benchmark
here.
I
E
I
Know
32
times
more
threads
doesn't
mean
32
times
faster,
it's
barely
two
times
faster
and
then
you
know
we
we
see
a
similar
kind
of
you
know
similar
kind
of
saturation
here
so
going
from
going
from
one
thread
on
this
x8664
to
32
threads.
I
I
I
Is
the
same
Benchmark
I
think
this
was,
let
me
get
you
the
exactly.
What
was
timed
there
I'm
gonna
unshare
and
see
what
kind
of?
Because
you
don't
want
to
watch
me
explode
file
system.
H
That
would
be
pretty
disappointing
if,
if
putting
12
threads
is
not
at
least
you
know
much
faster
than
single
thread.
Yeah.
I
Here
we
go
again,
this
was
so.
This
is
the
the.
What
exactly
is
timed
here.
So
we
set
up
the
simulation
and
then
we
run
the
simulation.
I
But
what
we're?
What
we're
really
looking
at
here
is,
you
know
the
wall
times
and
going
from
you
know,
going
from
the
the
mumps
single
thread,
some
of
the
most
32
thread,
and
we
see
you
know
going
from.
You
know
the
time
about
halves.
So
it's
about
twice
as
fast
and
it's
the
same
thing
with
party,
so
that
saturation
is
definitely
a
thing
that
happens.
I
H
I
B
I
Profiling
capability
now
than
when
I
first
ran
these
so.
B
B
I
I
guess
one
question
related
to
these
sparse
matrices
is
I
saw
that
there
was
a
good
while
ago.
There
was
an
issue
discussed
in
in
the
pi
math
solver
issue,
history
of
looking
at
the
panua
implementation
of
harbiso,
which
is
significantly
diverged
from
Intel's
mkl
implementation.
E
I
So
the
the
panel
of
folks
claim
that
the
two
implementations
diverged
in
2006..
Looking
at
the
Intel
1mkl
release
notes,
there
have
been
a
couple
of
comments
over
the
last
few
years
on
changes
involving
the
party
so
implementation,
but
it's
been
pretty
late,
so
I
don't
know
the
the
Intel
version
of
it
is
really
actively
developed.
H
Yeah
and
this
one
is
thread
safe
right
there
we
haven't
talked
about
this,
but
if
we
could
have
a
thread
safe,
direct
solver
that
could
change
the
way
we
line
things
up
when
we're
doing
the
the
paralyzation
of
the
inverse
on
the
inverse
side
of
things.
H
That
being
said,
we,
you
said
something
about
in
the
in
the
chat.
That
kind
of
triggers.
Something
in
mind
is
is
the
is
the
storage
of
the
of
the
factorizer.
If
we
could
reuse
the
factorizations
of
the
direct
solvers
right,
do
you
have
hooks
right
now
to
easily
save
out
to
disk
the
solver,
the
the
factorization
of
the
solver.
I
H
Because
because
then
we
could,
instead
of
having
requiring
the
the
the
solver
to
be
thread
safe,
we
could
just
regenerate
them.
You
know
have
mechanism
to
generate
multiple
solvers
and
then
they
just
reuse,
whatever
has
been
already
be
computed,
and
that
would
be
pretty
pretty
neat
yeah.
I
So
one
question
about
the
the
thread
safety
here
is
so
I've
gone,
very
deep
on
looking
at
the
solvers,
but
I
have
not
really
I,
don't
have
any
familiarity
with
how
simpeg
is
is
sequencing
or
ordering
computations?
I
So
one
possibility
here
as
well
depending
on
the
sequencing
is:
is
there
something
where
we
could
be?
We
could
be
doing
something
where
okay,
we
factor
and
then
you
know
we're
solving
x
equals
B.
Can
we
make
B
into
a
large
Matrix
instead
of
a
vector
and
then
that
could
potentially
bring
in
you
know
other
gloss.
Extensions
I
was
doing
some
experimentation
with
the
effect
of
G,
the
G
of
sorry
g
e,
n,
n
t
open
gloss
extension,
taking
a
look
at
what
are
the
performance
differences?
I
It
looks
like
it's
only
really
active
when
we
give
a
symmetric
hint
but
I
didn't
see
a
really
remarkable
increase
in
performance
Delta
between
unsymmetric
and
symmetric
between
when
gemmt
was
available
to
monksen,
when
it
wasn't
but
I'm
thinking
that
that
might
be
due
to
the
types
of
computation
that
it's
doing,
if
you're
doing
something.
That's
not
really
all
that
parallel.
C
G
I
H
Yeah,
it
is
definitely
faster
if
you
give,
instead
of
a
single
calling,
moms
or
parties
multiple
times
on
a
vector,
if
you
give
it
a
matrix,
it's
definitely
going
to
be
faster,
all
right
to
solve.
That
being
said,
eventually,
your
limited
memory
wise,
you
cannot
give
a
b
that
is
too
large,
because
then
you
you
have
to
you
have
to
generate
that
that
right
here,
right
before
you
give
it
to
to
the
solver.
H
So
it's
it's
kind
of,
and
you
know
it
would
also
if
we
can
paralyze
if
we
can
paralyze
over
those
solves.
That
means
you
could
technically
cast
it
over
multiple
machines
right,
so
you
don't
need
to
do
it
at
all.
All
at
once.
In
one
place
we
could
also
spread
it
around
yeah.
H
I
Yeah
and
that's
that's
something
too
we're
you
know
getting
into
the
types
of
parallelization
that
are
easy
for
people
to
manage.
You
know
HPC
kind
of
stuff.
You
know
if
you're
doing
Slaughter,
job
orchestration
and
then
NPI
stuff,
like
that's
great.
If
there
are
things
that
you
can
do
that
are
easier
to
manage,
you
know
like
cloud
enabled
stuff.
You
know
if
you're,
if
you're
going
to
be
running
on
I,
do
a
lot
of
AWS
work.
I
So
you
know
if
you
can
be
running
on
you
know
a
task
cluster,
the
environment
management
for
that
is
far
easier,
and
so
you
know
broadcasting
that
you
know
that
saved
Matrix
factorization
across
the
Clusters
can
be
way
easier
than
getting
things
involved
with
MPI
just
from
environment
management.
Of
what
software
do
you
have
installed
on
the
cluster.
E
H
H
That
was
good.
Thank
you.
I
need
to
get
going,
but
great
talk
thanks
thanks
man
for
the
work
to
to
see
it
coming,
try
it
for
sure.
A
Thanks
everyone
thanks
so
much
Matt
I,
don't
know
if
folks,
if
anybody
wants
to
stick
around
you're
welcome
to
I
also
need
to
drop
off
but
really
appreciate
this
Matt.
It's
super
cool
to
see,
and
it's
great,
that
you
know
you're
picking
up
at
this
level
of
the
code
and
making
optimizations
here,
I
think
it's
really
exciting,
and
even
you
know,
as
Joe
mentioned
some
of
the
things
we
can
do
in
the
base
simulations
to
just
you
know,
start
to
really
take
advantage
of
some
simple
wins.