SKElib: Parallel Programming with Skeletons in C

  • Marco Danelutto
  • Massimiliano Stigliani
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1900)


We implemented a skeleton library allowing the C programmer to write parallel programs using skeleton abstractions to structure and exploit parallelism. The library exploits a SPMD execution model in order to achieve the correct, parallel execution of the skeleton programs (which are not SPMD) onto workstation cluster architectures. Plain TCP/IP sockets have been used as the process communication mechanism. Experimental results are discussed that demonstrate the effectiveness of our skeleton library.1


skeletons parallel libraries SPMD 


  1. [1]
    P. Au, J. Darlington, M. Ghanem, Y. Guo, H.W. To, and J. Yang. Co-ordinating heterogeneous parallel computation. In L. Bouge, P. Fraigniaud, A. Mignotte, and Y. Robert, editors, Europar’ 96, pages 601–614. Springer-Verlag, 1996.Google Scholar
  2. [2]
    B. Bacci, M. Danelutto, S. Orlando, S. Pelagatti, and M. Vanneschi. P3L: A Structured High level programming language and its structured support. Concurrency Practice and Experience, 7(3):225–255, May 1995.Google Scholar
  3. [3]
    B. Bacci, M. Danelutto, S. Pelagatti, and M. Vanneschi. SkIE: a heterogeneous environment for HPC applications. Parallel Computing, 25:1827–1852, December 1999.Google Scholar
  4. [4]
    M. Baker and R. Buyya. Cluster Computing at a Glance. In Rajkumar Buyya, editor, High Performance Cluster Computing, pages 3–47. Prentice Hall, 1999.Google Scholar
  5. [5]
    George Horatiu Botorog and Herbert Kuchen. Efficient high-level parallel programming. Theoretical Computer Science, 196(1-2):71–107, April 1998.Google Scholar
  6. [6]
    T. Bratvold. Skeleton-Based Parallelisation of Functional Programs. PhD thesis, Heriot-Watt University, 1994.Google Scholar
  7. [7]
    H. Burkhart and S. Gutzwiller. Steps Towards Reusability and Portability in Parallel Programming. In K. M. Decker and R. M. Rehmann, editors, Programming Environments for Massively Parallel Distributed Systems, pages 147–157. Birkhauser, April 1994.Google Scholar
  8. [8]
    S. Ciarpaglini, M. Danelutto, L. Folchi, C. Manconi, and S. Pelagatti. ANACLETO: a template-based P3L compiler. In Proceedings of the PCW’97, 1997. Camberra, Australia.Google Scholar
  9. [9]
    M. Cole. Algorithmic Skeletons: Structured Management of Parallel Computations. Research Monographs in Parallel and Distributed Computing. Pitman, 1989.Google Scholar
  10. [10]
    M. Danelutto, R. DiCosmo, X. Leroy, and S. Pelagatti. Parallel Functional Programming with Skeletons: the OCAMLP3L experiment. In ACM Sigplan Workshop on ML, pages 31–39, 1998.Google Scholar
  11. [11]
    Darlington, J. Guo, Y.K, H.W. To, and Y. Jing. Functional skeletons for parallel coordination. In Proceedings of Europar 95, 1995.Google Scholar
  12. [12]
    E. Johnson, D. Gannon, and P. Beckman. HPC++: Experiments with the Parallel Standard Template Library. In Proceedings of the 1997 International Conference on Supercomputing, pages 7–11, July 1997.Google Scholar
  13. [13]
    M.P.I. Forum. Document for a standard message-passing interface. Technical Report CS-93-214, University of Tennessee, November 1993.Google Scholar
  14. [14]
    S. Pelagatti. Structured Development of Parallel Programs. Taylor & Francis, 1998.Google Scholar
  15. [15]
    J. Serot, D. Ginhac, and J.P. Derutin. SKiPPER: A Skeleton-Based Parallel Programming Environment for Real-Time Image Processing Applications. In Proceedings of the 5th International Parallel Computing Technologies Conference (PaCT-99), September 1999.Google Scholar
  16. [16]
    M. Vanneschi. PQE2000: HPC tools for industrial applications. IEEE Concurrency, 6(4):68–73, 1998.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Marco Danelutto
    • 1
  • Massimiliano Stigliani
    • 1
  1. 1.Department Computer ScienceUniversity of PisaPisaItaly

Personalised recommendations