Beruflich Dokumente
Kultur Dokumente
Workshops
Morning
9:00
12:00
LUNCH
13:30
15:00
BREAK
15:15
17:15
END
package for your own use that you can easily share with other people to get feedback
and contributors. You can convert it into a registered package once it's really ready for
distribution.
Make your own package
Registering your package (once it's really ready)
Bio: David P. Sanders is an associate professor of computational physics in the
Department of Physics, Faculty of Sciences, National University of Mexico (UNAM), and is
on sabbatical in the Julia group at MIT during 2016. David discovered Julia at the start of
2014 and now uses it exclusively in both teaching and research. He is an author of the
ValidatedNumerics.jl package for rigorous numerics, and has given tutorials on Julia at
SciPy 2014 and JuliaCon 2015 (see here), with collectively nearly 50,000 views on
YouTube.
Viral Shah, Shashi Gowda, Andreas Noack, Ranjan Anantharaman, Amit Murthy
This workshop will give an overview of tools in Julia for dealing with large amounts of
data.
Building Blocks for parallel computing in Julia:
RemoteChannels
Futures
@parallel and pmap
Multi-Threading Julia:
What kinds of programs can benefit from Julia's multi-threading
GPUs
Capabilities of Julia on GPUs
MPI and Elemental
MPI.jl overview
Elemental.jl overview
Introduction
Goal
iwnte
code
that
is
'
.
onto
Perform
precise
Focus
Julia
Julia
w/
Generic
High Performance
writing
to
lecture
of
single
thread
execution
another
in
parallel
session
ToP1=
profile
Julia
Tookhain
Hardware
2-
Julia
can
doing
Profilers
nfill
If
user
would
is
as
give
well
can
can
as
info
.
Mistakes
warming
them
Fnfiefitfrhftway
unstable
Julia
Timing / pokier
Not
What
on
Compiler
profiler
manual
level
transistor
()
Vs.
Loops
Sims
foo
Profile
1)
automatic
feedback
get
at
=)
Caveat :
System
vectorization
We
Type
optimizations
the
up
.
compile
first
to
code
run
*)
processor
system
warm
twice
up
to
frequency
clock
by
on
factor
Stabilize
computer
of
two
computers
can
or
vary
more
Clock
3)
Timing
conversely
necessary
4)
Timing
of
Short
too
to
running
profile
something that
t print
values
,
that
they
ex
println
run
Heap
II
of
Pofkis
HARDWARE
optimizer
the
for
instance
removes
to
ensure
optimized
aren't
away
(a) )
( hash
compile
forces
something
to
it
RESOURCES
Hierarchy
Queue
Instruction
pegiarr
not
is
Profilers
Allocation
Memory
hours
for
do
Types
Data
Cache
Outer
level
I
Mlmunf
Cache
Instruction
Ceche
Penury
Computing
:*
* IEEE
Ideal
>
of
Use
Hardware
units
slmd
Avoid
Float
for
32
from
cache
computation
half
URS
has
>
SIMD
banduitw
half
process
can
instructions
Use
needed
Semantics
Implementation
64
when
twice
Float
64
footprint
may
as
the
is
precision
Implementation
vs
Semantics
Float
cache
the
cache
LI
misses
than
faster
often
is
fit
accesses
merry
Stalls
speed
full
at
going
most
make
Reason
about
Say
CORRECTNESS
Reason
about
PERFORMANCE
int
fools
local
=z
Variable
is
memory
X|T
memory
int
an
Boxing
value
name
3.1
for
compile
objects
wlo
Known
type
time
Compiler
is
to
used
"
variable
bound
Truncation
occurred bk
its
in
Foo
Ij
location
Semantics
function
Fan
:ixi
int
Julia
Vs
Semantics
works
to
avoid
Boxing
PENALTIES
FROM
Indirection
2)
Heap
3)
Allocation
General
Julia
In
Julia
BOXING
Dispatch
How
use
iirnsensitive
:
-
values
are
type
inference
stored
in
locations
Julia
Compilation
anyone
of
lmpkmentatim
look
can
the
developer
Code
intermediate
at
even
compiler
cyo
on
having
system
stages
the
.
4Yaeert
code
eYYiYnYa
Code
lowered
warnthpl
to
you
it
tell
what
is
Code
won
native
doing
Syntax
machine
Concrete
Non
concrete
non
vs
compiler
ex
lat 32
Union
Vector
requires
...
1ntG4}
Real
Int
unknown
Vector
tstemplahe
type
type
know
boxing
"
,
Concrete
-
doesn't
layout
bit
Tyres
concrete
Int }
foo
64
64
Float
Float
yi
concrete
If
lose
everything
be
make
we
ability
Parametric
to
Compromise
Circle {
type
to
Real
we
When
return
the
the
type
entire
Circle
type
Can't
compiler
of
Call
function
chain
Floated
figure
Tt
now
TAND
concrete
-
parametric
out
poisons
the
propagates
functions
to
that
inefficiencies
we
those
into
other
results
Type
M Two
type
ein
)
Immutable
vs
'
.
: :
Mtwo
( MTWK 1,2 )
Mtwo
( 3,4J )
#IsF#9
D :
"
immutable
A
ITWO
:
Itwocl
{ T}
end
C)
Itwo
2)
,
BI
,Ttwo
( 3,41 )
Issue
Gotcha
Julia
The
polymorphic
is
number
Use
Now
ftnogtz
Y=
yso ,
afloat
it
make
Int
an
float
3.1
is
Hardware
Monomorphic
but
always
is
to
fetus
have
we
boxing
bloat
def
type
Stable
of
Convert
function
convert
Y=
( TO
lets
output
you
predict
type
convert
float
3.1
y=
Input
ftnogtz
Tame
the
Now
boxing
have
we
+
bloat
The
predicting
X
not
is
issue
=3
types
1
Float
but
Fine
It
ys
types
mixing
about
problem
Fne
;
What
Int
is
type
orFloat
statements
Different
problems
cause
slow
to
way
function
sum
tally
fast
for
vinx
to
way
I
zero
sum
eltypea
5t=
can
ed
s
end
we
'
promotions
use
can
function
promote
Global
to
Variables
reassignment
for
inference
type
globab
woncanun&=
no
of
Const
Use
Const
but
not
means
N#
Of
the
that
that
assigning
same
identifier
object
variable
once
CKH
as
is
is
const
never
invariant
rebound
.
Const
a
Use Ref
[ 0{
0,0
This
Const
okay
is
even
4th
Hack
Hype
const
2,3
f
f=
Ref
( o 4)
.
0.5
okay
Assertion
:
tv
:c
Floats
it
check
type
here
for
instead
Reuse
Note
of
new
impact
collector
garbage
in
Speed
to
Reallocating
Julia
up
Code
0.4
reduces
is
eltype
llngthcs
( eltupeca ) )
zero
s=
Function
:Dahua
faster
Gotcha
when
Loop
vs
Gap
vectored
ARRAY
speed
For
BLAS
vs
linear
Algebra ,
just
response
Lin
Automatic
Nudge
Kinds
.
Manually
Is
fly
the
of
the
call
"
on
julialang
vectorization
style
's
EEstillfaster
See
problems
length away
zero
away
decreasing
is
loop
cause
is
loop
between
an
blog
fast
BLAS
numeric
"
Optimizations
compiler
do it
Questions
transformation
alway
likely
legal ?
profitable
Julia
over
Some
default
by
choice
fast
when
Prefers
it
to
Must
be
make
accurate
the
gotchas
w/
Floating
Algebra
DON'T
work
D=
RK
dfastmath
macro
fastmath
apply
Summation
compiler
Not
"
is
as
grants
to
permission
unsafe
algebra
good
at
good
Integer
at
Floating
"
arithmetic
point
t(y
as
it
Tffloating
try
%
soirees
is
int
using
order
of
tr
operations
compiler
up
@ inline
Inlining
legal
Always
SOMETIMES
noinine
off
To
automatic
Bounds
in
overhead
saves
enables
of
turn
lining
speed
Yes
WE
get
command
profitable
Likely
to
code
further
specialise
calla
cache
misses
possible
Checking
Sometimes
you
mould
turn
this
OFF
w/
play
Check
bounds
cqheok
==yes
"
'
CL
If
,f
'
bounds
command
bounds
no
code
then
Code
in
Know
Avoid
local
Hoist
Manual
benefit
reducing
readabdty
this
Stuff
scalar
Unrolling
Let
JIT
Best
done
Tends
to
Sometimes
unroll
w/
is
Make
by
-
does
sometimes
the
Hoist
Do
Julia
outweighs
code
compiler
point
inbounds
from
inbounds
Invariants
you
can
Refrain doing
@ unless
Integers
Hoisting
speed
you
sprinkle
Incited
affects
Change
to
Check
global
Mir
column
sure
row
do
after
make
not
it
some
code
always ,
optimization
harder
you
could
to
read
beat
begin
compiler
major
travel
aways
by
columnist
not
"
Translation
"
Look
Buffers
Ande
oblivious
cache
"
look
c-
"
Algorithms
up
look
c-
up
Vectorization
the
Know
"
serial
ii.
different
two
Has
definitions
difference
evaluation
of
order
today
"
isz
ffi?o*f\
Don't
left
as
horizontal
assume
-
of
tr
night
nrw
Compiler
order
Picks
is
this
Implicit
Explicit
VS
using
simd
Vectorization
Gives
reorder
in
ptrgramme
"
Variable
reduction
vectorization
Implicit
.
integer
+
fast
sometimes
code
"
for
works
permission
run
&
Parallel
vouches
for
to
things
'
for
vectorization
.
reductions
,
*
,
&
hoariest
math
you
simd
have
.
to
restructure
your
1
,
Put
dependencies
all
make
to
sure
support
to
build
in
gahub
for oldest
in
workshop
includes
workshop ipynb
Rmathjuwa
-
Unix
[ Blank
on
purpose
Packages
include
always
Julia
in
Can
you
"
host
frau 's
github
use
binaries
&
'
github
on
file
yml
'
in
travis .gml
Github
packages
to
Releases
'
'
.CI
Travis
wing
is
Watch
for
out
different
library
Oses
Build
available
the
Docker
Ubuntu
between
Linux
the
newest
dinm
you
compiler
sole
virtual
lightweight
is
dependencies
oldest
to support
libstdct
-
of
version
on
want
old
an
Machine
\.EE?.aoanadVDocklr
hEetoYI
.
Containers
debt
build
BWDEPS
Thin
you
.jl
script
what
to
Julia
package
Carefully
depend
about
on
ex
include
which
of
versions
0.4
Julia
Mylibray
0.2<6
...
etc.
packages
Birders
lining
Binpeps
library
Declare
&
chip
Depend
the
Binders
looking
ex
good
Look
Julia
Julia
of
wring
has
also
finds
on
is
your
Most
the
-
@FKE
Most
Bintray
do
people
.
people
system,
target
this
to
Don't
git
repo
to
refer
'
the
wrong
way
by
writing
Macro
the
it
explicitly
link
Absolute
file
jl
-
way
package
the
in
best
own
it
gitignore
automating
examples
use
put
There
code
source
existing
it
automatically
depsjl
by
Opt
Binpepso
good
libraries
will
Binteps
fond
be
qq.eafya.de
package
it
"
master
etc.
libraries
package
Cairo
if
of
versions
Can
at
example
dependencies ,
latest
' '
examples
into
ue
specific
on
Not
to
of
path
expands
currently
to
running
refer
to
Another
their
own
binary
packages
hooting
incorrectly
site
Search
This repository
Pull requests
Issues
Gist
tkelman / Rmath.jl
Watch
Unstar
Fork
Code
Branch: master
Pull requests 0
Wiki
Pulse
Graphs
Find file
d4d1c32 2 hours ago
1.1 KB
Raw
Blame
History
using BinDeps
@BinDeps.setup
libRmath = library_dependency("libRmath", aliases=["libRmath-julia2"])
version = "0.1"
# Best practice to use a fixed version here, either a version number tag or a git sha
# Please don't download "latest master" because the version that works today might not work tomorrow
# TODO replace tkelman with JuliaLang later
provides(Sources, URI("https://github.com/tkelman/Rmath-julia/archive/v$version.tar.gz"),
[libRmath], unpacked_dir="Rmath-julia-$version")
prefix = joinpath(BinDeps.depsdir(libRmath), "usr")
srcdir = joinpath(BinDeps.srcdir(libRmath), "Rmath-julia-$version")
# If your library uses configure or cmake, good idea to do an
# out-of-tree build - see examples in JuliaOpt and JuliaWeb
provides(SimpleBuild,
(@build_steps begin
GetSources(libRmath)
CreateDirectory(joinpath(prefix, "lib"))
@build_steps begin
ChangeDirectory(srcdir)
`make`
`mv src/libRmath-julia.$(Libdl.dlext) $prefix/lib/libRmath-julia2.$(Libdl.dlext)`
end
end), [libRmath], os = :Unix)
@BinDeps.install Dict(:libRmath => :libRmath)
Terms
Privacy
Security
Lots
in
Contact
of
this
Help
Status
good
code
we
Case
API
Training
Shop
examples
Blog
About
There
is
Checksum
package
.jl
SHA
TRAVIS
Julia
CI
travis
yml
rates
of updates
limit
:
can
if
you
you
keep
Travis
to
locally
ofcomm.IR
push
chunks
in
Builds
Polling
but
lots
doing
are
you
include
travis
are
can
bah
25
this
have
doesn't
CI
fail
fast
loheofu
.sn
do
it
FAAFAK
if
it
fails
quickly
PP
Vlyor
pveyor
Service
Travis
Yun
that's
for
CI
exits
basically
Windows
Homebrew
pnvatl
Il
"
isolated
is
form
system
Julia
Homebrew
vernon
.
Homebrew
wide
of
Blank
on
Purpose ]
PARALLEL
Sometimes
Asychronous
but
gpu.jnliabox.org
Computing
( Ramjan )
Fire
Array
serial
is
(Andreas )
Data
JULIA
IN
parallelism
T0P
Reading
Code
,
"
"
CODE
expresses
wqe
:*
f.
e.
Computeframework
even
Why
'
use
GPU
qwtrjl
Compute
.EE#jYEEsTi:::am
computing ?
compile
Julia
GPU
on
directly
town
Framework
Graphviz
package
Parallelisation
will
shows
occur
how
you
the
UMAUZAHON