Lack of software expertise dampens multicore use

As multicore processors enter mobile arena in tablets and smartphones, chipmakers warn lack of developer expertise in designing apps for such devices will render hardware enhancements "meaningless".
Written by Kevin Kwang, Contributor

The introduction of multicore processors for mobile devices such as tablets and smartphones might suggest better compute power and user experience but the hardware enhancements might be rendered meaningless if developers do not know how to develop apps that tap the power boost.

According to Francois Piednoel, senior performance analyst at Intel, developers need to understand that when creating apps for dual-core tablets and smartphones, they would have limited memory bandwidth to play with. Cell phones, for example, usually have LPDDR (low power double data rate) 1 or LPDDR 2 bandwidths which range between 1.6GB per second and 3GB per second. This means software developers will have much less bandwidth than on conventional CPUs, he noted.

"The challenge [for developers] is to maintain enough bandwidth to be able to feed their programs without disturbing the consumer electronics-like interface of devices like the Apple iPad or Motorola Xoom," Piednoel said in an e-mail.

Elaborating, he said more cores mean more cache, which means the memory controllers will already be "completely overwhelmed" while developers try to utilize their GPUs which--at the same time--utilizes the same controller. In a system which has integrated graphics, the memory controller will not be able to feed the GPU which would in turn have a negative impact on the system's responsiveness, he noted.

Lacking developer know-how
Memory constraints aside, Liat Ben-Zur, senior director of business development at Qualcomm, pointed to concurrent, or parallel, programming--specifically, debugging thread issues--as another roadblock for developers looking to introduce apps that could fully tap multicore functionalities.

She acknowledged that the "biggest benefit" of multicore chips on software development is concurrency, which could include concurrency of apps or content such as multiple HTML5 videos, for example. Furthermore, as device and screen size increase, processing power and concurrency requirements, together with faster speed CPUs, open up new opportunities for computationally-intensive apps to run on handsets for users on-the-go, Liat noted.

"The result is less differentiation between what developers create for PCs versus mobile devices," she added.

However, not many developers have the necessary concurrent programming know-how, the Qualcomm executive pointed out. Concurrent programming requires a lot of design ability with regard to algorithms and development techniques, which means developers "can't really just sit down and 'hack' it unless they have prior experience", she said.

Liat added that developers are at the mercy of what APIs (application programming interfaces) are "exposed by the mobile platform provider". If these providers have not opened up distinct APIs for developers to take advantage of multiple cores, then having the hardware is "meaningless", she noted. "The reality is that this technology trend of multicores can be somewhat confusing for most developers."

An earlier report showed that this lack of expertise is not exclusive to the mobile space but is also prevalent in the high-performance computing arena. Simon See, chief solution architect and director of solution architect at Nvidia, said the lack of training in parallel programming among researchers, for example, is hindering their adoption of the technology.

Maturing the ecosystem
The situation is improving, though, said AMD's product marketing director, John Taylor, who noted that expertise in programming GPUs to leverage the chips' "massive" compute capability is growing.

Citing survey findings from Evans Data, which include both North America and Asia-Pacific, Taylor said the number of developers either already actively developing multi-threaded applications or expecting to do so in the next 6 months is estimated to be about 60 percent of respondents.

The study also indicated that over a quarter of current multi-thread apps developers are already using OpenCL standards. OpenCL positions itself as the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in PCs, servers and handheld or embedded devices, according to its Web site.

"We see standards like OpenCL maturing quickly with the support of hardware and software companies as well as standards bodies like Khronos," Taylor predicted. He added that the chipmaker is working closely with developers, tools providers and standards organizations such as Khronos to support the ecosystem.

Initiatives such as professional training programs to help developers learn how to create applications that comply with OpenCL standards and an OpenCL University Kit, which encompasses course materials designed for universities to teach semester-long courses in OpenCL programming, are examples of AMD's commitment, he said.

Qualcomm, meanwhile, is investing more energy into middleware and Web app frameworks that "distribute loading of heavy tasks such as WebKit, V8 and HTML 5 features", said Liat.

The cell phone chipmaker is also working closely with many mobile platform providers to ensure effective APIs are introduced to take advantage of the parallel processing capabilities of multiple cores, she added.

Editorial standards