Skip to main content

Asynchronous Parallel Programming Language Based on the Microsoft .NET Platform

  • Conference paper
Parallel Computing Technologies (PaCT 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2763))

Included in the following conference series:

Abstract

MC# is a programming language for cluster- and GRID-architectures based on asynchronous parallel programming model accepted in Polyphonic C# language (N.Benton, L.Cardelli, C.Fournet; Microsoft Research, Cambridge, UK). Asynchronous methods of Polyphonic C# play two major roles in MC#: 1) as autonomous methods executed on remote machines, and 2) as methods used for delivering messages. The former are identified in MC# as the “movable methods”, and the latter form a special syntactic class with the elements named “channels”. Similar to Polyphonic C#, chords are used for defining the channels and as a synchronization mechanism. The MC# channels are generalised naturally to “bidirectional channels”, which may be used both for sending and receiving messages in the movable methods. The runtime-system of MC# has as the basic operation a copying operation for the object which is scheduled for execution on remote machine. This copy is “dead” after the movable method has finished its work, and all changes of this remote copy are not transferred to the original object. Arguments of the movable method are copied together with an original object, but the passing of bidirectional channels is realised through transferring the proxies for such channels. By way of experiments in MC#, we have written a series of parallel programs such as a computation of Fibonacci numbers, walking through binary tree, computation of primes by Eratosthenes sieve, calculation of Mandelbrot set, modeling the Conway’s game “Life”, etc. In all these cases, we got the easy readable and compact code. Also we have an experimental implementation in which the compiler is written in SML.NET, and the execution of movable methods on remote machines is based on the Reflection library of .NET platform.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Benton, N., Cardelli, L., Fournet, C.: Modern Concurrency Abstractions for C#, To appear in ACM Transactions on Programming Languages and Systems

    Google Scholar 

  2. Fournet, C., Gonthier, G.: The reflexive chemical abstract machine and the joincalculus. In: Proceedings of the 23rd ACM-SIGACT Symposium on Principles of Programming Languages, pp. 372–385. ACM, New York (2002)

    Google Scholar 

  3. Fournet, C., Le Fessant, F.: Jocaml, a Language for Concurrent, Distributed and Mobile Programming. In: Proceedings of the 4th Summer School on Advanced Functional Programming, Oxford, August 19–24 (2002)

    Google Scholar 

  4. Abramov, S., Adamovich, A.: T-system: a programming environment with support of automatic dynamic parallelizing of programs (in Russian). In: Ailamazyan, A.C., Moscow, Nauka (eds.) Program systems: Theoretical foundations and applications, pp. 201–213 (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Guzev, V., Serdyuk, Y. (2003). Asynchronous Parallel Programming Language Based on the Microsoft .NET Platform. In: Malyshkin, V.E. (eds) Parallel Computing Technologies. PaCT 2003. Lecture Notes in Computer Science, vol 2763. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45145-7_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45145-7_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40673-0

  • Online ISBN: 978-3-540-45145-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics