Introduction to the Julia language - Inria Bordeaux Sud-Ouest...
Transcript of Introduction to the Julia language - Inria Bordeaux Sud-Ouest...
![Page 1: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/1.jpg)
Introduction to the Julia language
Marc Fuentes - SED Bordeaux
![Page 2: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/2.jpg)
Outline
1 motivations
2 Julia as a numerical language
3 types and methods
4 about performance
![Page 3: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/3.jpg)
Outline
1 motivations
2 Julia as a numerical language
3 types and methods
4 about performance
![Page 4: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/4.jpg)
Outline
1 motivations
2 Julia as a numerical language
3 types and methods
4 about performance
![Page 5: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/5.jpg)
Outline
1 motivations
2 Julia as a numerical language
3 types and methods
4 about performance
![Page 6: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/6.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 7: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/7.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 8: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/8.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 9: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/9.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 10: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/10.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 11: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/11.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 12: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/12.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 13: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/13.jpg)
Why yet another Matlab -like language?
scripting languages such as Matlab , Scipy , Octave etc... areefficient to prototype algorithms (more than C++/Fortran)
Matlab is not free neither open source. It still remains thelingua franca in numerical algorithms.
Octave is very slow (but highly compatible with Matlab )
Python along Numpy and Scipy is a beautiful language, buta little bit slow and do not support any parallelism as abuilt-in feature.
Pypy which is a nice JIT compiler of Python , but does notsupport neither Numpy neither Scipy
R is well suited for statistics, but suffer from old-syntaxtroubles
−→−→−→ Why do not try a new language for numerical computation?
![Page 14: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/14.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 15: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/15.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 16: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/16.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 17: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/17.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 18: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/18.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 19: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/19.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 20: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/20.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 21: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/21.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 22: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/22.jpg)
A language for numerical computation
Julia ’s syntax is very similar to langages as Matlab , Pythonor Scilab , so switching to Julia is fast
do not require vectorized code to run fast(JIT compiler)
it uses references (also for function arguments)
indices start to 1 and finish to end
use brackets [,] for indexing
it supports broadcasting
support 1D arrays
−→−→−→ let us have a look to some examples
![Page 23: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/23.jpg)
Functional aspects
support anonymous functions : (x -> x*x)(2)
support map, reduce, filter functions
functions support variadic arguments (using tuples)
comprehension lists
functions are not supposed to modify their arguments,otherwise they follow the ! convention like sort!
![Page 24: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/24.jpg)
Functional aspects
support anonymous functions : (x -> x*x)(2)
support map, reduce, filter functions
functions support variadic arguments (using tuples)
comprehension lists
functions are not supposed to modify their arguments,otherwise they follow the ! convention like sort!
![Page 25: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/25.jpg)
Functional aspects
support anonymous functions : (x -> x*x)(2)
support map, reduce, filter functions
functions support variadic arguments (using tuples)
comprehension lists
functions are not supposed to modify their arguments,otherwise they follow the ! convention like sort!
![Page 26: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/26.jpg)
Functional aspects
support anonymous functions : (x -> x*x)(2)
support map, reduce, filter functions
functions support variadic arguments (using tuples)
comprehension lists
functions are not supposed to modify their arguments,otherwise they follow the ! convention like sort!
![Page 27: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/27.jpg)
Functional aspects
support anonymous functions : (x -> x*x)(2)
support map, reduce, filter functions
functions support variadic arguments (using tuples)
comprehension lists
functions are not supposed to modify their arguments,otherwise they follow the ! convention like sort!
![Page 28: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/28.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 29: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/29.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 30: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/30.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 31: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/31.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given process
fetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 32: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/32.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 33: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/33.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 34: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/34.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterations
pmap for heavy iterations
support for distributed arrays in the standard library
![Page 35: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/35.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 36: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/36.jpg)
Parallelism
Julia has a built-in support for a distributed memoryparallelism
one-sided message passing routines
remotecall to launch a computation on a given processfetch to retrieve informations
high level routines
@parallel reduction for lightweight iterationspmap for heavy iterations
support for distributed arrays in the standard library
![Page 37: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/37.jpg)
external libraries calls
sometimes you need to call a C/Fortran code
”no boilerplate” philosophy : do not require Mexfiles, Swigor other wrapping system
the code must be in a shared library
the syntax is the following
ccall(:function , "lib"), return_type , (type_1 ,..., type_n), args)
![Page 38: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/38.jpg)
external libraries calls
sometimes you need to call a C/Fortran code
”no boilerplate” philosophy : do not require Mexfiles, Swigor other wrapping system
the code must be in a shared library
the syntax is the following
ccall(:function , "lib"), return_type , (type_1 ,..., type_n), args)
![Page 39: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/39.jpg)
external libraries calls
sometimes you need to call a C/Fortran code
”no boilerplate” philosophy : do not require Mexfiles, Swigor other wrapping system
the code must be in a shared library
the syntax is the following
ccall(:function , "lib"), return_type , (type_1 ,..., type_n), args)
![Page 40: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/40.jpg)
external libraries calls
sometimes you need to call a C/Fortran code
”no boilerplate” philosophy : do not require Mexfiles, Swigor other wrapping system
the code must be in a shared library
the syntax is the following
ccall(:function , "lib"), return_type , (type_1 ,..., type_n), args)
![Page 41: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/41.jpg)
external libraries calls
sometimes you need to call a C/Fortran code
”no boilerplate” philosophy : do not require Mexfiles, Swigor other wrapping system
the code must be in a shared library
the syntax is the following
ccall(:function , "lib"), return_type , (type_1 ,..., type_n), args)
![Page 42: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/42.jpg)
external libraries calls
sometimes you need to call a C/Fortran code
”no boilerplate” philosophy : do not require Mexfiles, Swigor other wrapping system
the code must be in a shared library
the syntax is the following
ccall(:function , "lib"), return_type , (type_1 ,..., type_n), args)
![Page 43: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/43.jpg)
external libraries calls
sometimes you need to call a C/Fortran code
”no boilerplate” philosophy : do not require Mexfiles, Swigor other wrapping system
the code must be in a shared library
the syntax is the following
ccall(:function , "lib"), return_type , (type_1 ,..., type_n), args)
![Page 44: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/44.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric typessingleton typestype aliases
![Page 45: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/45.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric typessingleton typestype aliases
![Page 46: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/46.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric typessingleton typestype aliases
![Page 47: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/47.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric typessingleton typestype aliases
![Page 48: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/48.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric typessingleton typestype aliases
![Page 49: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/49.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite types
union typestuple typesparametric typessingleton typestype aliases
![Page 50: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/50.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion types
tuple typesparametric typessingleton typestype aliases
![Page 51: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/51.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple types
parametric typessingleton typestype aliases
![Page 52: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/52.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric types
singleton typestype aliases
![Page 53: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/53.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric typessingleton types
type aliases
![Page 54: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/54.jpg)
Types
There is a graph type in Julia reflecting the hierarchy of types
None <: Int64 <: Number <: Real <: Any
support both abstract and concrete types
user can annotate the code with operator :: ”is an instanceof”
Julia supports
composite typesunion typestuple typesparametric typessingleton typestype aliases
![Page 55: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/55.jpg)
Multiple dispatch
main idea : define piecewisely methods or functions dependingon their arguments types
let us define f
f(x::Float64 ,y:: Float64) = 2x + y
f(x::Int ,y::Int) = 2x + y
f(2. ,3.) # returns 7.0
f(2,3) # returns 7.0
f(2, 3.) # throw an ERROR: no method f(Int64 ,Float64)
but if we define g
g(x::Number , y:: Number) = 2x + y
g(2.0, 3) # now returns 7.0
no automatic or magic conversions : for operators argumentsare promoted to a common type (user-definable) and use thespecific implementation
supports parametric methods
myappend{T}(v:: Vector{T}, x::T) = [v..., x]
![Page 56: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/56.jpg)
Multiple dispatch
main idea : define piecewisely methods or functions dependingon their arguments types
let us define f
f(x::Float64 ,y:: Float64) = 2x + y
f(x::Int ,y::Int) = 2x + y
f(2. ,3.) # returns 7.0
f(2,3) # returns 7.0
f(2, 3.) # throw an ERROR: no method f(Int64 ,Float64)
but if we define g
g(x::Number , y:: Number) = 2x + y
g(2.0, 3) # now returns 7.0
no automatic or magic conversions : for operators argumentsare promoted to a common type (user-definable) and use thespecific implementation
supports parametric methods
myappend{T}(v:: Vector{T}, x::T) = [v..., x]
![Page 57: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/57.jpg)
Multiple dispatch
main idea : define piecewisely methods or functions dependingon their arguments types
let us define f
f(x::Float64 ,y:: Float64) = 2x + y
f(x::Int ,y::Int) = 2x + y
f(2. ,3.) # returns 7.0
f(2,3) # returns 7.0
f(2, 3.) # throw an ERROR: no method f(Int64 ,Float64)
but if we define g
g(x::Number , y:: Number) = 2x + y
g(2.0, 3) # now returns 7.0
no automatic or magic conversions : for operators argumentsare promoted to a common type (user-definable) and use thespecific implementation
supports parametric methods
myappend{T}(v:: Vector{T}, x::T) = [v..., x]
![Page 58: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/58.jpg)
Multiple dispatch
main idea : define piecewisely methods or functions dependingon their arguments types
let us define f
f(x::Float64 ,y:: Float64) = 2x + y
f(x::Int ,y::Int) = 2x + y
f(2. ,3.) # returns 7.0
f(2,3) # returns 7.0
f(2, 3.) # throw an ERROR: no method f(Int64 ,Float64)
but if we define g
g(x::Number , y:: Number) = 2x + y
g(2.0, 3) # now returns 7.0
no automatic or magic conversions : for operators argumentsare promoted to a common type (user-definable) and use thespecific implementation
supports parametric methods
myappend{T}(v:: Vector{T}, x::T) = [v..., x]
![Page 59: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/59.jpg)
Multiple dispatch
main idea : define piecewisely methods or functions dependingon their arguments types
let us define f
f(x::Float64 ,y:: Float64) = 2x + y
f(x::Int ,y::Int) = 2x + y
f(2. ,3.) # returns 7.0
f(2,3) # returns 7.0
f(2, 3.) # throw an ERROR: no method f(Int64 ,Float64)
but if we define g
g(x::Number , y:: Number) = 2x + y
g(2.0, 3) # now returns 7.0
no automatic or magic conversions : for operators argumentsare promoted to a common type (user-definable) and use thespecific implementation
supports parametric methods
myappend{T}(v:: Vector{T}, x::T) = [v..., x]
![Page 60: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/60.jpg)
Multiple dispatch
main idea : define piecewisely methods or functions dependingon their arguments types
let us define f
f(x::Float64 ,y:: Float64) = 2x + y
f(x::Int ,y::Int) = 2x + y
f(2. ,3.) # returns 7.0
f(2,3) # returns 7.0
f(2, 3.) # throw an ERROR: no method f(Int64 ,Float64)
but if we define g
g(x::Number , y:: Number) = 2x + y
g(2.0, 3) # now returns 7.0
no automatic or magic conversions : for operators argumentsare promoted to a common type (user-definable) and use thespecific implementation
supports parametric methods
myappend{T}(v:: Vector{T}, x::T) = [v..., x]
![Page 61: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/61.jpg)
Performance
to prove that Julia is fast language, we did some tests
benchmarks sources taken from the Julia site and modified
all times are in milliseconds
on a Z800 (8 threads, 24G of memory),
appli fib mandel quicksort pisum randstat randmul
Matlab 191 22 28 57 97 69Octave 924 310 1138 21159 484 109Python 4 7 14 1107 253 101Pypy 8 3(faux) 13 44 xxx xxxJulia 0.09 0.28 0.57 45 34 49
Fortran 0.08 6 10−6 0.62 44 16 275(16)
![Page 62: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/62.jpg)
Performance
to prove that Julia is fast language, we did some tests
benchmarks sources taken from the Julia site and modified
all times are in milliseconds
on a Z800 (8 threads, 24G of memory),
appli fib mandel quicksort pisum randstat randmul
Matlab 191 22 28 57 97 69Octave 924 310 1138 21159 484 109Python 4 7 14 1107 253 101Pypy 8 3(faux) 13 44 xxx xxxJulia 0.09 0.28 0.57 45 34 49
Fortran 0.08 6 10−6 0.62 44 16 275(16)
![Page 63: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/63.jpg)
Performance
to prove that Julia is fast language, we did some tests
benchmarks sources taken from the Julia site and modified
all times are in milliseconds
on a Z800 (8 threads, 24G of memory),
appli fib mandel quicksort pisum randstat randmul
Matlab 191 22 28 57 97 69Octave 924 310 1138 21159 484 109Python 4 7 14 1107 253 101Pypy 8 3(faux) 13 44 xxx xxxJulia 0.09 0.28 0.57 45 34 49
Fortran 0.08 6 10−6 0.62 44 16 275(16)
![Page 64: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/64.jpg)
Performance
to prove that Julia is fast language, we did some tests
benchmarks sources taken from the Julia site and modified
all times are in milliseconds
on a Z800 (8 threads, 24G of memory),
appli fib mandel quicksort pisum randstat randmul
Matlab 191 22 28 57 97 69Octave 924 310 1138 21159 484 109Python 4 7 14 1107 253 101Pypy 8 3(faux) 13 44 xxx xxxJulia 0.09 0.28 0.57 45 34 49
Fortran 0.08 6 10−6 0.62 44 16 275(16)
![Page 65: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/65.jpg)
Performance
to prove that Julia is fast language, we did some tests
benchmarks sources taken from the Julia site and modified
all times are in milliseconds
on a Z800 (8 threads, 24G of memory),
appli fib mandel quicksort pisum randstat randmul
Matlab 191 22 28 57 97 69Octave 924 310 1138 21159 484 109Python 4 7 14 1107 253 101Pypy 8 3(faux) 13 44 xxx xxxJulia 0.09 0.28 0.57 45 34 49
Fortran 0.08 6 10−6 0.62 44 16 275(16)
![Page 66: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/66.jpg)
Performance
to prove that Julia is fast language, we did some tests
benchmarks sources taken from the Julia site and modified
all times are in milliseconds
on a Z800 (8 threads, 24G of memory),
appli fib mandel quicksort pisum randstat randmul
Matlab 191 22 28 57 97 69Octave 924 310 1138 21159 484 109Python 4 7 14 1107 253 101Pypy 8 3(faux) 13 44 xxx xxxJulia 0.09 0.28 0.57 45 34 49
Fortran 0.08 6 10−6 0.62 44 16 275(16)
![Page 67: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/67.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 68: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/68.jpg)
Conclusion
pros :
a true language, with lots of powerful features,
Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 69: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/69.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 70: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/70.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 71: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/71.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),
no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 72: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/72.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelism
small community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 73: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/73.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 74: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/74.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 75: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/75.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macros
reflectionpackaging system based on Git
more info at http://julialang.org/
![Page 76: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/76.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflection
packaging system based on Git
more info at http://julialang.org/
![Page 77: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/77.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/
![Page 78: Introduction to the Julia language - Inria Bordeaux Sud-Ouest SEDsed.bordeaux.inria.fr/seminars/julia_20131015.pdf · 2019-03-28 · Julia ’s syntax is very similar to langages](https://reader030.fdocuments.net/reader030/viewer/2022040118/5e34482a29f5d93c54430540/html5/thumbnails/78.jpg)
Conclusion
pros :
a true language, with lots of powerful features,Julia is fast!
cons :
poor graphics support (only 2D with additional package),no support for shared-memory parallelismsmall community
some non presented points :
meta-programming aspects : macrosreflectionpackaging system based on Git
more info at http://julialang.org/