high performance computing language,julia

Post on 12-Jan-2017

538 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Presented by

D.ANUSHA

G.SAILAJA

HIGH PERFORMANCE COMPUTING LANGUAGE,JULIA

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

Contents

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.

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

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.

Multiple dispatchGood performanceBuilt-in package managerCall c functions directlyParallel computing

Special FEATURES of Julia

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

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

Execution time

Julia with other programming languages

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

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

# 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

Development of Julia

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

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

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.

ANY QUERIES???

THANK YOU….

top related