Prof. Vishkin Uzi
Uzi Vishkin’s research aspirations evolved over the years from that of a parallel algorithms theory specialist to more of a generalist. The deep question guiding his work has been whether it is feasible to align the theory of parallel algorithms, parallel programming and many-core hardware into a coherent computing stack for the processor of the future. Along with his research team, he developed the only current approach that enables that, while vendor-supported approaches have given up on their prior objective, as explained next.
Source programming (coding) is the programmer’s input towards an executable program on target hardware. It is widely agreed that executables on many-core hardware must be multi-threaded. However, multi-threaded source programming is often too difficult, due to challenges such as race conditions and programming for locality. By 2019, (CPU and GPU) commercial vendors have apparently nearly abandoned all their prior expectations that application developers provide multi-threaded source code. To the extent that new performance executable are produced they are developed by in-house vendor programmers, often for the few specific routines that their marketing people identified as useful, e.g., for Python programmers.
In contrast, Vishkin’s team has demonstrated that single-threaded programming for parallelism can: (i) directly harness the theory of parallel algorithms as-is for parallel programming, and (ii) achieve competitive many-core performance, as long as many-core hardware/software has been designed properly.