high performance computing language,julia
TRANSCRIPT
![Page 1: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/1.jpg)
Presented by
D.ANUSHA
G.SAILAJA
HIGH PERFORMANCE COMPUTING LANGUAGE,JULIA
![Page 2: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/2.jpg)
Introduction Importance of julia Features Julia with other programming languages Sample program on julia Advantages Disadvantages Conclusion
Contents
![Page 3: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/3.jpg)
Introduction
As high-performance computing (HPC) bends to the
needs of "big data" applications, speed remains essential
The programs are getting more and more complex and
time-consuming to develop. A few years ago, when an
HPC startup Edelman was involved in Interactive
Supercomputing .It was acquired by Microsoft and its
group set out to develop a programming language, julia.
![Page 4: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/4.jpg)
Julia is a high-level, high-performance dynamic
programming language for technical computing, with
syntax that is familiar to users of other technical
computing environments.
It provides a sophisticated compiler, distributed parallel
execution, numerical accuracy.
Why Julia
![Page 5: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/5.jpg)
The creators wanted a language that satisfies:
1.The speed of C.
2. With the dynamism of Ruby.
3. Mathematical notations like Matlab.
4. As usable for general programming as Python.
5.As easy for statistics as R.
![Page 6: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/6.jpg)
Multiple dispatchGood performanceBuilt-in package managerCall c functions directlyParallel computing
Special FEATURES of Julia
![Page 7: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/7.jpg)
All arguments are equally responsible to determine a method.In single dispatch the calls cat.run("fast") and cat.run(5) would dispatch to the same method and it is up to the method to do different things with the different types of the second parameter. In Julia run(cat, "fast") and run(cat, 5) dispatch to separate methods.
Multiple dispatch
![Page 8: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/8.jpg)
Julia’s LLVM-based just-in-time (JIT) compiler
combined with the language’s design allow it to
approach and often match the performance of C
Julia’s ability to compile code that reads like
Python into machine code that performs like C
almost entirely derives from Julia’s ability to
specialize function definitions in this way.
High-Performance JIT Compiler
![Page 9: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/9.jpg)
Execution time
Julia with other programming languages
![Page 10: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/10.jpg)
Foreign function interfaces to a number of
languages like C and Fortran, C++ (unfortunately
planned only for Julia 0.5), Python, R, Matlab.
This makes it relatively easy to use code in any of
these languages
Built-in package manager
![Page 11: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/11.jpg)
To allow easy use of this existing code, Julia
makes it simple and efficient to call C and
Fortran functions.
The machine instructions generated by Julia’s
JIT are the same as a native C call would be, so
the resulting overhead is the same as calling a
library function from C code.
Call c functions directly
![Page 12: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/12.jpg)
# julia
function mmult(A,B)
(M,N) = size(A);
C = zeros(M,M);
for i=1:M
for j=1:M
for k=1:M
C[i,j] += A[i,k]*B[k,j];
end
end
end
C;
end
// C
#define M 500
void mmult(double A[M][M],double B[M][M],doubleC[M][M])
{
//double C[M][M];
int i,j,k;
for(i=0; i<M; i++)
for(j=0; j<M; j++){
C[i][j] = 0;
for(k=0; k<M; k++)
C[i][j] += A[i][k]*B[k][j];
}
}
Sample program on julia
![Page 13: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/13.jpg)
Development of Julia
![Page 14: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/14.jpg)
Julia already possesses a mature package ecosystem and
can be used as a feature-complete replacement for R or
Python.
Julia’s compiler is so good that it will make any piece of
code fast – even bad code.
It's touted as a high-level language, which means it's
easier to learn. It's normally faster to write code in a
high-level language.
Advantages
![Page 15: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/15.jpg)
Julia arrays are 1-indexed, which can really trip you up sometimes when you're used to Python, C/++, Java, etc.
Julia list comprehensions (currently) lack the ability to use conditionals, unlike Python. One can do this with for loops and if/else, though, as normally done.
Julia dictionaries are hashed differently than Python dictionaries, which can make them slower in many cases.
Disadvantages
![Page 16: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/16.jpg)
ConclusionJulia is a flexible dynamic language, appropriate for scientific and numerical computingJulia combines the features of many other programming languages like C, Matlab and Java etc.Existence of JIT Compiler in Julia increases the performance of computuing.
![Page 17: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/17.jpg)
http://radar.oreilly.com/2013/10/julias-role-in-data-science.htmlhttp://www.nowozin.net/sebastian/blog/the-julia-language-for-scientific-computing.htmlhttp://www.evanmiller.org/why-im-betting-on-julia.htmlhttp://julialang.org/http://docs.julialang.org/en/release-0.4/manual/functions/
References:
![Page 18: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/18.jpg)
ANY QUERIES???
![Page 19: High performance computing language,julia](https://reader035.vdocument.in/reader035/viewer/2022081511/587672221a28abd0018b6505/html5/thumbnails/19.jpg)
THANK YOU….