Hardware Platforms With Thousands Of Cores Coming
An Intel researcher's blog said software developers need to consider major changes in their code base to prepare for many-core computing.
Intel is nudging software developers to think about programming for hardware platforms that are likely to reach thousands of processor cores.
The heads-up is in a research blog penned by Anwar Ghuloum, principal engineer with Intel's Microprocessor Technology Lab. In "Unwelcome Advice," published Monday, the researcher says he has been increasingly discussing with developers how to scale performance to core counts "that we aren't yet shipping, but in some cases we've hinted heavily that we're heading in this direction."
More Hardware Insights
- The Untapped Potential of Mobile Apps for Commercial Customers
- Real-Time Analytics: Big Data. Real Answers. Big Impact.
- Top 10 Considerations for Getting Started with Virtualization
- Don't Get Stuck on your Virtualization Journey: Where to Focus Next
"Dozens, hundreds, and even thousands of cores are not unusual design points around which the conversations meander," Ghuloum said.
In programming to large numbers of cores, developers need to go back to the algorithmic drawing board, Ghuloum said. Developers should consider major changes in their code base, including languages, libraries, and engineering methodologies and conventions.
"Ultimately, the advice I'll offer is that these developers should start thinking about tens, hundreds, and thousands of cores now in their algorithmic development and deployment pipeline," Ghuloum said.
Developers working in high-performance computing environments found in research organizations and the oil and gas and financial services industries are familiar with many-core development. Mainstream developers, however, are less likely to do the extra work to program for more cores than are currently shipping in products.
"For more mainstream application developers, this advice [preparing for many-core environments] is usually unwelcome, but it is an encouraging sign that developers are increasingly coming to this realization on their own," Ghuloum said.
For its part, the chipmaker is working on the tools developers will need. Intel researchers, for example, have developed a programming language called Ct specifically for multicore computing.
The language is an extension of C/C++, which are very familiar to software developers getting applications ready to run on platforms from Intel or rival Advanced Micro Devices. Where the other 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, told InformationWeek in a recent interview. "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. Intel also has developed the runtime and an application programming interface for the compiler.