The attack of the cores is in full swing. Between CPUs and GPUs we have a growing number of cores offering an amazing amount of processing capabilities on our computing systems. To use these cores effectively we need to create smart software that can understand the underlying capabilities of the hardware and fully utilize these resources. Bottom line: we need to make our universe parallel!
Virtualization is a technology well positioned to use multi-core processor technology. A virtualized server is really a “parallel environment” containing multiple virtual machines, each with their own operating system and applications spawning threads. Physical processor and memory capabilities are divided among these virtual machines with the Hypervisor performing the role of master scheduler of the hardware. Parallelism is achieved because multiple applications are generating tasks simultaneously.
Another approach to parallelism is to have the individual application simultaneously perform multiple tasks. AMD just announced the delivery of a beta release of an OpenCL (Open Computing Language) software development kit for x86-based CPUs designed to help achieve this goal. OpenCL is an open, royalty-free programming standard for parallel programming CPUs and GPUs found in personal computers, servers and handheld/embedded devices.
OpenCL provides a framework for writing software that can tap into the vast computing power of CPUs and GPUs. A C-based language with a structure that is familiar to programmers, OpenCL is used to create compute kernels for performance-intensive parts of an application. OpenCL also includes a platform Application Programming Interface (API) to help developers query, select and initialize compute devices, and a runtime API to execute the compute kernels and to manage scheduling, compute and memory resources.
Everyone knows that a GPU is highly efficient at manipulating computer graphics. Not many people realize that the highly parallel structure of GPUs also makes them effective for handling complex algorithms, particularly where data requires a repeatable series of computations. Programming the GPU to work in concert with CPU to achieve more parallelism and accelerate program execution is the next big frontier in software. By creating an efficient, close-to-the-metal programming interface, OpenCL will form the foundation layer of a parallel computing ecosystem of platform-independent tools, middleware and applications
AMD is uniquely positioned as the only player in the industry currently delivering both high-performance CPU and GPU technologies. OpenCL will provide AMD’s multi-core CPUs and ATI Stream technology with a parallel programming platform that application vendors, ISVs and developers can use to better utilize all the computational capabilities available in their systems.
To learn more about OpenCL and the evolving world of paralliation, check out my colleague, Patti Harrell’s blog, ATI Stream is a Game Changer with x86 in AMD’s Corner.
Margaret Lewis (@margaretjlewis) is a Product Marketing Director at AMD.
Her postings are her own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.