Efficient, Dynamic Multi-task Execution on FPGA-based Computing Systems

Umar Ibrahim Minhas, Roger Woods, Dimitrios S. Nikolopoulos, Georgios Karakonstantis

Research output: Contribution to journalArticlepeer-review

49 Downloads (Pure)


With growing Field Programmable Gate Array (FPGA) device sizes and their integration in environments enabling sharing of computing resources such as cloud and edge computing, there is a requirement to share the FPGA area between multiple tasks. The resource sharing typically involves partitioning the FPGA space into fix-sized slots. This results in suboptimal resource utilisation and relatively poor performance, particularly as the number of tasks increase. Using OpenCL’s exploration capabilities, we employ clever clustering and custom, task-specific partitioning and mapping to create a novel, area sharing methodology where task resource requirements are more effectively managed. Using models with varying resource/throughput profiles, we select the most appropriate distribution based on the runtime, workload needs to enhance temporal compute density. The approach is enabled in the system stack by a corresponding task-based virtualisation model. Using 11 high performance tasks from graph analysis, linear algebra and media streaming, we demonstrate an average 2.8× higher system throughput at 2.3× better energy efficiency over existing approaches.
Original languageEnglish
Pages (from-to)710-722
JournalIEEE Transactions on Parallel and Distributed Systems
Issue number3
Early online date30 Jul 2021
Publication statusPublished - 01 Mar 2022


Dive into the research topics of 'Efficient, Dynamic Multi-task Execution on FPGA-based Computing Systems'. Together they form a unique fingerprint.

Cite this