Full use of the parallel computation capabilities of present and expected CPUs and GPUs require use of vector extensions. Yet many actors (functional blocks) in data flow programs for embedded systems have internal state that impose serial dependencies between actor invocations that make vectorizing across actor invocations impossible. Ideally, issues of inter-thread coordination required by serial data dependencies should be handled by code written by parallel programming experts that is separate from code specifying signal processing operations.
The purpose of this talk is to present one approach for so doing in the case of actors that maintain state. We propose a methodology for using the parallel scan (also known as prefix sum) pattern to create algorithms for multiple simultaneous invocations of such an actor that results in vectorizable code. Two examples of applying this methodology are given: (1) infinite impulse response filters and (2) finite state machines.
Lee Barford is a Fellow at Keysight Laboratories and Professor of Computer Science and Engineering (adjunct) at the University of Nevada, Reno, Nevada. He received the PhD in Computer Science from Cornell University. He leads Keysight's efforts in applying parallel computing to speed electronic measurements. He also leads research to identify and apply emerging technologies in software, applied mathematics, and statistics to enable new kinds of measurements and increase measurement accuracy and speed.
Dr Barford's work has been used to improve R&D productivity and reduce manufacturing cost in the leading companies in the technology and transportation industries, including Apple, Boeing, Cisco, Ford, HP, Microsoft, and NASA. Previously, he managed a number of research projects at Agilent Laboratories and Hewlett-Packard Laboratories, for example in visible light and X-ray imaging systems, calibration methods for non-linear and dynamical disturbances, and fault isolation from automatic test equipment results.
Host: Robert Stewart