Need More Developer Heroes for India, says Intel
Over the last few years, the defining paradigm in computing performance has shifted inexorably from raw clock speed to parallel operations and energy efficiency. Saltmarch spoke to Narendra Bhandari, the Director for Asia Pacific of the Intel Software and Services Group - Developer Relations Division at Intel, to find out how industry participants are adapting to this change. Narendra also speaks on a multititude of topics such as multi-threaded application development, enhancing the end user experience, Larrabee - the new instantiation of Intel architecture designed for highly parallel throughput applications like gaming, that is expected to compete with GeForce and Radeon products from NVIDIA and AMD respectively. He also provides insights into Intel’s forthcoming innovations in products and software that will create opportunities for the developer community to quickly grow and expand their business. Read the complete interview.
Q. Can you introduce yourself to our audience and tell us in a bit about your role at Intel?
I manage the Asia Pacific portion of the group called Software and Services Group (SSG). It is a group within Intel which is focused at making sure that software developers can be more productive and can produce innovative applications on top of hardware, which we produce that is used by our customers. So the focus is to get developers to be productive, get them to use maximum amount of features from the hardware and then get them to produce more innovative applications on top of our hardware.
Q. SSG, unlike virtually all other Intel groups, has teams focused on almost all aspects of Intel platforms. Can you tell us about how SSG is adding value to the platform and ecosystem and why SSG as a group is critical to Intel's plans going forward?
Sure. The SSG basically goes with the value proposition of helping X86 across the board. If you look at it, right from Xeon which is used for servers, all the way down to the Atom processor which is used for smaller devices, we have an x86 instruction set that is compatible from top to bottom. Now this is critical for developers as they can build applications on one platform and at least have availability on other platforms. It may not be completely optimised, but at least have the capability to run it on multiple platforms. What our group does is help build tools and provide a set of frameworks and applications so developers can build applications and have a continuum of applications. From a platform ecosystem perspective we make sure that various other components such as Operating System and middleware are well optimised to take advantage of the hardware features below. The benefit of that is that many of the developers don’t get to mess with the hardware anymore. Nobody writes assembly anymore so we make sure that the layers between the application and the hardware are well optimised so the developers can write on top of the API and take advantage of the hardware features.
Q. Over the last few years, the defining paradigm in computing performance has shifted inexorably from raw clock speed to parallel operations and energy efficiency. What is the feedback you are getting from industry participants who have moved to adapt to this change?
Let’s step back and think as to why it has happened. If you think about it, it is largely driven by the consumers. As a consumer you want to be mobile. You want to carry your data with you. You want to carry your music with you. From a consumer perspective and from a business perspective, you want to carry your applications, e-mail, contacts etc. with you. Now when you are mobile, you want battery life. You want the device to be running at least full day of your usage. And once that started people also wanted performance. You cannot have a mobile device that takes three seconds to look up a contact name because you want it almost instantly. And when a call comes and you press the button you want the voice to come instantly.
So you want the performance and you want the battery life. To balance that, the devices have over time taken to techniques that provide energy efficiency.
Performance can come from two things. One is driving up the clock speed but as we drive up the clock speed, the power consumption increases which is not good for mobile devices like smartphones, notebooks, laptops and devices that largely depend on battery for their usage.
If we increase the clock speed on these devices, the energy efficiency is not very good and the battery runs out very fast. You will get performance but the battery drains out pretty fast.
Many years ago, the approach taken by almost all processor vendors in the industry was to say, “What if in addition to the straight line performance we introduced parallel execution engines. Dual core was the start and now you see multi-core processors coming out in the market. Now once the hardware became parallel, you had to make sure that the software has the ability to take advantage of the multiple execution units or multiple cores in the platform.
Parallelism has been in the industry for many years, in different forms, but when we came out with Pentium 4 with hyper threading, people started to parallelize their application but it was one processor unit running two or three threads of execution. However, as we got into multiple cores the application designers and developers had the flexibility to design more number of threads which could potentially run on these platforms and this gives us increased performance and the clock speed can remain constant or even lower and you get energy efficiency and performance. So from an end user perspective, we get better battery life. From a developer perspective, they can take advantage of the hardware and provide energy efficiency.
Q. Would it be correct to assume that performance enhancements are increasingly becoming dependent on multithreading and that is simply the most effective way to produce gains in application behavior?
Almost 90% of the processors we ship today support parallelism and many of them actually have multiple cores. So when you have the hardware able to run two cores simultaneously, four in the higher end machines, four and six in the server side, Parallelism is one of the most effective ways to drive performance on these architectures. Now the straight line performance has also improved due to our micro architectural improvements. But if you want scaleable performance, threading is right now the most effective way.
Q. What advances are we seeing in tools to enhance multi-threaded application development and what is Intel doing to help parallel software developers keep pace with emerging multi-core architectures?
Let’s take two scenarios. One is somebody is taking an existing application and trying to make it parallel. There are data structures, algorithms, validation techniques and all that needs to be taken care of to move from a straight line application to a multi threaded application. The other scenario could be that you are designing from scratch, where you take a bunch of libraries, put them together but the architecture of the code is coming from scratch. In both these scenarios you do need to test, debug and validate at the end. So Intel has software tools at every stage of the pipeline. We have something called Parallel Studio. Studio implies that we have a suite of tools which help you at different stages of the pipeline. Compilers will produce very efficient code and then there are other tools in previous stages of pipeline to help the developers to be productive in architecting, verifying and debugging the code and of course generating very efficient parallel computing programs.
Q. Part of the challenge with helping advance multi-threaded application development appears to be educating and supporting developers to master this technology. How is Intel approaching this challenge?
We provide the tools that integrate well into the developer environment which the developers are used to already. For example, Microsoft Visual Studio or similar environments. We thought to integrate these tools into those environments so that they can continue to be productive as they have trained themselves in those IDEs, and then they use our tools, compliers etc. from that. So that once you know making sure that the transition for the developer is not significant.
The other approach we took was that we said, “Let’s go work with the top infrastructure players. For example, Oracle, Microsoft, Adobe etc. are all relatively base players and whose applications and software is used across millions of machines around the world. We first spent time with them understanding how to optimise the base applications including databases, middleware, manage run time engines like Java. NET, and many of the open source components and ingredients, making sure that they have the ability to take advantage of the multi core hardware. Then we went to the software application companies who are leaders in the various segments -- financial, media, accounting or high performance computing applications -- and dedicated our engineers and gave them hardware to test and take advantage of the multi core feature and got the key applications used across the globe to become multi threaded. At the very least we provided them the training.
The final stage is that we have online communities where developers can get code samples, get SDKs, peer learning, case studies. All this is available for the worldwide developer base -- the key infrastructure players, the key application players and of course the wide base of software developers -- to take advantage of and to increase their capability at every layer.. We can’t send our engineers to every software company in the world so we make sure they have access to the online resources. Plus we do a series of trainings online, offline, chats, webinars so that people can learn from the others sitting at the comfort of their desk, people can gain the expertise or at least build the confidence in their mind that, “Yes this is pretty easy to do and I have the help I need”.
Q. Specific to our application developer audience, are you able to provide updates on the tools and technologies available to help ensure their visual applications can be optimized on Intel platforms and thereby enhance the end user experience?
The keyword there is visual applications right. Visual applications or visual computing needs the maximum amount of computing to provide a better visual experience. All these are extremely compute intensive task. Also the human eyes see them, and we can detect flaws easily. We can look at something and say, "oh that’s a poor animation" because you know our eyes detect that easily and even a common person can say that didn't look very real. So it's an extremely challenging task for developers in visual computing. Many of the tools I mentioned earlier hold good for the visual computing community also but we also have a visual Adrenalin program targeted towards people who build visual computing type applications. For existing applications which will be based on core and also applications which will potentially come out when Larrabee hits the market over the quarters.
Q. How is Intel's work with universities to provide enhanced training in threading in undergraduate programming courses progressing?
We realize that it’s not just the developers of today but the developers of the future, who are coming out of the universities, who also need to understand the essentials of parallel programming. Once they are well trained on the fundamentals and essentials of parallel programming, it is easy for them to take advantage of dual core, quad core and many core architecture become much easier. They don’t have to ‘unlearn’ straight line programming and then get into parallel programming if we can introduce elements of parallel programming into their course.
Over the years the approach we took was to reach out to the graduate students first. There are around 300 institutions in India that teach parallel programming at some level. At the under graduate program it is a little bit tougher as you need to influence the people who set the curriculum. And since it is a four-year program, the decision making cycles are different in different universities. So we are working with systems through out the world. For instance, in Bangalore (India), we work with Vishweshwarya Technological University (VTU). The undergraduate level will take some time because of the cycles I mentioned earlier. Senior professors in the university are helping to develop the curriculum. So while we bring in the technology, it is great to hear from professors who tell us how to go about with the course design.
Q. Can you tell us what’s new with Larrabee, the new instantiation of Intel architecture designed for highly parallel throughput applications like gaming?
Larrabee is a code name. The software kit and some early samples of the hardware have been provided to a variety of media and gaming companies across the globe. We have also provided a graphics environment, which is like a debugging environment that allows these graphics developers to take the maximum advantage of visual computing features of Larrabee. Larrabee is also very important because it truly is a many core processor. Typically mainstream cores are 2, 4, 6 today, but Larrabee goes into much higher numbers. So scaling of the code has to be significant. There are tools available in the graphics kit that allow you to do pretty high levels of scaling and there are multiple modes provided to program. Not everybody is going to write directly into the metal as we call it. They might use different layers, for example, directX from Microsoft or openGl from the open standard and potentially over time as openCl as it becomes mature. We will see layers in between that will be supported on the Larrabee platform also.
Q. Can you share with us Intel’s forthcoming innovations in products and software that will create opportunities for the developer community to quickly grow and expand their business?
The area which seems to be growing from devices perspective is the mobile devices part. A variety of mobile devices, netbooks and smartphones are growing across the globe in terms of volume.
The nature of Indian consumers is also changing such that they are making more online purchases. The success of application stores is already being demonstrated in many of the mature markets. The paradigm for the developer community is to understand the consumer buying pattern and build applications for it. For developers I would say it is about build for multiple platforms using standard architecture.
Mobile devices are a huge volume including netbooks which a volume leader right now. We are also talking to people about how developers can take advantage of the worldwide opportunity. We have launched the Intel Atom Developer Program focused on building applications for atom based devices. Initially the focus will be on netbooks as it is already there in the market.
Another important thing is that we are focusing on the developer-developer connection. Say, if I want to build an application, without having deep detail of the codecs, hardware and such, I can still build an application using the industry standard components.
Thus the focus is to make the life of the developer more productive. They do not need to build everything from scratch. There will be semblances of engineering validations, testing done through the program so that the person putting together the program gets a sense that many of the technological aspects that he does not know have been taken care of.
So I think it is pretty exciting for developers as they get a chance to have worldwide impact. They can use others components as well as contribute to applications that others are building. For more information about the Intel® AtomTM Developer Program visit www.appdeveloper.intel.com.
Q. What is your vision for Intel SSG in India? Is there anything else that you'd like to share with our audience?
I strongly believe -- at least from the India perspective -- we have an extremely large, mature and growing developer population doing a variety of software programming and services for the Indian as well as the global market. My vision, objective and passion is to make these developers healthy and wealthy -- healthy from a technological perspective and wealthy to make sure they do more innovation. Whatever we need to do in the form of trainings, infrastructure, business opportunities etc. we will continue to provide. My vision is to make sure that our organization continues to make the developers of this country more productive, more technologically competent and, hopefully, produce lots of heroes from here. For more information about Intel® Software Network visit www.intel.com/software.
This session introduces Enterprise Mobility, and all that needs to be done to mobilize the enterprise infrastructure. Also learn the Android OS in a nutshell and its enterprise ready...
In his first public interview after going public, Facebook's chief executive Mark Zuckerberg accepted the fact that the firmís mobile app strategy of aiming at HTML5 as a least common denominator...