Julia is a high-level, high performance, open-source programming language for numerical computing. Alan Edelman, Jeff Bezanson, Stefan Karpinski, Keno Fischer and Deepak Vinchhi and Viral Shah founded Julia Computing in 2015. In July, the company raised $24 million in Series A led by Dorilton Ventures, with participation from Menlo Ventures, General Catalyst, and HighSage Ventures.
Analytics India Magazine caught up with CEO Viral Shah to get insights into the inner workings of the company, current projects, Copilot and future plans. “I’m always proud of starting the Julia project while I was based out of Bangalore and forming a significant community of contributors from India. Half of Julia’s Google Summer of Code students are from universities in India,” he said.
Apart from co-developing one of the most popular numerical programming languages, Shah was actively involved in the Aadhaar project. He is also the co-author (along with Nandan Nilekani) of ‘Rebooting India’.
AIM: How did Julia evolve over the years?
Viral Shah: When Julia programming language was conceived at MIT back in 2009 to solve a problem that still exists for non-Julia users: the need to use two (or more) languages, one for speed (often C or C++) and another that makes programming complex systems a more pleasant experience (such as Python).
We asked a deceptively simple question: Is it possible to create a single language that combines the simplicity of Python with the speed of C? The answer to that question is yes, and Julia delivers on that promise, effectively solving the two language problems.
The Julia community released Julia 1.0 in 2018. Today, Julia has been downloaded more than 29 million times. In addition, there are more than 6,000 packages, over 200 thousand GitHub stars for Julia and its packages. More than 1,500 universities and more than 10,000 companies use Julia.
Julia is used for pharmaceutical modelling, risk analysis, planning space missions, optimising school bus routes, cataloguing deep space objects, protecting the electrical grid, aviation safety, modelling human, animal, plant and gene migration, calculating glacier ice thickness, robot locomotion, energy trading, dairy farming, macroeconomic modelling, delivering medical supplies via drone, medical diagnosis, autonomous driving and 3D printing.
AIM: How do you plan to use the recent funding?
Viral Shah: Julia Computing plans to use the funding to hire engineers who have a vision and a passion for reinventing technical computing. We will roll out a cloud product suite for industry clients such as finance, pharmaceuticals, and energy. We are also expanding our go-to-market team and looking for world-class leaders in sales and marketing. We provide our customers with the tools they need to be more productive, lower their compute cost, reduce their data center emissions, and get to market faster.
And it’s all built-in Julia, the fastest and easiest high productivity language for scientific computing.
We are excited to have the backing of top venture firms such as Dorilton Ventures, Menlo Ventures, and General Catalyst. Industry veteran Bob Muglia, former Snowflake CEO and former Microsoft President of Servers and Tools, has joined our board.
AIM: What are the latest offerings from Julia Computing?
Viral Shah: JuliaHub provides the power of a supercomputer at the fingertips of every data scientist and engineer. It is a cloud-based platform that lets users write Julia programs and scale jobs from a single node to dozens, hundreds, or thousands of CPUs. Julia is one of the only languages to run on GPUs natively, and JuliaHub provides effortless access to GPUs. In addition to developing Julia-based programs, JuliaHub also makes it easy for users to leverage Julia’s cutting-edge scientific ML (or sciml) capabilities and access various industry-specific applications. Products such as Pumas for pharmaceutical modeling and simulation, JuliaSim for multi-physics modeling and simulation, and JuliaSPICE for electronic circuit simulation combine traditional simulation with modern ML approaches to provide an easy-to-use interface for technical users.
AIM: What are your plans with JuliaHub platform?
Viral Shah: JuliaHub is the quickest and easiest on-ramp to leverage Julia.
JuliaHub empowers engineers, data scientists, and innovators with all the high-performance computing power to implement their ideas at any scale.
JuliaHub can turn laptops into supercomputers and keep organisations asset-light, delivering speed, agility, and frictionless performance. In addition, JuliaHub offers effortless parallel computing without infrastructure hurdles. It is a secure platform with enterprise support.
Most importantly, JuliaHub allows the user to develop applications with a browser-based IDE, collaborate with ease, and perform large computational tasks in the cloud. Cost projections are straightforward, transparent, and available immediately–before the project even begins. Submitting a job is effortless and intuitive, thanks to the clear interface which also offers dedicated space and tools for uploading and manipulating large datasets.
In partnership with Pumas-AI, we provide Pumas on JuliaHub – an industry-leading package for pharmaceutical modelling and simulation.
AIM: What are your offerings in AI and machine learning?
Viral Shah: JuliaHub is a platform that makes it easy for Julia users to develop and scale their AI models using various deep learning packages such as Flux.jl, Knet.jl and the ecosystem of models. Unsupervised algorithms are available through packages such as XGBoost.jl. What makes JuliaHub unique is it also provides a suite of domain-specific AI applications such as Pumas (pharmaceuticals), JuliaSim (engineering), and JuliaSPICE (circuit design). Pumas makes it easy for pharmaceutical researchers to use AI and ML techniques to identify promising new drugs, predict toxicity, identify optimal dosing, and more. JuliaSim lets building designers use AI and ML for multi-physics simulations – such as making buildings more comfortable and energy-efficient, reducing emissions, designing batteries, and planning space missions. JuliaSPICE solves the two-language problem in circuit design.
AIM: How does Julia language stack up against Python and R, especially in data science applications?
Viral Shah: Julia’s data science ecosystem has seen immense improvement and growth in the last two years. It started with carefully designed language support for missing data. Based on this foundation, the JuliaData community has built out several high quality and high-performance packages such as CSV.jl (for loading data from CSV files), DataFrames.jl (for data manipulation and analysis), Arrow.jl (to interoperate with the Arrow ecosystem), and Tables.jl (a generic API for working with tabular data). The JuliaData ecosystem of packages provides similar capabilities to those in R and Python but often higher performance.
The benchmarks demonstrate that the Julia ecosystem is on par with R and Python and deliver higher performance than most of the commonly used packages in other languages. Julia’s data science ecosystem greatly benefits from multi-threading, as demonstrated in The Great CSV Shodown. Julia’s composable multi-threading allows user code and package code to be written in a multi-threaded style providing higher performance and making it possible to process terabyte-sized datasets on a single large server. Many use JuliaHub’s large servers for precisely this purpose – you can easily leverage a hundred cores on a server with a terabyte of RAM. This level of scalability also means that Julia users do not need to move to spark for extensive data analysis, as is commonly done by Python and R users.
AIM: You have said technical computing is stuck in a rut today. Could you elaborate?
Viral Shah: From a technical point of view, many of today’s systems for numerical computing are stuck in a local basin of performance and ease of use. Today, all the commonly used languages and technologies were designed at least three decades ago, whether Python, R, SAS, or Matlab. Thus, the industry forced engineers and data scientists to use these languages for their prototyping and then rewrite their code in a low-level language such as C++. The two language problem dramatically constrains productivity, leads to code being transferred to a new…