In the news
High-end computing is very much on people’s minds. At Argonne National Laboratory, the nearly complete Aurora is capable of 2 billion billion calculations per second (that second “billion” is not an error). Not to be outdone, Lawrence Livermore National Laboratory is building El Capitan, which it says “will likely be the most powerful supercomputer in the world.”
Hotrods like Aurora and El Capitan are coming along as artificial intelligence and machine learning (AI/ML) strengthen their position in mainstream business computing. And one of the challenges the world will face is writing code for such powerful machines.
In advanced ML and large-language-model applications, what’s needed is a language designed for both high performance and ease of use (for rapid development and experimentation). Historically, the industry has addressed this with a two-language approach: C or C++ core engines were optimized for performance, and then wrapped with Python for ease of use.
But this workaround isn’t ideal, as it makes it difficult to troubleshoot problems and build explainable AI. Hence the development and growing popularity of Julia, a high-level programming language especially well-suited to the type of algorithm development that will increasingly be used to address compute-intensive problems in natural language processing, computer vision and advanced analytics, with applications in climate change, healthcare, life sciences, education, manufacturing and more.
Already, Julia is being used in drug development, macroeconomic models and even to verify election results.
The Cognizant take
It’s important to understand how elegantly Julia solves the two-language problem, says Rajaram Venkataramani (Raj), Chief Architect in Cognizant’s AI & Analytics practice. These capabilities have inspired the motto, “Write like Python, run like C!” he notes.
“Because Julia is fast and friendly, developers can write everything from high-level business logic to low-level algorithms in one language,” he says. The advantage extends to performance; according to some benchmarks, Julia is 40 times faster than an equivalent Python program that uses optimized C routines.
Another strength of Julia, Raj says, is its applicability to business-technology collaboration. AI/ML algorithms heavily use probability, calculus and algebra, which are difficult to express in Python and C/C++ because they don't have language constructs to support. Julia, by contrast, “is designed as an expressive language to present algorithms that will allow core algorithm developers to collaborate with data scientists and AI engineers on business problems,” Raj says.
Julia cuts development costs, too. ln the world of AI application creation, developers begin with an hypothesis. They test it through experimentation, and when they’re happy with the model, they reengineer it to achieve the required performance, Raj says. Due to the painstaking nature of the process, it can take three to six months for a complex AI use case to go through this dev-train-test cycle using traditional tools, he says. But with Julia, “composability” is made possible through a feature called multiple dispatch, which reduces the cost of development by at least 30%.
Raj notes that Julia is even environmentally friendly, an important factor as the world races toward net zero. “It’s friendly not just to developers,” he says, “but also to the environment and business owners. It reduces the cost of computation and environmental impact during development and run times by orders of magnitude, depending on the complexity of the model and data intensity.”
So while hardware gets the headlines, it may be Julia that unlocks all that potential.