Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/508791.508865acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
Article

Coordinating functional processes with Haskell#

Published: 11 March 2002 Publication History

Abstract

This paper presents Haskell#, a parallel functional language based on coordination. Haskell# supports lazy stream communication and facilities, at coordination level, to the specification of data parallel programs. Haskell# supports a clean and complete, semantic and syntactic, separation between coordination and computation levels of programming, with several benefits to parallel program engineering. The implementation of some well-known applications in Haskell# is presented, demonstrating its expressiveness, allowing for elegant, simple, and concise specification of any static pattern of parallel, concurrent or distributed computation.

References

[1]
C. Abmann. Coordinating Functional Processes Using Petri Nets. Implementation of Functional Languages, Springer-Verlag, LNCS 1268, pages 162-183, Sept. 1997.
[2]
S. Breitinger, R. Loogen, Y. Ortega Mallén, and R. Peña. The Eden Coordination Model for Distributed Memory Systems. In High-Level Parallel Programming Models and Supportive Environments (HIPS), 1997.
[3]
S. Breitinger, R. Loogen, Y. Ortega Malln, and R. Peña. High-level Parallel and Concurrent Programming in Eden. In Proceedings of APPIA-GULP-PRODE Joint Conference on Declarative Programming, pages 213-224, June 1997.
[4]
S. Briesmeister, R. Loogen, Y. Ortega Mallén, and R. Pe na. Eden: Language Definition and Operational Semantics. Technical report, FB Mathematik, Universität Marburg, 1998.
[5]
W. H. Burge. Recursive Programming Techniques. Addison-Wesley Publishers Ltd., 1975.
[6]
F. Burton. Functional Programming for Concurrent and Distributed Computing. Computer Journal, 30(5):437-450, 1987.
[7]
F. H. Carvalho Jr. Haskell#: Uma Extensão Paralela pars Haskell. Master's thesis, Centro de Informática, Universidade Federal de Pernambuco, Jan. 2000.
[8]
J. Darlington, Y. Guo, H. To, and J. Yang. Functional Skeletons for Parallel Coordination. Lecture Notes in Computer Science, 966:55-68, 1995.
[9]
F. DeRemer and H. H. Kron. Programming-in-the-Large versus Programming-in-the-small. IEEE Transactions on Software Engineering, pages 80-86, June 1976.
[10]
I. Foster. Compositional Parallel Programming Languages. ACM Transactions on Programming Languages and Systems, 18(4):454-476, 1985.
[11]
D. Gelernter and N. Carriero. Coordination Languages and Their Significance. Communications of the ACM, 35(2):97-107, Feb. 1992.
[12]
K. Hammond and G. Michaelson. Research Directions in Parallel Functional Programming. Springer-Verlag, 1999.
[13]
J. Hicks, D. Chiou, B. S. Ang, and Arvind. Performance Studies of Id on the Monsoon Dataflow System. Journal of Parallel and Distributing Computing, 18:273-300, 1993.
[14]
C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, C.A.R. Hoare Series Editor, 1985.
[15]
P. Hudak. Serial Combinators: "Optimal" Grains of Parallelism. FPCA'85, pages 382-399, Sept. 1985.
[16]
P. Hudak. Para-Functional Programming in Haskell. Parallel Functional Languages and Compilers, B. K. Szymanski, Ed. ACM Press, New York, pages 159-196, 1991.
[17]
Inmos. Occam 2 Reference Manual. Prentice-Hall, C.A.R. Hoare Series Editor, 1988.
[18]
O. Kaser, C. Ramakrishnan, I. V. Ramakrishnan, and R. C. Sekar. Equals - A Fast Parallel Implementation of a Lazy Language. Journal of Functional Programming, 7(2):183-217, Mar. 1997.
[19]
P. Kelly. Functional Programming for Loosely-coupled Multiprocessors. Research Monographs in Parallel and Distributed Computing, MIT Press, 1989.
[20]
J. Krammer. Distributed Software Engineering. In IEEE Computer Society Press, editor, Proc. 16th IEEE International Conference on Software, 1994.
[21]
R. M. F. Lima. Haskell# - Uma Linguagem Funcional Paralela - Ambiente de Progrmação, Implementação e Otimização. PhD thesis, Centro de Informática, UFPE, July 2000.
[22]
R. M. F. Lima, F. H. Carvalho Jr., and R. D. Lins. Haskell#: A Message Passing Extension to Haskell. CLAPF'99 - 3rd Latin American Conference on Functional Programming, pages 93-108, Mar. 1999.
[23]
R. D. Lins. Functional Programming and Parallel Processing. 2nd International Conference on Vector and Parallel Processing - VECPAR'96 - LNCS 1215 Springer-Verlag, pages 429-457, Sept. 1996.
[24]
S. Lucco and O. Sharp. Delirium: An Embedding Coordination Language. In ACM Press, editor, Proceedings of Supoercomputing'90, 1990.
[25]
U. Manber. Introduction to Algorithms: A Creative Approach, chapter 12, pages 375-409. Addison-Wesley, Reading, Massachusetts, Oct. 1999.
[26]
S. L. Peyton Jones, C. Clack, and J. Salkild. GRIP - A High-Performance Architecture for Parallel Graph Reduction. FPCA '87: Conference on Functional Programming Languages and Computer Architecture - Springer-Verlag LNCS 274, pages 98-112, 1987.
[27]
S. L. Peyton Jones and J. Hughes. Report on the Programming Language Haskell 98, A Non-strict, Purely Functional Language. Feb. 1999.
[28]
M. J. Plasmeijer and M. van Eekelen. Functional Programming and Parallel Graph Rewriting. Addison-Wesley Publishers Ltd., 1993.
[29]
S. Roch and P. Starke. Manual: Integrated Net Analyzer Version 2.2. Humboldt-Universität zu Berlin, Institut für Informatik, Lehrstuhl für Automaten- und Systemtheorie, 1999.
[30]
E. Shapiro. The family of concurrent logic programming languages. ACM Computing Surveys, 21:413-510, 1989.
[31]
F. Taylor. Parallel Functional Programming by Partitioning. PhD Thesis, Department of Computing, Imperial College of Science, Technology and Medicine, University of London, Jan. 1997.
[32]
P. Trinder, K. Hammond, J. S. Mattson Jr., A. S. Partridge, and S. P. L. Jones. GUM: A Portable Parallel Implementation of Haskell. PLDI'96 - Programming Languages Design and Implementation, pages 79-88, 1996.
[33]
D. J. Whalen, D. E. Hollowell, and J. S. Hendriks. MCNP: Photon Benchmark Problems. Technical Report LA-12196, Los Alamos National Laboratory, 1991.

