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

4 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 statusEarly online date - 30 Jul 2021


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

Cite this