Abstract
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.
Keywords
- 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.
Download conference paper PDF
References
Sipelstein, J., Blelloch, G.E.: Collection-Oriented Languages. Proceedings of the IEEE 79, 504–523 (1991)
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)
Weiland, M.: Chapel, Fortress and X10: novel languages for HPC. EPCC, The University of Edinburgh, Tech. Rep. HPCxTR0706 (October 2007)
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)
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)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Keir, P., Cockshott, P.W., Richards, A. (2012). Mainstream Parallel Array Programming on Cell. In: Alexander, M., et al. Euro-Par 2011: Parallel Processing Workshops. Euro-Par 2011. Lecture Notes in Computer Science, vol 7155. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29737-3_30
Download citation
DOI: https://doi.org/10.1007/978-3-642-29737-3_30
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-29736-6
Online ISBN: 978-3-642-29737-3
eBook Packages: Computer ScienceComputer Science (R0)