Cited By

View all
  • (2005)The # modelProceedings of the 2005 ACM symposium on Applied computing10.1145/1066677.1066984(1357-1364)Online publication date: 13-Mar-2005
  • (2005)Using aspects for supporting procedural modules in # programmingProceedings of the 11th international Euro-Par conference on Parallel Processing10.1007/11549468_80(730-739)Online publication date: 30-Aug-2005
  • (2004)BLOB computingProceedings of the 1st conference on Computing frontiers10.1145/977091.977111(125-139)Online publication date: 14-Apr-2004
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '02: Proceedings of the 2002 ACM symposium on Applied computing
March 2002
1200 pages
ISBN:1581134452
DOI:10.1145/508791
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 March 2002

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Haskell
  2. coordination
  3. parallel functional programming
  4. parallel software engineering

Qualifiers

  • Article

Conference

SAC02
Sponsor:
SAC02: 2002 ACM Symposium on Applied Computing
March 11 - 14, 2002
Madrid, Spain

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 29 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2005)The # modelProceedings of the 2005 ACM symposium on Applied computing10.1145/1066677.1066984(1357-1364)Online publication date: 13-Mar-2005
  • (2005)Using aspects for supporting procedural modules in # programmingProceedings of the 11th international Euro-Par conference on Parallel Processing10.1007/11549468_80(730-739)Online publication date: 30-Aug-2005
  • (2004)BLOB computingProceedings of the 1st conference on Computing frontiers10.1145/977091.977111(125-139)Online publication date: 14-Apr-2004
  • (2003)Topological skeletons in Haskell/sub #/Proceedings International Parallel and Distributed Processing Symposium10.1109/IPDPS.2003.1213144(8)Online publication date: 2003
  • (2003)On the implementation of SPMD applications using Haskell/sub #/Proceedings. 15th Symposium on Computer Architecture and High Performance Computing10.1109/CAHPC.2003.1250321(55-63)Online publication date: 2003
  • (2003)Translating Haskell# Programs into Petri NetsHigh Performance Computing for Computational Science — VECPAR 200210.1007/3-540-36569-9_43(635-649)Online publication date: 15-Apr-2003
  • (2002)Translating Haskell# programs into Petri netsProceedings of the 5th international conference on High performance computing for computational science10.5555/1766851.1766902(635-649)Online publication date: 26-Jun-2002

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media