Skip to main content
Log in

Abstract

The Cell processor is a heterogeneous multi-core processor with one power processing engine (PPE) core and eight synergistic processing engine (SPE) cores. There is a significant amount of ongoing research in programming models and tools that attempts to make it easy to exploit the computation power of the Cell architecture. In our work, we explore supporting OpenMP on the Cell processor. It is attractive to support OpenMP because programmers can continue using their familiar programming model, and existing code can be re-used. We base our work on IBM’s XL compiler, and developed new components in the XL compiler and a new runtime library. Three major issues are addressed: (1) synchronization support on heterogeneous cores; (2) code generation targeting the different instruction sets; (3) data transfers and implement the OpenMP memory model. We present experimental results for some SPEC OMP 2001 and NAS benchmarks to demonstrate the effectiveness of this approach. A visualization tool based on Paraver is also used to provide some insights into actual thread and synchronization behaviors.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Pham, D., Asano, S., Bolliger, M., Day, M.N., Hofstee, H.P., Johns, C., Kahle, J., Kameyama, A., Keaty, J., Masubuchi, Y., Riley, M., Shippy, D., Stasiak, D., Suzuoki, M., Wang, M., Warnock1, J., Weitzel, S., Wendel, D., Yamazaki, T., Yazawa, K.: The design and implementation of a first-generation CELL processor. In: IEEE International Solid-State Circuits Conference (ISSCC) (2005)

  2. Williams, S., Shalf, J., Oliker, L., Kamil, S., Husbands, P., Yelick, K.: The potential of the cell processor for scientific computing. In: Proceedings of the 3rd Conference on Computing Frontiers (CF ’06) (Ischia, Italy, May 3–5, 2006). ACM, New York, NY, pp. 9–20 (2006)

  3. Gordon, M.I., Thies, W., Amarasinghe, S.: Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. SIGARCH Comput. Archit. News 34(5), 151–162 (2006)

    Article  Google Scholar 

  4. Kistler, M., Perrone, M., Petrini, F.: Cell multiprocessor communication network: built for speed. IEEE Micro. 26(3), 10–23 (2006)

    Article  Google Scholar 

  5. Eichenberger, A.E., Wu, P., O’Brien, K., O’Brien, K., O’Brien, K.: Vectorization for SIMD architectures with alignment constraints. In: Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation (PLDI ’04) (Washington, DC, USA, June 9–11, 2004). ACM, New York, NY, pp. 82–93 (2004)

  6. Bellens, P., et al.: CellSc: a programming Model for the cell BE architecture, SC (2006)

  7. IBM xl compiler for Cell: http://www.alphaworks.ibm.com/tech/cellcompiler

  8. Eichenberger, A.E., O’Brien, K., O’Brien, K., Wu, P., Chen, T., Oden, P.H., Prener, D.A., Shepherd, J.C., So, B., Sura, Z., Wang, A., Zhang, T., Zhao, P., Gschwind, M.: Optimizing compiler for the CELL processor. In: Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques (PACT) (September 17–21, 2005). IEEE Computer Society, Washington, DC, pp. 161–172 (2005)

  9. SDK for Cell: http://www-128.ibm.com/developerworks/power/cell/

  10. Chen, T., Sura, Z., O’Brien, K.M., O’Brien, J.K.: Optimizing the use of static buffers for DMA on a CELL chip. In: Workshop on Language and Compiler for Parallel Computing (LCPC), pp. 314–329 (2006)

  11. NAS parallel benchmarks: http://www.nas.nasa.gov/Resources/Software/npb.html

  12. Spec OMP benchmarks: http://www.spec.org/

  13. Paraver: http://www.cepba.upc.es/paraver/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tong Chen.

Rights and permissions

Reprints and permissions

About this article

Cite this article

O’Brien, K., O’Brien, K., Sura, Z. et al. Supporting OpenMP on Cell. Int J Parallel Prog 36, 289–311 (2008). https://doi.org/10.1007/s10766-008-0072-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-008-0072-7

Keywords

Navigation