►
From YouTube: March 2022 NUG Meeting: Remote development in NERSC Shifter containers with Visual Studio Code
Description
Oliver Schulz from Max Planck Institute for Physics demos using VSCode and Shifter containers for remote development at NERSC
A
So
I
think
a
lot
of
us
have
become
familiar
with
the
our
typical
agenda.
Today's
plan
is
to
be
quite
interactive.
Please
join
in
you
probably
just
speak
up
when
you've
got
something
to
say.
If
it
starts
getting
two
days,
you
will
ask
people
to
raise
hands,
but
to
start
off
with
make
it
make
it
informal
and
interactive
we'll
go
through
our
usual
agenda
of
a
bit
of
time
for
win
of
the
month,
and
today
I
learned
stories.
A
We
have
a
few
announcements
we'll
see
if
there
are
other
announcements
kind
of
in
there
in
the
room
and
then
our
topic
of
the
day.
I
see
oliver
is
here
with
us
and
ready
and
he's
going
to.
B
A
About
remote
development
in
nurse
shifter
containers
with
visual
studio
codes,
this
is
something
I'm
quite
excited
about.
This
is
a
good
direction
for
hpc
generally
yeah.
To
enable
some
of
these,
I
guess
newer
technologies
that
software
developers
are
becoming
accustomed
to
enabling
them
on
on
hpc.
So
I
think
that'll
be
really
good.
A
Then
we'll
have
a
quick
look
at
what's
coming
up
and
then
some
metrics
from
last
month,
oh
and
just
a
heads
up,
of
course,
we're
recording
the
meeting
we'll
post
the
recording
on
the
website.
Afterwards,
if
you
prefer
not
to
appear
in
a
recorded
meeting,
probably
the
way
to
go
is
just
to
leave
the
camera
off
and-
and
you
know,
stick
to
talking
by
a
chat,
but
otherwise
people
can
join
in.
A
So,
winner
of
the
month,
the
purpose
of
this
segment
is
an
opportunity
to
show
off
an
achievement
or
to
shout
out
an
achievement
that
you
know
about
that.
You
know
somebody
else
who
uses
nurse
has
has
know
managed,
and
this
can
be
you
know,
big
or
small,
anything
from
having
a
paper
accepted
somewhere
sort
of
a
bug.
That's
been,
you
know,
causing
causing
difficulties
and
blockages,
or
always
just
like
a
you
know,
an
interesting
bug.
You
know,
you
know,
with
a
with
a
surprising
your
cause
and
and
solution.
A
Scientific
achievements
are
great
to
hear
about.
These
might
actually
be
a
candidate
for
science
highlights
which
nurse
presents
to
the
department
of
energy.
I
think
monthly,
and
also
we
have
annual
awards
for
high
impact,
scientific
achievement
and
innovative
use
of
high
performance
computing.
A
I
think
I
can
get
the
ball
rolling
kind
of
on
something
this
is.
This
is
halfway
between
win
of
the
month,
and
today
I
learned
something:
that's
been
occupying.
My
attention
in
the
last
few
weeks
has
been
setting
up
a
spec
and
workflows
for
installing
software
and
trying
to
make
the
whole
process
of
that
easier,
and
you
know
anybody
who's
installed.
A
You
know
a
mess
of
dependencies
to
unravel
and
the
aim
of
spec
is
to
make
this
easier,
and
you
know-
and
of
course
every
time,
though,
that
you,
you
add
a
layer
of
kind
of
you,
know
abstraction
and
tooling,
that's
get
more
stuff
to
learn
more
stuff
to
to
you
know
most
of
the
can
go
wrong
as
well.
A
So
it's
it's
been
improving
sort
of
you're
quite
well
over
the
last
little
while
in
it
and
yeah
more
and
more
things
install
more
smoothly,
and
you
know
what
I've
been
finding
is
especially
using
it's
got.
A
This
feature
called
a
build
cache,
which
is
really
handy
for
sort
of
separating
out
the
the
building
of
stuff
from
the
deployment
of
stuff,
and
you
know
able
to
set
up
a
kind
of
a
workflow
where
you
know
make
an
environment
build
a
bunch
of
stuff
locally,
where
it's
kind
of
easy
to
do
and
then
package
it
all
up
into.
Essentially
a
binary
cache
can
then
just
be
unpacked
anywhere,
which
is
a
great
way
of
handling.
So
deployment
of
software
is
separate
from
the
installing.
A
So
we
actually
have
a
few
kind
of
docks
on
this
because
yeah
you
can
use
it.
You
can
also
use
it
to
find
packages,
your
module
loads
back
and
then
the
spec
load,
and
you
can
kind
of
bypass
the
module
system
and
specify
exactly
what
it
is
that
you
want
to
load.
So
if
you
look
for
it
on
our
docs,
you
can
find
a
bunch
of
stuff.
Another
sort
of
interesting
aspect
to
it
is
it's
kind
of
tied
in
with
the
e4s
stack
so
now
on
corey
and
on
film
matter.
A
I
think
you
need
to
load
the
specific
spec
module.
It's
not
the
default
yeah
and
you
do
spec
spit
and
the
thing
that
you're
interested
in
if
it's
part
of
the
e4s
stack,
what
you
should
get
is
the
spec.
That's
been
you
know,
kind
of
get
tested
and
recommended
by
the
the
forest
project.
A
So
so
that's
my
kind
of
yeah
interesting
something
of
a
success
story.
In
the
last
little
bit,
I
see
richard's
posted
some
notes
in
the
chat
about
a
science
highlight
nature.com
articles.
Oh
richard,
do
you
want
to
tell
us
about
it.
C
Sure
we
we
get
these
highlights
we
send
to
oscar.
So
they
can
talk
about
the
interesting
some
of
the
interesting
things
that
nurse
users
are
doing
from
time
to
time,
and
this
was
one
of
the
more
recent
ones
where,
through
simulations.
B
C
A
A
C
Yeah
more
like
a
what's
going
on
in
the
early
universe,.
C
And
using
amr
to
get
finer
resolution.
A
You
them
coaches
made
a
comment
in
chat
demo
presentation
for
spec.
Actually,
you
know
that's
probably
a
good
thought.
I
think
we
have
had
one
in
the
past,
but
it
was
a
while
ago
and
there
were
definitely
more
sharp
edges
and
they're
smoothing
out
now
take
note
of
that.
As
a
as
a
topic
for
an
upcoming
topic.
A
A
Screen
so
the
other
side
of
win
of
the
week
is
something
that
you
learn
you're.
What
what
surprised
you
that
might
benefit
others
to
hear
about,
and
you
know
this
is
where
we
can
kind
of
celebrate
the
things
that
didn't
work
so
well,
yeah
as
well
as
well
as
just
the
interesting
things
that
we
stumbled
across
and
read,
but
yeah
every
time
something
doesn't
work.
It's
usually
it's
a
step
towards
something
that
does
you
know
discovering
something
that
doesn't
work
kind
of
teaches
you
more
about.
A
You
know
how
it
works
underneath
and
can
you
know,
improve
knowledge
overall
as
well,
also
giving
other
people
a
heads
up
about
it
can
get
the
next
person
there
a
little
more
quickly
without
having
to
fight
through
the
bug
or
the
difficulty.
So
this
is
a
opportunity
to
talk
about
something
that
you
learned
in
the
easy
way
or
the
highway.
D
Koji,
oh
yeah,
so
this
is
poetry.
I
don't
have
the
answer
yet,
but
this
is
very
probably
basic
things
to
do
on
corey
nightlining,
just
trying
I've
been
running
the
model
with
pure
mpi
parallelism
so
far,
and
I'm
now
testing
with
openmpi
and
npi
combined,
because
I'm
learning
more
and
more
open
peer
in
the
context
of
gpa
offloading,
but
for
kodi
knight
landing
for
now.
D
D
You
know,
open
mp
power
folder
in
those
important
parts
of
the
modern
code,
and
it's
not
that
big
chunk
of
you
know
foreign,
but
it's
really
nice
smaller
set
of
for
loops.
But
so
I
haven't
found
any
any
anything
to
try
and
I
do
follow.
You
know.
Mine
asks
a
job
school
generator
using
that
so
that
you
know
the
threat
and
task
spread
it
spread
across
the
corner.
D
But
excuse
me
yeah.
I
wonder
if
anybody
has
a
very
experience
so
quickly.
You
know
speed
up
right,
running
core
is
hybrid
npi
and
openmp,
and
any
particular
best
practice
that
may
be
not
covered
in
the
documentation.
A
So
we
we
definitely
have
a
you
know
a
bit
of
knowledge
about
that
at
nurse.
Anybody
else
want
to
say
something.
First,
though,.
A
It
can
take
a
little
bit
before
you
actually
get
speed
up,
because
you
know
you're
sort
of
using
multiple
models
now
so
you're,
probably
using
fewer
mpi
tasks,
because
you're
using
some
of
those
cpus
for
openmp,
but
there's
also
a
good
chance
that
there's
not
as
much
coverage
of
the
code
with
openmp
yet
as
there
is
with
mpi.
Is
that
a?
Is
that
a
fair
guess
as
to
the
the
situation
with
this
code.
D
It
was
hard
to
just
decide
from
looking
at
the
code,
but
it
does
cover.
You
know.
Good
chunk
of
you
know
long
time,
fraction
of
of
runtime,
which
yeah
how
many
minutes
or
hours
spent
on
certain
components
and
those
components
at
the
top
level
is
covered
by
op
parallel,
so
but
yeah,
I'm
sort
of
organizing
all
the
test
simulations.
D
I
run
into
the
graph
and
my
clients
to
again
get
contact
with
the
helpdesk
folks
and
then
once
we
figure
out,
maybe
I
can
come
back
and
report
on
one
of
those
next
energy
leading
yeah.
D
I
tried
less
than
2
000
to
12
000
mpa
tasks
and
that
should
be
a
decent.
E
One,
so
what's
the
your
what's
that
openmp
per
node,
how
many
that
shared
memory
is
ready,
you're
ready,
I.
E
E
A
So
so
our
knl
nodes
have
got
68
cores
per
node
and
each
core
can
do
kind
of
hyper
threading
up
to
four
way.
But
of
course,
when
you're
doing
hyper
threading,
that
means
you'll
you'll
see
a
cpu
count
of
272.
A
E
At
this
point,
that
is
not
good
for
performance,
for
that
particular
application
so
avoid
using
you
know,
hyper
threading,
just
one
thread
per
core,
so
you
have
64
cores
right
right
and
can
you
try
that
let's
say
you
give
a
32
cores
use,
32
cores
per
node
and
each
core
run
one
thread
and
then
go
to
thousands
of
the
mpi
ranks
and
see
what
you
get?
Maybe
I
can
take
this
offline
work
with
you
and
see.
Yes,
we
probably
need
some
breakdown
to
understand.
What's
going
on.
D
Yeah
that
particular
one
I
haven't
tried
yeah
and
I'll,
give
it
a
try,
and
I
have
a
bunch
of
yeah
situations.
Maybe
I
can
share
that
with
you
later.
A
Yeah,
so
so
I
kind
of
wonder
if
what
dunlop
is
hinting
at
there
is
that
the
way
that
the
cores
are
arranged
on
k,
l
is
that
each
pair
of
cores
share
it
makes
a
tile
and
shares
an
l2
cache,
so
by
only
using
half
of
the
cores.
If
it's
a
really
cash
kind
of
intensive
program,
you
might
actually
get
better
performance
just
because
the
you
know
the
the
single
threads
able
to
use
more
cause.
Another
thing
to
take
a
look
at
is
your
affinity
settings
and
make
sure
that
they're.
D
B
A
And
then,
finally
is
to
try
running
with
some
performance
tools.
It
starts
getting
a
little
bit
into
the
weeds
here,
but
things
like
v
tune
can
be
quite
helpful
for
for
identifying
why
it's
not
going
as
fast,
which
is
there's.
Definitely
a
big
and
interesting
topic.
A
So
yeah
we'll
be
we'll
be
interested
to
hear
about
afterwards.
What
you
found
to
be
the
the
primary
bottleneck-
and
you
know
what
worked
in
terms
of
speeding
it
up.
D
Yeah
yeah,
which
I
don't
know
at
this
time,
but
you're
really
eager
to
you'll,
find
it.
A
Thanks
for
sharing
that
virginia
before
we
move
on
to
announcements
and
and
cfps,
anybody
else
like
to
call
out
something
that
they've
either
solved
or
haven't
solved
or
stumbled
across.
A
Okay,
let's
move
on
to
announcements
and
cfp,
so
the
big
one
that
probably
everybody
has
noticed
is
that
corey
was
out
yesterday
for
maintenance
and
it
was
a
fairly
major
maintenance
with
a
os
upgrade
and
a
new
default
environment,
and
I
actually
have
a
typo
in
the
slide
here.
Excuse
the
spelling.
A
Most
things
probably
will
just
work,
but
it
is
recommended
that
anything
statically
linked
will
almost
certain
well
you're,
very
likely
need
re-linking,
because
there's
a
a
different
version
of
glib
c,
basically
underlying
it.
So
yeah
there
might
be
changes
in
their
interface
most
dynamically
linked
things
probably
should
just
work
but
video.
It
is
worth
doing
a
quick
test
before
you
run
a
big
job,
and
you
know
it's
also
probably
a
good
on
updating
to
newer
versions
of
the.
A
A
majority
of
modules
and
software
that
wasn't
query
before
is
still
there
now
updated
for
the
new
os
there's
a
few
things
that
are
still
in
the
works
and
a
handful
of
things
that
were
deprecated.
If
you,
you
know,
find
those
essential
things,
either
missing
or
discover
any
issues,
please
let
us
know
at
the
help.net.gov.
A
Other
announcements,
summer,
internship
time
is
coming
up
soon.
So
if
you
are
or
have
a
student,
that's
looking
for
a
summer,
internship
nurse
has
got
quite
a
few
projects.
You
can
take
a
look
at
this
site
here:
nurse.gov
research
and
development,
internships
for
a
list
of
some
of
the
projects
that
nurse
is
looking
for
interns
for
during
their
program.
A
A
You
can
find
the
connection
details
a
few
things
coming
up
that
we
know
of
there's
training
on
coding
for
gpus,
using
standard
c
plus
plus
in
early
april.
The
next
ideas
ecp
webinar
on
evaluating
performance
portability
for
hpc,
apps
and
benchmarks,
is
in
mid-april,
and
we
have
a
spin-up
workshop
starting
sort
of
mid
to
late
april
so
spin
up.
A
It
is
nurse
kind
of
edge
infrastructure,
container-based
infrastructure
service,
which
is
you
know,
providing
a
lot
of
surface
scala
yeah
like
science
gateways
and
kind
of
your
hpc
supporting
services
that
a
lot
of
projects
use.
So
if
you'd
like
to
you'll,
learn
about
that
and
use
it,
you
can
sign
up
check,
weekly
email
for
details
and
your
connection
links
there.
A
A
G
A
Not
we'll
go
on
to
our
topic
of
the
day,
which
is
remote
development
in
nurse
shifty
containers
with
visual
studio
code,
thanks
to
oliver
tools
from
matt
plank
institute
of
physics.
A
I
think
this
is
a
topic.
That's
going
to
interest
a
lot
of
people
and
yeah,
I
see
it's.
It
has
attracted
a
pretty
good
audience.
I
think
it's
a
exciting
direction
for
hpc
to
go.
H
Yeah,
can
you
hear
me?
Okay?
Yes,
all
right,
so
I
will
have
to
share
and
unshare
back
and
forth
a
lot,
because
there
will
be
several
vs
code
windows
involved.
B
H
Okay,
I
put
a
link
in
the
chat
to
the
documentation
we
now
have
in
the
official
nurse
talks
about
how
to
do
this,
and
I
just
discovered
I
have
to
do
a
pull
request
with
one
or
two
bug
fixes,
but
I'll
mention
them
here
so
right.
So
the
first
thing
you
do
is
you
need
to
tell
vs
code
how
you
want
to
ssh.
H
Oh
first
of
all,
maybe
I
should
say
what
this
is
so.
The
goal
here
is
to
do
remote
development
with
visual
studio
code,
but
in
a
way
that
the
remote
part
of
visual
studio
code
that
will
run
at
nursk
will
run
inside
of
a
shifter
container,
with
your
whole
software
stack
available,
while
the
actual
visual
studio
code,
user
interface
will
just
run
on
your
local
institute
system
laptop
wherever
you
are
and
so
on,
and-
and
we
want
to
do
this
in
a
in
a
seamless
fashion,
at
least
as
seamless
as
possible.
H
So
if
you've
used
visual
studio
code,
you
know
that
there's
this
or
you
probably
know
that
there's
this
remote
ssh
extension
that
allows
you
to
ssh
into
a
different
system
that
is
especially
convenient.
If
on
your
local
system,
I
will,
I
will
always
stress,
to
try
to
stress
what
you
do
locally
and
what
you
do
remotely
on
your
local
system.
H
If
you
have
an
ssh
config
file,
you
can
make
some
aliases
that
make
it
easy
and
quick
to
log
into
hosts
right,
for
example,
here
in
general
for
permit,
I
say
which,
which
identity
file
it
should
use.
So
I
don't
have
to
do
this
two-factor
all
the
time
and
then
I
say:
okay
on
corey,
that's
this
login
host,
and
this
is
my
username
and
promoter.
That's
that's
lockinghouse
and
that
username
now
I
can
say,
connect
to
host-
and
I
say
corey
for
example-
and
I
just
want
to
connect
to
corey.
A
Question
in
the
chat-
and
I
wonder
if
what
you
just
showed
was
related
to
that
about.
What's
the
difference
to
just.
C
H
Everyone,
sorry,
maybe
I'm
a
bit
too
early
too
quick
with
this
question-
you're-
probably
going
to
answer
it
anyway,
so
this
is
now,
as
you
can
see
down
here,
a
remote
ssh
connection
to
corey
in
visual
studio
code
right.
So
if
I
open
a
terminal,
I'm
on
corey,
so
I'm
not
on
my
local
laptop
anymore
right
and
I
can
open
files.
H
H
The
thing
is,
you
need
to
set
this
environment
variable,
so
you
can't
just
call
shifter
directly.
You
have
you
need
a
little
wrapper
script
and
you
can
make
one
yourself,
though
I
have
having
some
problem
on
perlmutter
with
this
one,
and
I
will
also
link
you
later
to
a
bit
of
a
more
extensive
script.
That
does
a
few
more
things
for
you,
but
basically
this
is
just
start
shifter
with
this
image
file
and
re-route.
This
xdg
runtime
directory
first,
because
normally
that
is
under
slash,
run.
H
H
H
H
That,
of
course,
doesn't
exist,
which
means,
if
I
want
to
look
into
some
julia
standard
packages
into
the
source
code
with
my
file
manager.
I
can't
because
this
file
system
is
not
available
right.
I
can't
I
can't
get
there.
Visual
studio
code
lives
outside
of
the
container
and
all
these
nice
integration
things
that
julian
python,
all
the
other
languages
give.
You
is
only
partially
available,
for
example,
because
a
language
service
in
visual
studio
code
cannot
parse
part
of
the
language
stack
because
it's
not
available.
H
H
On
your
local
system,
you
set
up
your
identity
file
and,
just
in
general,
how
to
login
into
corey
and
perlmotter,
but
now
you
can
also
specify
remote
commands,
and
so
what
I
say
here
is:
if
my
host
name
is
some
image
tilde,
something
then
in
conjunct,
in
addition
to
running
ssh,
please
run
a
remote
command.
First,
do
this
home
local
bin
round
shifter
and
then
start
my
container.
H
H
H
I'm
in
my
container
I
have
my
opt
file
system
as
part
of
the
container
and
so
on.
So
that's
already
nice
completely
independently
of
visual
studio
code.
You
can
ssh
into
a
container
running
at
nursk
one
more
thing
you
have
to
do
here.
You
declare
some
image.
Tilde
anything
run
this
remote
command,
but
how?
H
How
in
the
world
do
you
tell
ssh
that
that
is
a
host
name?
Well,
ssh
just
allows
you
in
a
whole
specification
to
just
give
multiple
aliases
for
any
name.
So
here
I
just
have
a
bunch
of
alias
names
that
all
just
connect
to
corey,
but
I
can
tell
ssh
that
if
the
host
name
starts
like
this
to
also
add
the
remote
command,
of
course,
you
could
also
have
a
complete
separate
entry
for
each
of
these
in
your
ssh
config,
but
it
would
get
kinda
long,
and
this
way
you
can
structure
it
somewhat
better.
H
H
H
H
H
Sorry,
I
didn't
share
the
other
screen,
so
what
what
open?
Now
I
I
do
apologize.
What
open
now,
which
one
is
it
now.
H
G
H
In
a
moment,
the
the
microsoft
guidance
of
the
vs
code
team,
they
really
took
care
of
making
this
a
nice
experience,
so
I'm
in
germany
and
the
ping
to
nurse
is
actually
not
that
great,
and
this
is
over
a
dsl
connection
from
home.
Actually,
so,
when
I
type,
if
you
look
very
closely,
you
will
see
that
the
letter
first
appears
in
a
darker
gray
before
it
becomes
a
brighter
gray.
H
That's
a
fairly
recent
function,
visual
studio,
that
if
you
have
a
remote
connection
when
you
type
a
letter
in
the
terminal,
appears
immediately
in
a
darker
gray
and
then
when
the
basically,
the
confirmation
comes
back,
that
the
letter
was
accepted.
So
when
the
ping
basically
comes
back
from
the
terminal,
then
it
is
made
light
gray,
and
this
makes
typing
on
the
terminal
a
fairly
smooth
experience.
Now,
even
if
there's
like
100
200,
milliseconds
lag
or
even
a
bit
more.
H
So
now
I,
as
you
can
see
now
ssh
says
I'm
on
a
host
called
some
image
corey,
which
was
just
an
alias
for
corey,
but
it
tells
it.
Please
run
this
remote
ssh
command
and
now
julia
is
there-
and
I
opened
this
already
so
this
is
now
in
the
opt
up
julia
bin,
so
I
can
actually
open
these
folders
now
in
visual
studio
code.
So
I
can
now
look
into
the
julia
libraries
right
yeah
julia
base.
H
A
Of
that
extra
step,
where,
where
the
remote
client
was
writing
inside
the
container,
is
that
when
you
installed
the
package
into
julia,
it
was
installed
into
your
julia
on
corey,
as
opposed
to
on
your
home
system.
Is
that.
H
H
H
H
H
H
And
again,
the
graphical
profile
of
where
I've
called
and
where
the
code
was.
I
can
even
here
look
in
the
rand
and
I
can
shift
control
click
on
that
which
will
drop
me
into
the
random
jl
source
code,
which
is
an
opt
julia,
1
7.
That
is
a
julia
standard
library
that
I'm
looking
at
here
with
the
profiler.
H
H
You
can
do
stuff
like
that
and
when
I
say
rand
200
I
can
I
can
ask
which-
which,
where
is
this
defined,
but
I
can
actually
say
well,
I
have
I
can't
I
can't
edit
julia
core
code,
but
if
I
had
checked
that
out
for
development,
I
could
say
add
edit
and
I
get
dropped.
Yes,
yes,
yes,
open
fine!
I
trust
this.
H
I
could
directly
edit
this
standard
library
code
work
I
might
have
to
reload,
because
it's
standard
library
and
julia
hot
code
reloading
doesn't
touch
the
standard
library.
But
if
it
was
my
own
package,
I
would
be
in
there.
So
this
full
connection
with
the
julia
language
server
or
with
the
python
the
python
language,
server
and
julia
plotting
respectively
for
python
would
be
python
plotting.
And
I
don't
think
python
has
a
tool
exactly
like
this,
but
in
general
this
full
functionality
like
you
would
have
it
on
your
local
system.
H
You
now
have
transparently
on
a
remote
system
and
you
don't
even
notice
that
you're
working
remotely
anymore,
in
fact,
if
you
open-
even
if
you
open
a
folder,
let's
say.
H
H
It's
just
wonderful,
and
now
I
am
in
this
git
repository
on
corey
and
I
can
look
at
the
history
and
I
can
say
git
graph
and
again,
even
though
it's
a
graphical
app
so
to
speak,
that's
random,
visual
code!
I
get
this
graphics
remotely
over
the
connection.
I
can
say:
oh,
create
branches
check
out
branches
working
with
git
remotely
finally
has
become
pleasant,
and
that
to
me
is
a
huge
thing.
H
H
H
H
And
finally,
we
have
the
solution.
You
have
to
scroll
right
right
to
the
end.
I
want
to
give
the
big
shout
out
here
to
luigi
patel.
You
actually
had
the
idea
to
use
this
remote
command
when
it
came
out
very
recently
before
that
we
had
to
work
in
doing
an
even
more
clunky
work
around
that
you
will,
with
the
with
a
local
custom,
ssh
script,
that
you
will
also
find
in
this.
This
github
thread
yeah.
So
look
at
this
nurse
nurse
docs
link
every
step
is
there
you
don't
have
to
do
much.
H
You
have
to
install
the
remote
ssh
extension
you
have
to
enable
you
have
to
tell
digitally,
go
to
use
ssh
remote
command
and,
as
you
will
find
at
the
end
of
the
github
thread-
and
I
will
add
that
to
the
docs
you
must.
You
must
leave,
use
your
local
server
on
the
default
value,
which
is
true,
but
if
you
haven't
changed
those
defaults,
there's
no
problem
now.
One
thing
I
do
here:
I
don't
use
this
for
this
demo.
I
didn't
use
this
simple.
H
H
A
H
You
just
need
this
script
here.
I
put
the
link
in
the
chat,
it's
just
it's
just
a
c,
and
it's
just
a
bash
script,
and
the
only
thing
you
do
is
in
your
home
directory.
You
make
a
directory
cnth
and
then
for
each
container
environment
that
you
want
to
use
you
make
a
directory,
and
in
that
directory
you
put
a
file
called
rootfs.shifter,
which
contains
the
container
name,
and
then
you
can
just
use.
H
You
can
just
do
cns
container
name
and
it
will
look
up
which
shifter
container
it
actually
is
and
do
lots
of
bind
mounting.
It
will
also
be
the
way
mount,
there's,
also
homegear,
which
is
your
home
directory,
but
now
mounted
under
a
neutral,
absolute
path
and
it
redirects
a
few
environment
variables.
So
I
had
trouble
with
this
simple
run.
I
will
continue
to
to
work
on
that,
but
I
had
for
some
reason.
I
had
trouble
with
this
simple
run:
shifter
script
that
just
sets
edg
runtime
on
on
mata,
though
on
cory.
H
It
seems
to
work
well,
but
this
this
cn
seems
to
work
well
on
paramotor
too
it
just
by
mounts
a
few
more
things.
H
H
A
So
so
all
that
sharing
you've
obviously
got
a
pretty
nice
development
environment
set
up
in
a
container
that
you
can
use
on
corey.
Do
you
then
use
a
docker
or
something
similar
on
your?
Your
on
your
on
your
laptop
when
you're
developing
things
locally.
H
No,
I
I
run
I
use
singularity
on
my
laptop
and
I
use
the
same
cm
script
on
my
laptop,
so
I
actually
really
actually
run
the
same
environment
on
my
laptop
at
home
and
I
can
run
the
same
environment
at
nursk
and
I
can
share
this
user
directory
with
julia
packages
installed
and
everything.
If
I
want,
because
no
matter
what
the
actual
path
of
my
home
directory
it
is
in
the
container,
it
will
always
be
under
slash
user.
H
So
so,
instead,
for
this
legend
instead
of
run
shifter,
I
just
use
the
other
run
script,
which
is
also
just
a
bash
script.
It
just
does
more
stuff,
but
there's
no
magic
about
it,
and
you
don't
have
to
use
long
container
names
because
it
looks
in
home,
slash
c
and
in
this
file
what
the
container
is
actually
named.
So
you
can
then
do
an
ssh
to
corey.
H
If
people
are
interested
in
trying
it
out,
I
will
just
show
that
there
are
actually
at
least
some
docs,
so
it
does
have
an
online
help,
even
though
there
is
no
readme
on
github
yet,
but
there
is,
there
is
online
help
for
it,
and
I
can
do
the
same
stuff
on
my
local
system.
So
here
I
can
also
use
c
and
legend
and
I'm
in
this
environment
only
here.
This
is
my
laptop
right
and
I
have
the
slash
user
directory,
and
then
I
can
do
ssh
legend
till
the
quarry.
H
And
it's
exactly
the
same
container.
Only
one
container
is
a
docker
image
converted
to
singularity
and
the
other
is
a
docker
image
convert
to
shifter,
and
I
can
do
slash
user
in
this
case.
They're
actually
not
synchronized,
but
it
is
bind
mounted
just
the
same,
and
the
physical
location
is
home,
dot,
cn
dot
legend,
and
that's
where
this
file
is.
That
says
what
the
here
it
is
root,
fs
shifter,
which
is
just
a
text
file
and
on
my
own
system
on
my
laptop.
H
H
It
is
instead,
instead
of
text
file,
it's
a
symlink,
that's
called
root
of
sif
that
links
to
the
actual,
somewhat
longish
singularity
image
file,
so
I
could
have.
I
could
have
both
this
link
in,
and
the
text
file
with
the
shifter
container
name
and
cm
will
check
if
shift
or
singularity
is
installed
and
then
pick
the
one
or
the
other.
H
But
I
don't
think
there
are
many
sites,
besides
nurse
that
that
you
shifter.
So
this
allows
us
actually
in
legend
because
on
other
sides
we
use
singularity
that
allows
us
to
use
the
same
container
image,
converted
different
ways
and
have
one
common
syntax
to
call
containers.
But
this
cn
stuff
is
absolutely
not
necessary
for
for
this
remote
ssh
container
integration
with
vs
code,
it's
just
something
that
combines
nicely
with
it,
because
you
can
use
shorter
container
names
and
you
have
a
bit
more
luxury
and
you
have
separation
between
you.
H
H
H
If
I
connect
within
the
same
hour
or
so
so
I
have
several
vs
code
instances
running
on
the
same
chlorine
host
on
the
same
quarry
node,
but
because
they
run
in
different
vs
code
directories
or
at
nursk
they
really
separate,
and
they
can
really
run
in
parallel
again,
a
big
big
thanks
to
to
luigi
petrol.
You
figured
out
this
this
neat
trick.
H
We've
been
we've
been
lobbying
on
this
github
thread
from
for
microsoft.
To
please
please
let
us
set
this
with
an
environment
variable
because
then
the
container
runs
could
just
take
care
of
it,
but
so
far
this
this
is
the
only
way
again.
This
is
in
the
docs.
H
To
say,
okay
for
some
special
host
names,
please
run
a
remote
command
and
then
make
these
host
names
aliases,
for
where,
actually
you
want
to
go
on
the
other
side
on
the
nerd
side,
you
need
some
container
run
script
that
at
least
sets
this
xgg
runtime
there.
Maybe
there's
something
more
and
the
third
ingredient
is
activating
respect
for
remote
sihh
commands
in
the
vs
code
settings
and
telling
it
where
to
put
the
server
component
of
the
s-code
and
forcing
it
to
put
in
different
directories
for
different
images.
H
I
think
I
went
way
over
time
here.
I
know
it's
a.
It
seems
a
bit
fiddly.
I
can
promise,
though,
that
the
result
is
is
really
worth
it,
because
I,
even
when
I
work
locally,
I
now
actually
remote
ssh
to
localhost,
so
that
I
can
work
in
my
shifter
container
in
my
singularity
container
and
it
is
fully
seamless.
A
B
H
G
So
quick,
look
at
coming
up.
We've
got
a
few
topics
lined
up
for.
A
The
next
few
months
and
we're
always
looking
for
more
especially
topics
like
this
one,
where
your
a
nurse
user
can
tell
us
about.
You
know
a
a
way
that
you
use
nurse
or
you
know.
A
About
your
work
that
will
be
interesting
and
beneficial
to
other
nurse.
B
A
I
realized
I
hadn't
actually
shared
the
screen
yet
so
yeah
a
couple
of
topics
coming
up
a
quick
look
at
last
month's
numbers:
corey
had
no
outages
at
all
scheduled
around
schedule.
We
cancelled
the
maintenance
in
preparation
for
the
you
know
the
major
one
that
happened
yesterday.
Palmetto
only
had
its
schedule,
maintenance
outage.
A
A
So
that's
the
end
of
our
your
formal
part
of
the
meeting
jeremy.
A
Us
and
please
feel
free
to
leave
as
you
need
to,
but
if
you
would
like
to
stick
around
a
little
for
a
bit
of
a
q,
a
with
all
of
our
about
the
vs
code
setup
before
we
get
yeah
a
few
more
minutes.
So
we
can
go
over
time
for
that.
A
So
I
I
really
like
this
idea
of
setting
up
the
same
development
environment
for
use.
You
know
online
and
offline
so
to
speak
when
you're
preparing
with
with
corey
or
not
so.
H
So
we've
just
tried
to
to
lower
the
entrance
barrier
to
our
like
to
especially
the
younger
students
to
to
make
them
really
use
containers
to
make
sure
that
we
have
comparable
results
and
can
help.
If
there's
trouble.
H
B
A
Although
I
understand
you
can
plug
in
vim
or
individual
links
to
say,
yeah
no.
A
Actually,
one
little
hiccup,
I
think
I'm
going
to
need
to
work
around,
although
maybe
multiple
containers
as
a
way
to
do
this
is
that
I
now
have
one
of
the
new
apple
macbooks.
That's
got
the
the
arm
chip
instead
of
the
x86
chip.
So
it's
going
to
be
a
different
instruction
set
to
query.
A
A
So
that's
a
good
question
and
it
goes
back
to
at
least
it
used
to
be
the
case.
I
don't
know
if
this
is
still
the
case,
that
the
security
model
of
singularity
kind
of
wasn't
compatible
with
the
security
model
at
nurse.
I
think
shifter
actually
might
predate
singularity
a
little
bit
as
well,
and
that
was
like
just
developed
at
nisk
to
run
docker
containers
yeah.
A
So
so
we
was,
it
was
developed
with,
I
guess
context
in
mind
and
it's
essentially
a
you
know,
a
fork
of
docker
yeah,
just
tweaks
to
you
know
to
work
in.
In
this
context,
I
have
a
vague
idea
that
singularity
security
model
may
have
been
updated,
and
so
it.
H
Might
not
have
that
limitation,
I
think
they've.
They
worked
a
lot
on
it.
I
mean
it's
it's
it's
also
doe
in
a
way
right.
It's
it's
broccoli
lab
originally,
and
then
it
got
commercialized
and
now
it
became
uncommercialized
again,
it's
actually
now
not
called
singularity
anymore,
but
the
real
version
is
now
called.
I
forget.
H
The
original
developers
have
taken
control
of
it
again
and
want
to
keep
this
fully
open
source
and
everything
yeah.
It's
probably
just
a
historical
thing,
I
think,
and
then
of
course,
nurse
has
very
strict
security
requirements,
though
both
use,
as
far
as
I
know,
both
use
squash
fs
images
under
the
hood
that
that
get
basically
bind
mounted
to.
B
H
H
A
We
definitely
saw
that,
especially
for
python
workloads.
Shifting
makes
a
big
difference
to
performance,
and
it's
because
of
that.
You
have
metadata
layer,
kind
of
packaging
that
you
know
the
millions
of
files.
G
G
B
B
A
It's
a
difficult
challenge,
so
yeah
containers
make
quite
a
big
difference.
There.
G
All
right,
thanks
again
oliver
and
everybody
for
sticking
around
a
little
bit
more.
There
was
a
a.