Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

High performance computing language,julia


Published on

Rapidly growing technology-HIGH PERFORMANCE COMPUTING .A language to support this is julia which is not known to every one

Published in: Technology
  • Be the first to comment

High performance computing language,julia

  1. 1. Presented by D.ANUSHA G.SAILAJA
  2. 2.  Introduction  Importance of julia  Features  Julia with other programming languages  Sample program on julia  Advantages  Disadvantages  Conclusion Contents
  3. 3. 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.
  4. 4.  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
  5. 5. 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.
  6. 6. Multiple dispatch Good performance Built-in package manager Call c functions directly Parallel computing Special FEATURES of Julia
  7. 7. All arguments are equally responsible to determine a method. In single dispatch the calls"fast") and 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
  8. 8.  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
  9. 9. Execution time Julia with other programming languages
  10. 10. 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
  11. 11.  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
  12. 12. # 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
  13. 13. Development of Julia
  14. 14.  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
  15. 15.  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
  16. 16. 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.
  17. 17. computing.html References:
  18. 18. ANY QUERIES???