IBM's Corelet Language: Programming Like the Human Brain
No stranger to creating new programming languages and paradigm, IBM has embarked on an effort to complete a computer language that enables programmers to build applications that work like the human brain.
Over the years, IBM has invented languages such as Fortran, RPG and a host of others. Now, IBM Research has created a new programming model to support chips that mimic the workings of the human brain, known as Systems of Neuromorphic Adaptive Plastic Scalable Electronics, or SyNAPSE, chips.
In a project funded by the Defense Advanced Research Projects Agency (DARPA), IBM on Aug. 8 announced a breakthrough software ecosystem designed for programming silicon chips that have an architecture inspired by the function, low power and compact volume of the brain. The technology could enable a new generation of intelligent sensor networks that mimic the brain's perception, action and cognition abilities, according to IBM.
The company's long-term goal is to build a chip system with 10 billion neurons and a hundred trillion synapses, while consuming only 1kilowatt of power and occupying less than two liters of volume, Big Blue said.
To get there, IBM researchers had to deliver not only new hardware, but also a new software paradigm. The vendor said the new programming model is dramatically different from traditional software: IBM's new programming model breaks the mold of sequential operation underlying today's von Neumann architectures and computers. Instead, it is tailored for a new class of distributed, highly interconnected, asynchronous, parallel, large-scale cognitive computing architectures.
"Architectures and programs are closely intertwined, and a new architecture necessitates a new programming paradigm," said Dr. Dharmendra Modha, principal investigator and senior manager for the project in IBM Research. "We are working to create a FORTRAN for synaptic computing chips. While complementing today's computers, this will bring forth a fundamentally new technological capability in terms of programming and applying emerging learning systems."
Modha said IBM had to come up with a new programming language for its new non-von Neumann cognitive computing system architecture, known as TrueNorth. He explained that today's computers are left-brained and SyNAPSE is right-brained. Being left-brained refers to being more analytical, logical and objective, but SyNAPSE is more intuitive, thoughtful and subjective—all right-brained characteristics. So the sequential programming paradigm is unsuited for SyNAPSE
The new programming model consists of a high-level description of a "program" that is based on composable, reusable building blocks called "corelets ." Each corelet represents a complete blueprint of a network of neurosynaptic cores that specifies a based-level function.
Inner workings of a corelet are hidden, so only its external inputs and outputs are exposed to other programmers, who can concentrate on what the corelet does, rather than how it does it. Corelets can be combined to produce new corelets that are larger, more complex or have added functionality.
IBM also has created an object-oriented Corelet language for creating, composing and decomposing corelets. This language enables the construction of complex cognitive algorithms and applications, while being efficient for TrueNorth and effective for programmer productivity.
IBM said object-oriented programming (OOP) is ideal for implementing corelets, and the Corelet language includes fundamental features of OOP, including encapsulation, inheritance and polymorphism.
“Defining a corelet as a class in an OOP framework grants us encapsulation, inheritance and polymorphism, and dramatically improves the design, structure, modularity, correctness, consistency, compactness and reusability of code,” Modha and a team of IBM researchers wrote in a paper on the language.
The research team also said IBM has implemented the Corelet language using MATLAB OOP, “which has the additional advantage of being a compact language for matrix and vector expressions and computations.”
In addition, IBM has delivered a Corelet library that acts as an ever-growing repository of reusable corelets from which programmers can compose new corelets. The library is a repository of consistent, verified, parameterized, scalable and composable functional primitives, according to the company.
To boost programmer productivity, IBM has designed and implemented a repository of more than 100 corelets in less than one year. Every time a new corelet is written—either from scratch or by composition—it can be added back to the library, which keeps growing in a self-reinforcing way.
Finally, IBM also constructed a Corelet laboratory. This programming environment integrates with the TrueNorth architectural simulator, Compass, to support all aspects of the programming cycle—from design, through development, debugging and up to deployment.
In one long, expressive sentence, the research team summed up the Corelet language, the overall SyNAPSE environment and the move to cognitive computing: “The value of the new paradigm to the programmer is freedom from thinking in terms of low-level hardware primitives; availability of tools to design at the functional level; ability to use a divide-and-conquer strategy in the process of creating and verifying individual modules separately; a new way of thinking in terms of simple modular blocks and their hierarchical composition, rather than having to deal with an unmanageably large network of neurosynaptic cores directly; guaranteed implementability on TrueNorth; ability to verify correctness, consistency and completeness; ability to reuse code and components; ease of large-scale collaboration; ability to configure more neurosynaptic cores per line of code and unit of time; access to an end-to-end environment for creating, compiling, executing and debugging; and the ability to use the same conceptual metaphor across functional blocks that range from a handful of synapses and neurons to networks of neurosynaptic cores with progressively increasing size and complexity.”
Meanwhile, as IBM researchers look at delivering more and more complex, large-scale TrueNorth programs, they are currently extending the programming paradigm using MATLAB’s Parallel Computing Toolbox.