Mainstream Parallel Array Programming on Cell

  • Paul Keir
  • Paul W. Cockshott
  • Andrew Richards
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7155)


We present the E\(\sharp\) compiler and runtime library for the ‘F’ subset of the Fortran 95 programming language. ‘F’ provides first-class support for arrays, allowing E\(\sharp\) to implicitly evaluate array expressions in parallel using the SPU co-processors of the Cell Broadband Engine. We present performance results from four benchmarks that all demonstrate absolute speedups over equivalent ‘C’ or Fortran versions running on the PPU host processor. A significant benefit of this straightforward approach is that a serial implementation of any code is always available, providing code longevity, and a familiar development paradigm.


Array Expression Direct Memory Access Fortran Compiler Heterogeneous Architecture Runtime Library 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Sipelstein, J., Blelloch, G.E.: Collection-Oriented Languages. Proceedings of the IEEE 79, 504–523 (1991)CrossRefGoogle Scholar
  2. 2.
    Guo, J., Thiyagalingam, J., Scholz, S.-B.: Breaking the GPU programming barrier with the auto-parallelising SAC compiler. In: Proceedings of the Sixth Workshop on Declarative Aspects of Multicore Programming, pp. 15–24. ACM Press (2011)Google Scholar
  3. 3.
    Weiland, M.: Chapel, Fortress and X10: novel languages for HPC. EPCC, The University of Edinburgh, Tech. Rep. HPCxTR0706 (October 2007)Google Scholar
  4. 4.
    Tarditi, D., Puri, S., Oglesby, J.: Accelerator: Using Data Parallelism to Program GPUs for General-Purpose Uses. In: Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM Press (2006)Google Scholar
  5. 5.
    Keller, G., Chakravarty, M.M., Leshchinskiy, R., Peyton Jones, S., Lippmeier, B.: Regular, shape-polymorphic, parallel arrays in Haskell. In: Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, pp. 261–272. ACM Press (2010)Google Scholar
  6. 6.
    Cooper, P., Dolinsky, U., Donaldson, A.F., Richards, A., Riley, C., Russell, G.: Offload – Automating Code Migration to Heterogeneous Multicore Systems. In: Patt, Y.N., Foglia, P., Duesterwald, E., Faraboschi, P., Martorell, X. (eds.) HiPEAC 2010. LNCS, vol. 5952, pp. 337–352. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  7. 7.
    Rasmussen, C.E., Sottile, M.J., Shende, S.S., Malony, A.D.: Bridging the language gap in scientific computing: the Chasm approach. Concurrency and Computation: Practice and Experience 18, 151–162 (2006)CrossRefGoogle Scholar
  8. 8.
    Donaldson, A.F., Keir, P., Lokhmotov, A.: Compile-Time and Run-Time Issues in an Auto-Parallelisation System for the Cell BE Processor. In: César, E., et al. (eds.) Euro-Par 2008 Workshops. LNCS, vol. 5415, pp. 163–173. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  9. 9.
    Lars Nyland, M.H., Prins, J.: Fast N-Body Simulation with CUDA. In: Nguyen, H. (ed.) GPU Gems 3, pp. 677–694. Addison-Wesley Professional (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Paul Keir
    • 1
  • Paul W. Cockshott
    • 1
  • Andrew Richards
    • 2
  1. 1.School of Computing ScienceUniversity of GlasgowUK
  2. 2.Codeplay Software Ltd.EdinburghUK

Personalised recommendations