티스토리 뷰
Julia 소개
전체적인 소개는 https://julialang.org/ (Julia 공식 홈페이지)링크로 대체하겠다.
가장 큰 장점은 1. 속도, 2. 쉬운 문법 이라고 생각한다.
1. 속도
포트란 | 줄리아 | 파이썬 | R | 매트랩 | 옥타브 | 매스매티카 | 자바스크립트 | Go | 루아JIT | 자바 | |
---|---|---|---|---|---|---|---|---|---|---|---|
gcc 5.1.1 | 0.4.0 | 3.4.3 | 3.2.2 | R2015b | 4.0.0 | 10.2.0 | V8 3.28.71.19 | go1.5 | gsl-shell 2.3.1 | 1.8.0_45 | |
fib | 0.70 | 2.11 | 77.76 | 533.52 | 26.89 | 9324.35 | 118.53 | 3.36 | 1.86 | 1.71 | 1.21 |
parse_int | 5.05 | 1.45 | 17.02 | 45.73 | 802.52 | 9581.44 | 15.02 | 6.06 | 1.20 | 5.77 | 3.35 |
quicksort | 1.31 | 1.15 | 32.89 | 264.54 | 4.92 | 1866.01 | 43.23 | 2.70 | 1.29 | 2.03 | 2.60 |
mandel | 0.81 | 0.79 | 15.32 | 53.16 | 7.58 | 451.81 | 5.13 | 0.66 | 1.11 | 0.67 | 1.35 |
pi_sum | 1.00 | 1.00 | 21.99 | 9.56 | 1.00 | 299.31 | 1.69 | 1.01 | 1.00 | 1.00 | 1.00 |
rand_mat_stat | 1.45 | 1.66 | 17.93 | 14.56 | 14.52 | 30.93 | 5.95 | 2.30 | 2.96 | 3.27 | 3.92 |
rand_mat_mul | 3.48 | 1.02 | 1.14 | 1.57 | 1.12 | 1.12 | 1.30 | 15.07 | 1.42 | 1.16 | 2.36 |
그림: C와 비교한 벤치마크 수행 시간 (작은 숫자가 더 좋음, C 성능 = 1.0 기준).
C와 포트란 코드는 gcc 5.1.1을 사용하여 모든 최적화 수준(-O0 부터 -O3까지)을 넣고 컴파일 하였다. C, 포트란, Go와 줄리아는 OpenBLAS v0.2.14을 사용했다. 파이썬 3 은 아나콘다 배포판을 이용했다. 파이썬 구현 중 rand_mat_stat와 rand_mat_mul은 NumPy (v1.9.2) 함수를 사용하였고, 나머지는 순수하게 파이썬으로만 구현하였다.
벤치마크 결과는 여기에서 도표로 볼 수 있고 Gadfly를 사용하였다.
(출처 : https://Julialang.org)
2. 쉬운 문법
function mandel(z)
c = z
maxiter = 80
for n = 1:maxiter
if abs(z) > 2
return n-1
end
z = z^2 + c
end
return maxiter
end
(출처 : https://Julialang.org)
Julia 설치 (Windows)
windows 용 Julia 설치는 간단하다.
https://julialang.org/downloads/ 링크를 타고 들어가서 윈도우용 설치파일(.exe) 파일을 다운받아 실행하면 끝.
Julia 설치 (Ubuntu)
터미널에 다음과 같이 치면 된다.
sudo add-apt-repository ppa:staticfloat/juliareleases sudo add-apt-repository ppa:staticfloat/julia-deps sudo apt-get update sudo apt-get install julia |
julia |
를 치면 실행된다.
개발도구
개발도구로는 주로 IJulia를 사용하게 된다. Julia 실행 후 다음과 같이 치면 IJulia가 설치된다.
Pkg.add("IJulia")
이후에 Jupyter notebook으로 작업할 수 있다.
using IJulia
notebook()
notebook 사용시 기본 directory 말고 다른 directory로 사용하고 싶다면
notebook(dir="WORKING_DIRECTORY")
와 같이 WORKING_DIRECTORY 를 바꾸고 실행하면 된다.
출처