As Intel and rival Advanced Micro Devices increase computer performance by adding cores to microprocessors, software makers are left with the daunting task of writing applications that take full advantage of the complex environment. Intel hopes to lend a hand through a new programming language -- called Ct -- the chipmaker has developed specifically for multi-core computing.
Ct was among the dozens of projects Intel had on display Wednesday at the Computer History Museum, Mountain View, Calif. While most of the technology demonstrated at the open house for Intel labs is years away from being productized, Ct is relatively close.
The language is an extension of C/C++, which are very familiar to software developers getting applications ready to run on Intel or AMD platforms. Where the languages require developers to manually partition code to run on specific cores, Ct does it automatically. "With Ct, it's almost like you're writing to a single-core machine," Mohan Rajagopalan, a senior researcher for Intel, said. "You leave it to the compiler and runtime to parallelize."
The Ct compiler developed by Intel chops up the code to run on separate cores based on the type of data and the operation being performed on the data, Rajagopalan said. Intel also has developed the runtime and an API for the compiler.
Most C/C++ programmers should be able to pick up Ct quickly, since less than 5% of the language will be new, according to Rajagopalan. In addition, programs compiled in Ct can scale to as many cores as are available. "Once the code is compiled, the runtime figures out the platform and adjusts accordingly," Rajagopalan said.
Intel is working with independent software vendors in developing the documentation and support that will be needed to adopt Ct. Intel has yet to decide whether to release the language to the open source community or take another route in distributing it. "We have the technology in place, so it's now about adoption," Rajagopalan said.
Among the developers that would find Ct particularly helpful will be those making financial analytics applications and software that performs lots of image processing or video decoding.