0% found this document useful (0 votes)
205 views19 pages

Full Analyse of JULIA

This document discusses the Julia programming language, which was created for high-performance technical computing. Julia aims to combine the speed of C with the dynamism of Ruby and the mathematical notation of MATLAB. It features multiple dispatch, a built-in package manager, the ability to call C functions directly, and parallel computing. The document provides an example of a matrix multiplication program in both C and Julia to demonstrate Julia's high performance. While Julia arrays use 1-based indexing like MATLAB, its dictionaries can be slower than Python's. Overall, Julia is presented as a flexible dynamic language suitable for scientific and numerical applications.

Uploaded by

renan55026
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
205 views19 pages

Full Analyse of JULIA

This document discusses the Julia programming language, which was created for high-performance technical computing. Julia aims to combine the speed of C with the dynamism of Ruby and the mathematical notation of MATLAB. It features multiple dispatch, a built-in package manager, the ability to call C functions directly, and parallel computing. The document provides an example of a matrix multiplication program in both C and Julia to demonstrate Julia's high performance. While Julia arrays use 1-based indexing like MATLAB, its dictionaries can be slower than Python's. Overall, Julia is presented as a flexible dynamic language suitable for scientific and numerical applications.

Uploaded by

renan55026
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy