6. Avoid two language problem
One language for rapid development
The other for performance
Example:
Python for rapid development
C for performance
6
13. Nobel prize in economic sciences
The founder of QuantEcon
“His team at NYU uses Julia for macroeconomic modeling and contributes
to the Julia ecosystem.”
https://juliacomputing.com/case-studies/thomas-sargent.html
13
14. In 2015, economists at the Federal Reserve Bank of New York (FRBNY)
published FRBNY’s most comprehensive and complex macroeconomic
models, known as Dynamic Stochastic General Equilibrium, or DSGE
models, in Julia.
https://juliacomputing.com/case-studies/ny-fed.html
14
15. UK cancer researchers turned to Julia to run simulations of tumor growth.
Nature Genetics, 2016
Approximate Bayesian Computation (ABC) algorithms require potentially millions of
simulations - must be fast
BioJulia project for analyzing biological data in Julia
Bayesian MCMC methods Lora.jl and Mamba.jl
https://juliacomputing.com/case-studies/nature.html
15
16. IBM and Julia Computing analyzed eye fundus images provided by Drishti
Eye Hospitals.
Timely screening for changes in the retina can help get them to treatment
and prevent vision loss. Julia Computing’s work using deep learning
makes retinal screening an activity that can be performed by a trained
technician using a low cost fundus camera.
https://juliacomputing.com/case-studies/ibm.html
16
17. Path BioAnalytics is a computational biotech company developing novel
precision medicine assays to support drug discovery and development,
and treatment of disease.
https://juliacomputing.com/case-studies/pathbio.html
17
18. The Sloan Digital Sky Survey contains nearly 5 million telescopic images of
12 megabytes each – a dataset of 55 terabytes.
In order to analyze this massive dataset, researchers at UC Berkeley and
Lawrence Berkeley National Laboratory created a new code named
Celeste.
https://juliacomputing.com/case-studies/intel-astro.html
18
24. 變數
動態型別語言特性
Value is immutable
x = 5
println(x) # 5
println(typeof(x)) # Int64
x = 6.0
println(x) # 6.0
println(typeof(x)) # Float64
24
25. 算術運算子
+x: 就是x本身
-x: 變號
x + y, x - y, x * y, x / y: 一般四則運算
div(x, y): 商
x % y: 餘數,也可以用rem(x, y)
x y: 反除,等價於y / x
x ^ y: 次方
25
26. 位元運算子
~x: bitwise not
x & y: bitwise and
x | y: bitwise or
x $ y: bitwise xor
x >>> y:無正負號,將x的位元右移y個位數
x >> y:保留正負號,將x的位元右移y個位數
x << y: 將x的位元左移y個位數
https://www.technologyuk.net/mathematics/number-systems/images/binary_number.gif
26
46. Easy to optimize
Allow generalization and flexibility, and enable to optimize.
Hints:
Avoid global variables
Add type declarations
Measure performance with @time and pay attention to memory
allocation
……
46
75. Probability
JuliaStats
JuliaOpt
JuMP.jl
Convex.jl
JuliaML
LearnBase.jl
LossFunctions.jl
ObjectiveFunctions.jl
PenaltyFunctions.jl
Klara.jl: MCMC inference in Julia
Mamba.jl: Markov chain Monte
Carlo (MCMC) for Bayesian
analysis in julia
75
82. Jobs
Apple, Amazon, Facebook, BlackRock, Ford, Oracle
Comcast, Massachusetts General Hospital
Farmers Insurance
Los Alamos National Laboratory and the National
Renewable Energy Laboratory
82
https://juliacomputing.com/press/2017/01/18/jobs.html
83. Julia Taiwan
FB社群: https://www.facebook.com/groups/JuliaTaiwan/
新知發布: https://www.facebook.com/juliannewstw/
83
the next generation of macroeconomic models is very computationally intensive with large datasets and large numbers of variables
First, as free software
Second, as the models that we use for forecasting and policy analysis grow more complicated, we need a language that can perform computations at a high speed