Vous êtes sur la page 1sur 19

HIGH PERFORMANCE

COMPUTING
LANGUAGE,JULIA
Presented by
D.ANUSHA
G.SAILAJA

Contents
Introduction
Importance of julia
Features
Julia with other programming languages
Sample program on julia
Advantages
Disadvantages
Conclusion

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.

Why Julia

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.

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.

Special FEATURES of Julia


Multiple dispatch
Good performance
Built-in package manager
Call c functions directly
Parallel computing

Multiple dispatch
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.

High-Performance JIT
Compiler
Julias LLVM-based just-in-time (JIT) compiler
combined with the languages design allow it to
approach and often match the performance of C
Julias ability to compile code that reads like
Python into machine code that performs like C
almost entirely derives from Julias ability to
specialize function definitions in this way.

Julia with other programming


languages
Execution time

Built-in package manager


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

Call c functions directly


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 Julias
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.

Sample program on julia


// C

# julia

#define M 500

function mmult(A,B)

void mmult(double A[M][M],double B[M]


[M],doubleC[M][M])

(M,N) = size(A);

for i=1:M
//double C[M][M];

C = zeros(M,M);

for j=1:M

int i,j,k;

for k=1:M

for(i=0; i<M; i++)

C[i,j] += A[i,k]*B[k,j];

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];
}
}

end
end
end
C;
end

Development of Julia

Advantages
Julia already possesses a mature package ecosystem

and can be used as a feature-complete replacement for


R or Python.
Julias 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.

Disadvantages
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.

Conclusion
Julia is a flexible dynamic language, appropriate
for scientific and numerical computing
Julia 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.

References:
http://radar.oreilly.com/2013/10/julias-role-in-data-science.html
http://
www.nowozin.net/sebastian/blog/the-julia-language-for-scienti
fic-computing.html
http://www.evanmiller.org/why-im-betting-on-julia.html
http://julialang.org/
http://docs.julialang.org/en/release-0.4/manual/functions/

ANY QUERIES???

U
O
Y
K
N
THA

Vous aimerez peut-être aussi