Skip to main content

Programming Abstractions for Preemptive Scheduling on FPGAs Using Partial Reconfiguration

  • Conference paper
  • First Online:
Euro-Par 2022: Parallel Processing Workshops (Euro-Par 2022)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13835))

Included in the following conference series:

Abstract

FPGAs are an attractive type of accelerator for all-purpose HPC computing systems due to the possibility of deploying tailored hardware on demand. However, the common tools for programming and operating FPGAs are still complex to use, specially in scenarios where diverse types of tasks should be dynamically executed. In this work we present a programming abstraction with a simple interface that internally leverages High-Level Synthesis, Dynamic Partial Reconfiguration and synchronisation mechanisms to use an FPGA as a multi-tasking server with preemptive scheduling and priority queues. This leads to a better use of the FPGA resources, allowing the execution of several kernels at the same time and deploying the most urgent ones as fast as possible. The results of our experimental study show that our approach incurs only a 1.66% overhead when using only one Reconfigurable Region (RR), and 4.04% when using two RRs, whilst presenting a significant performance improvement over the traditional non-preemptive full reconfiguration approach.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. The OpenACC application programming interface. https://www.openacc.org/sites/default/files/inline-images/Specification/OpenACC-3.2-final.pdf. Accessed 19 May 2022

  2. TOP500. https://www.top500.org/. Accessed 9 May 2022

  3. Brown, N.: Exploring the acceleration of Nekbone on reconfigurable architectures (2020)

    Google Scholar 

  4. Moreton-Fernandez, A., et al.: Controllers: an abstraction to ease the use of hardware accelerators. Int. J. High Perf. Comput. Appl. 32(6), 838–853 (2018)

    Article  Google Scholar 

  5. Vaishnav, A., et al.: Heterogeneous resource-elastic scheduling for CPU+ FPGA architectures. In: Proceedings of the 10th International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies, pp. 1–6 (2019)

    Google Scholar 

  6. Trott, C.R., et al.: Kokkos 3: programming model extensions for the exascale era. IEEE Trans. Parallel Distrib. Syst. 33(4), 805–817 (2022)

    Article  Google Scholar 

  7. Rodriguez-Canal, G., Torres, Y., Andújar, F.J., Gonzalez-Escribano, A.: Efficient heterogeneous programming with FPGAs using the controller model. J. Supercomput. 77(12), 13995–14010 (2021). https://doi.org/10.1007/s11227-021-03792-7

    Article  Google Scholar 

  8. Brown, N., et al.: It’s all about data movement: Optimising FPGA data access to boost performance. In: 2019 IEEE/ACM International Workshop on Heterogeneous High-performance Reconfigurable Computing (H2RC), pp. 1–10. IEEE (2019)

    Google Scholar 

  9. Munshi, A.: The OpenCL specification. In: 2009 IEEE Hot Chips 21 Symposium (HCS), pp. 1–314. IEEE (2009)

    Google Scholar 

  10. Brown, N.: PYNQ API: C API for PYNQ FPGA board. https://github.com/mesham/pynq_api (2019). Accessed 20 June 2021

  11. Vipin, K., Fahmy, S.A.: FPGA dynamic and partial reconfiguration: a survey of architectures, methods, and applications. ACM Comput. Surv. (CSUR) 51(4), 1–39 (2018)

    Article  Google Scholar 

  12. Xilinx. Vivado design user suite guide - dynamic function eXchange. https://bit.ly/3MEDZTI. Accessed 9 May 2022

Download references

Acknowledgements

The authors acknowledge EPCC at the University of Edinburgh and EPSRC who have funded this work and provided the FPGA compute resource. This research has been partially funded by Junta de Castilla y León - FEDER Grants, project PROPHET-2 (VA226P20).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gabriel Rodriguez-Canal .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Rodriguez-Canal, G., Brown, N., Torres, Y., Gonzalez-Escribano, A. (2023). Programming Abstractions for Preemptive Scheduling on FPGAs Using Partial Reconfiguration. In: Singer, J., Elkhatib, Y., Blanco Heras, D., Diehl, P., Brown, N., Ilic, A. (eds) Euro-Par 2022: Parallel Processing Workshops. Euro-Par 2022. Lecture Notes in Computer Science, vol 13835. Springer, Cham. https://doi.org/10.1007/978-3-031-31209-0_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-31209-0_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-31208-3

  • Online ISBN: 978-3-031-31209-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics