Skip to main content

OpenMP Taskloop Dependences

  • Conference paper
  • First Online:
OpenMP: Enabling Massive Node-Level Parallelism (IWOMP 2021)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12870))

Included in the following conference series:

Abstract

Exascale systems will contain multicore/manycore processors with high core count in each node. Therefore, using a model that relaxes the synchronization, such as data-flow, is crucial to adequately exploit the potential of the hardware. The flexibility of the data-flow execution model relies on the dynamic management of data-dependences among tasks.

The OpenMP standard already provides a construct, known as taskloop, that distributes the loop iteration space into several tasks, but this construct does not support the use of the depend clause yet. In this paper we propose the use of the induction variable to define data dependences in tasks created by the taskloop construct. By using the induction variable, each task will contain its own dependences based on the partition of work they received.

We also aim to demonstrate that using taskloop with dependences provides an enhancement in terms of programmability with respect to using stand-alone tasks to parallelize a loop. Our implementation does not introduce any significant overhead on the taskloop implementation and, in certain cases, it outperforms the stand-alone task version.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Augonnet, C., Thibault, S., Namyst, R., Wacrenier, P.A.: StarPU: a unified platform for task scheduling on heterogeneous multicore architectures. Concur. Comput. Pract. Exp. 23(2), 187–198 (2011)

    Article  Google Scholar 

  2. Ayguade, E., et al.: A proposal to extend the OpenMP tasking model for heterogeneous architectures. In: Müller, M.S., de Supinski, B.R., Chapman, B.M. (eds.) IWOMP 2009. LNCS, vol. 5568, pp. 154–167. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02303-3_13

    Chapter  Google Scholar 

  3. Barcelona Supercomputing Center: Mercurium Compiler. https://github.com/bsc-pm/mcxx. Accessed 24 March 2019

  4. Barcelona Supercomputing Center: Nanos6 Runtime. https://github.com/bsc-pm/nanos6. Accessed 24 March 2019

  5. Wheeler, D.A.: SLOCCount: More about COCOMO. https://dwheeler.com/sloccount/sloccount.html#cocomo. Accessed 05 July 2021

  6. Duran, A., Duran, A., et al.: OmpSs: a proposal for programming heterogeneous multi-core architectures. Parallel Process. Lett. 21(2), 173–193 (2011)

    Article  MathSciNet  Google Scholar 

  7. Intel: Intel C++ Compiler 19.0 Developer Guide and Reference. https://software.intel.com/en-us/cpp-compiler-developer-guide-and-reference-cilk-for. Accessed 24 March 2019

  8. Luebke, D.: Cuda: scalable parallel programming for high-performance scientific computing. In: 2008 5th IEEE international symposium on biomedical imaging: from nano to macro, pp. 836–838. IEEE (2008)

    Google Scholar 

  9. Nguyen, V., Deeds-rubin, S., Tan, T., Boehm, B.: A SLOC counting standard. In: COCOMO II Forum 2007 (2007)

    Google Scholar 

  10. Nvidia: CUDA C++ Programming Guide 11.4 (June 2021). https://docs.nvidia.com/cuda/archive. Accessed 05 July 2021

  11. OpenMP Architecture Review Board: OpenMP Application Programming Interface 4.5 (Nov 2015). Accessed 18 Feb 2021

    Google Scholar 

  12. OpenMP Architecture Review Board: OpenMP Application Programming Interface (Nov 2018). https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf. Accessed 24 Mar 2019

  13. Perez, J.M., Beltran, V., Labarta, J., Ayguadé, E.: Improving the integration of task nesting and dependencies in OpenMP. In: 2017 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 809–818. IEEE (2017)

    Google Scholar 

  14. Sala, K., et al.: Improving the interoperability between MPI and task-based programming models. In: Proceedings of the 25th European MPI Users’ Group Meeting, pp. 1–11 (2018)

    Google Scholar 

  15. Sala, K., Teruel, X., Perez, J.M., Peña, A.J., Beltran, V., Labarta, J.: Integrating blocking and non-blocking MPI primitives with task-based programming models. Parallel Comput. 85, 153–166 (2019)

    Article  Google Scholar 

  16. Shirako, J., Unnikrishnan, P., Chatterjee, S., Li, K., Sarkar, V.: Expressing doacross loop dependences in OpenMp. In: 9th International Workshop on OpenMP, IWOMP 2013, vol. 8122, pp. 30–44 (Sep 2013). https://doi.org/10.1007/978-3-642-40698-0

  17. Watson, A.H., McCabe, T.J.: Structured testing: A testing methodology using the cyclomatic complexity metric, vol. 500, no. 235. Technical report., NIST Special Publication (1996)

    Google Scholar 

  18. Wheeler, David A.: SLOCCount. https://dwheeler.com/sloccount. Accessed 24 March 2019

  19. Yin, T.: Lizard. https://github.com/terryyin/lizard. Accessed 24 March 2019

Download references

Acknowledgements

This research has received funding from the European Union’s Horizon 2020/EuroHPC research and innovation programme under grant agreement No 955606 (DEEP-SEA); and the support of the Spanish Ministry of Science and Innovation (Computacion de Altas Prestaciones VIII: PID2019-107255GB).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marcos Maroñas .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Maroñas, M., Teruel, X., Beltran, V. (2021). OpenMP Taskloop Dependences. In: McIntosh-Smith, S., de Supinski, B.R., Klinkenberg, J. (eds) OpenMP: Enabling Massive Node-Level Parallelism. IWOMP 2021. Lecture Notes in Computer Science(), vol 12870. Springer, Cham. https://doi.org/10.1007/978-3-030-85262-7_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-85262-7_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-85261-0

  • Online ISBN: 978-3-030-85262-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics