Sacha Verweij and Jane Herriman

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

_

_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
, ,&

Sacha Verweij and Jane Herriman


_
_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
the two language problem

productive performant
(lisp, python, ruby, matlab) (asm, fortran, c, c++)

either write code efficiently … or write efficient code


typical workaround?

use two languages


(prototype + production)

ergo the two language problem


“looks like python, feels like lisp, runs like c“
…looks like python…

# python # julia
def sum(a): function sum(a)
s = 0.0 s = 0.0
for x in a: for x in a
s += x s += x
return s end
return s
end
…feels like lisp…

homoiconic
dynamic
parametric
multiple dispatch
highly polymorphic

…runs like c…

# python # julia
def sum(a): function sum(a)
s = 0.0 s = 0.0
for x in a: for x in a
s += x s += x
return s end
return s
end
“looks like python, feels like lisp, runs like c“
github stars

1.0 release
_
_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
, ,&
_
_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
, ,&
an two language problem for teaching?

accessible & productive powerful &/| performant


(python, ruby, lua, matlab, …) (c/c++, lisps, fortran, rust, …)

intro CS advanced CS
(loops, variables, (types, architectures,
functions, control flow, …) compilers, performance, …)

_
_ _ _(_)_

we can smooth the way with


(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
_
_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
, ,&
_
_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
, ,&
Home Google Group Contact Us Family Fun Learning Blog

Linear Algebra: Foundations to LAFF-On Programming for LAFF-On Programming for High Linear Algebra: Foundations to
Frontiers (LAFF) Correctness (LAFF-On) Performance (LAFF-On PfHP) Frontiers - Notes on Numerical
Linear Algebra
A MOOC on the edX platform. A MOOC on the edX platform. Materials under development. Notes for a graduate level
numerical linear algebra course.
Current offering Fall 2018 (Aug. Offering that started May 15,
1, 2018 - Dec. 17, 2018) 2018 is now archived.
Reviews
Download! Linear Algebra: Download! LAFF-On Download! LAFF-On Download! Linear Algebra:
Foundations to Frontiers - Programming for Correctness Programming for High Foundations to Frontiers -
Notes to LAFF With (Complete notes with answers.) Performance Notes on Numerical Linear
(Notes and materials under Algebra
development)

An e-book (PDF) that integrates An e-book (PDF) that integrates An e-book (PDF) that is a
the materials for LAFF, including the materials for LAFF-On, A constantly changing e-book collection of notes written for an
270+ short videos, answers to including short videos, answers (PDF) with programming introductory graduate level
exercises, browser-based to exercises, browser-based exercises. For now, the course on Numerical Linear
activities, and programming activities, and programming document will give you an idea Algebra.
exercises for MATLAB. exercises for MATLAB. of what is coming. If you want to
be kept informed of major
milestones, join the ULAFF-On
google group. Some of the
programming activities are now
Watch the "Sizzle" Video": Watch the "Sizzle" Video": available on github. Stand by!

FLAME Team launches… LAFF - On Programmin…

Funded in part by the National


Funded in part by the University Funded in part by a gift from Science Foundation (grant ACI-
of Texas System and the National MathWorks and the National Funded in part by the National
1148125).
Science Foundation (grant ACI- Science Foundation (grant ACI- Science Foundation (grant CCF-
1148125). 1550493). 1714091).

Join the ULAFF-On google group to stay informed.


a stack for teaching high performance gemm

matlab c
pseudocode down to the metal
prototyping transparent performance model
exploration
testing
benching
plotting WE HAD TO USE MEX FILES
_
_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
, ,&
_
_ _ _(_)_
(_) | (_) (_)
_ _ _| |_ __ _
| | | | | | |/ _` |
| | |_| | | | (_| |
_/ |\__'_|_|_|\__'_|
|__/
E X
*.M

You might also like