In a world with Big Data and diverse workloads, the need for compute seems endless — and now with the influence of AI through new and merged workloads, the need for compute may prove to be endless. The hunger for compute has spurred an onslaught of product competing to help accelerate our workloads – all helping usher in the era of Heterogenous computing.
In this new world, it’s not just CPUs or GPUs we have to program, but many devices. There are many reasons for programmers to be concerned. There are two tips for making this easier, and Intel’s interest in heterogenous computing may bring us additional help.
Making Programming of so many devices easier
There are two things, in particular, to make heterogeneous computers more programmer friendly. First, keep the CPU strong, even as it is surrounded by additional devices. Second, support single source programming, to help us distribute our workloads to devices.
Keep the CPU strong
CPU vendors pitch that a strong CPU is essential. Other compute device vendors pitch that we should not waste our money on a CPU, just buy their device. Who is right? Amdahl’s Law gives us strong guidance on this.
All parallel programmers learn to hate slow serial processing, because it destroys scaling at an alarming rate thanks to Amdahl’s Law. If a system design uses full speed computing for 99.9% of the computation on 25000 compute devices, while processing serial work at 1/3 that performance due to a slow CPU – Amdahl’s Law tells us that we’ll see no more than 34% of the performance that we could obtain with full speed serial processing.[1]
Any investment in speeding up an application, is easily destroyed if the serial part is compromised — even if the serial part is only 0.1% of the application. While clever programming may mitigate such issues, a strong CPU makes programming easier — a lot easier!
Single source programming
Single source programming means that we can program all our devices, within a single source code file. We can still break up our code into multiple source files for large projects as we usually do, but we are not required to segregate code based on the device that we wish to utilize. The world is made easier, when a favorite header file or library, supports all the devices that we want to use within our single source program.
Intel investing in Heterogeneous Computing
Intel recently spoke about supporting heterogeneous computing with the catch phrase “One Size Does Not Fit All” in talking about software and Intel’s commitment to help programmers with oneAPI.
Intel oneAPI is a big investment by Intel, to address programming needs for heterogeneous computing, while aiming to let all devices shine including the CPU.
This could be a helping hand for programmers need in a world of Big Data, diverse workloads, convergence of HPC and AI, and heterogeneous architectures.
One can learn more about the various components Intel is bring to bear on this at:
- 2nd Generation Intel® Xeon® Scalable Processors (Scalar)
- Intel® Xe compute architecture (Vector)
- Intel® Nervana™ Neural Network processors (Matrix)
- Intel® Stratix® 10 SoC Field Programmable Gate Arrays (Spatial)
- Intel’s ‘One API’ Project Delivers Unified Programming Model Across Diverse Architectures
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at www.intel.com/hpc
Intel, the Intel logo and other Intel marks are trademarks of Intel Corporation.
Other names and brands may be claimed as the property of others.
© Intel Corporation
[1] Amdahl’s Law math: ((999/25000)+1) / ((999/25000)+3)