Will Programmers Become Unnecessary? HPC-AI Researchers at MIT Report Programming Advance

We hear talk of AI’s growing programming prowess to the point that it could, extrapolating things out, come to dominate base-level programming if not more, inhibiting the skill development of programming newcomers or, even, eventually, undermine the need for programmers altogether.

Only today on X/Twitter, AI luminary Andrew Ng weighed in on the topic:

“Some people today are discouraging others from learning programming on the grounds AI will automate it. This advice will be seen as some of the worst career advice ever given. I disagree with the Turing Award and Nobel prize winner who wrote, “It is far more likely that the programming occupation will become extinct […] than that it will become all-powerful. More and more, computers will program themselves.”​ Statements discouraging people from learning to code are harmful!”

Ng’s conclusion: “As coding becomes easier, more people should code, not fewer!”

This debate will no doubt will rage on in a Hegelian-like way for some time. Contributing to the discussion is an article on today’s MIT News site, “High-Performance Computing, With Much Less Code,” which discusses how the a programming language, called Exo 2, enables reusable scheduling libraries external to compilers.

Andrew Ng

The article, by Adam Conner-Simons, cites the heavy investment companies – including Nvidia – make in hiring programming talent to create high performance library code for AI systems, “creating a competitive moat that has proven difficult for others to breach.”

Then Conner-Simons poses the question: “But what if a couple of students, within a few months, could compete with state-of-the-art HPC libraries with a few hundred lines of code, instead of tens or hundreds of thousands?”

In fact, according to the article, MIT researchers at the school’s Computer Science and AI Lab have accomplished this feat using Exo2.

Jonathan Ragan-Kelley, an MIT progressor, told MIT News that Exo 2 belongs to a new category of “user-schedulable” program language (USLs). “Instead of hoping that an opaque compiler will auto-generate the fastest possible code, USLs put programmers in the driver’s seat, allowing them to write “schedules” that explicitly control how the compiler generates code. This enables performance engineers to transform simple programs that specify what they want to compute into complex programs that do the same thing as the original specification, but much, much faster.”

USLs typically have their limitations. Conner-Simons writes that USLs have a relatively fixed set of scheduling operatons, “which makes it difficult to reuse scheduling code across different ‘kernels.’” But Exo 2 is differen,t it lets users “define new scheduling operations externally to the compiler, facilitating the creation of reusable scheduling libraries.”

The result is that schedule code can by cut by a factor of 100, according to Yuka Ikarashi, an MIT PhD student in electrical engineering and computer science and CSAIL, “and deliver performance competitive with state-of-the-art implementations on multiple different platforms, including Basic Linear Algebra Subprograms (BLAS) that power many machine learning applications.”

“It’s a bottom-up approach to automation, rather than doing an ML/AI search over high-performance code,” Ikarashi told MIT News. “What that means is that performance engineers and hardware implementers can write their own scheduling library, which is a set of optimization techniques to apply on their hardware to reach the peak performance.”

Check out the rest of the story here.

And join in Andrew Ng’s discussion on Twitter/X here.