Viral B. Shah
Co-inventor of Julia
Julia Computing Inc.
location_on India
Member since 5 years
Viral B. Shah
Specialises In (based on submitted proposals)
Please see my LinkedIn page:https://www.linkedin.com/in/viralbshah and my GitHub page: https://github.com/ViralBShah
For more information on Julia, see http://www.julialang.org/. Julia Computing Inc. (http://www.juliacomputing.com/) provides training, support and consulting for commercial users of Julia.
-
keyboard_arrow_down
Computational Machine Learning
Viral B. ShahCo-inventor of JuliaJulia Computing Inc.Abhijith ChandraprabhuData ScientistJulia Computingschedule 1 year ago
Sold Out!480 Mins
Workshop
Intermediate
You have been hearing about machine learning (ML) and artificial intelligence (AI) everywhere. You have heard about computers recognizing images, generating speech, natural language, and beating humans at Chess and Go.
The objectives of the workshop:
-
Learn machine learning, deep learning and AI concepts
-
Provide hands-on training so that students can write applications in AI
-
Provide ability to run real machine learning production examples
-
Understand programming techniques that underlie the production software
The concepts will be taught in Julia, a modern language for numerical computing and machine learning - but they can be applied in any language the audience are familiar with.
Workshop will be structured as “reverse classroom” based laboratory exercises that have proven to be engaging and effective learning devices. Knowledgeable facilitators will help students learn the material and extrapolate to custom real world situations.
-
-
keyboard_arrow_down
Models as Code Differentiable Programming with Julia
45 Mins
Keynote
Intermediate
Since we originally proposed the need for a first-class language, compiler and ecosystem for machine learning (ML) - a view that is increasingly shared by many, there have been plenty of interesting developments in the field. Not only have the tradeoffs in existing systems, such as TensorFlow and PyTorch, not been resolved, but they are clearer than ever now that both frameworks contain distinct "static graph" and "eager execution" interfaces. Meanwhile, the idea of ML models fundamentally being differentiable algorithms – often called differentiable programming – has caught on.
Where current frameworks fall short, several exciting new projects have sprung up that dispense with graphs entirely, to bring differentiable programming to the mainstream. Myia, by the Theano team, differentiates and compiles a subset of Python to high-performance GPU code. Swift for TensorFlow extends Swift so that compatible functions can be compiled to TensorFlow graphs. And finally, the Flux ecosystem is extending Julia’s compiler with a number of ML-focused tools, including first-class gradients, just-in-time CUDA kernel compilation, automatic batching and support for new hardware such as TPUs.
This talk will demonstrate how Julia is increasingly becoming a natural language for machine learning, the kind of libraries and applications the Julia community is building, the contributions from India (there are many!), and our plans going forward.
-
keyboard_arrow_down
Julia - A Lisp for Fast Number Crunching
Viral B. ShahCo-inventor of JuliaJulia Computing Inc.Shashi Gowdagrad studentJulia Languageschedule 4 years ago
Sold Out!90 Mins
Workshop
Intermediate
Julia is a programming language for data science and numerical computing. Julia is a high-level, high-performance dynamic language, it uses just-in-time compilation to provide fast machine code - dynamic code runs at about half the speed of C, and orders of magnitude faster than traditional numerical computing tools.
Julia borrows two main ideas from Lisp lore:
- Multiple-dispatch: a method is identified by a name and the types of all of its arguments (traditional OOP only uses the type of a single argument) multiple-dispatch allows for a natural programming model suitable for mathematics and general purpose programming. Interestingly, the same feature is responsible for Julia's ability to generate really fast machine code.
- Macros: Julia has syntax that is familiar to users of other technical computing environments, however, Julia expressions are homoiconic -- Julia code can be represented as Julia data structures, and transformed from one form to another via hygienic macros. There are some very interesting uses of macros to create domain-specific languages for effective programming.
-
keyboard_arrow_down
Building an Open Source Community
20 Mins
Keynote
Beginner
Julia is a modern language that combines the productivity of Python, R, Matlab, and SAS with the performance of C, Fortran and Java. In doing so, it solves the two language problem, where specialists write algorithms in a scripting language and then programmers deploy it in a systems language.
In this talk, I will share our experience about the evolution of the Julia community - how it grew from 3 contributors to 500, and from 0 to 1000 packages in the last 3 years. -
keyboard_arrow_down
Why Julia?
60 Mins
Keynote
Beginner
In this talk, I will talk about our motivation for creating Julia. Julia is a high-level, high-performance dynamic programming language. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. Julia’s Base library, largely written in Julia itself, also integrates mature, best-of-breed open source C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. In addition, the Julia developer community is contributing a number of external packages through Julia’s built-in package manager at a rapid pace. This is why Julia is seeing rapid adoption in universities for teaching and research, as well as in businesses.
I will discuss what makes Julia fast. Julia's ability to combine these levels of performance and productivity in a single language stems from the choice of a number of features that work well with each other:
- An expressive parametric type system, allowing optional type annotations;
- Multiple dispatch using those types to select implementations;
- A dynamic dataflow type inference algorithm allowing types of most expressions to be inferred;
- Aggressive code specialization against run-time types;
- Metaprogramming;
- Just-In-Time compilation using the LLVM compiler framework; and
- Careful design of the language and standard library to be amenable to type analysis;
I will also touch upon how the language design has made it possible to explore many parallel programming models in Julia, completely within the language.
-
keyboard_arrow_down
Julia - A Lisp for Fast Number Crunching
Shashi Gowdagrad studentJulia LanguageViral B. ShahCo-inventor of JuliaJulia Computing Inc.schedule 5 years ago
Sold Out!240 Mins
Workshop
Beginner
Julia is a programming language for data science and numerical computing. Julia is a high-level, high-performance dynamic language, it uses just-in-time compilation to provide fast machine code - dynamic code runs at about half the speed of C, and orders of magnitude faster than traditional numerical computing tools.
Julia borrows two main ideas from Lisp lore:
- Multiple-dispatch: a method is identified by a name and the types of all of its arguments (traditional OOP only uses the type of a single argument) multiple-dispatch allows for a natural programming model suitable for mathematics and general purpose programming. Interestingly, the same feature is responsible for Julia's ability to generate really fast machine code.
- Macros: Julia has syntax that is familiar to users of other technical computing environments, however, Julia expressions are homoiconic -- Julia code can be represented as Julia data structures, and transformed from one form to another via hygienic macros. There are some very interesting uses of macros to create domain-specific languages for effective programming.
(I will be presenting this workshop along with Viral B Shah - co-creator of Julia)
-
No more submissions exist.
-
No more submissions exist.