首页> 外文会议>Parallel Computing Technologies >Asynchronous Parallel Programming Language Based on the Microsoft NET Platform
【24h】

Asynchronous Parallel Programming Language Based on the Microsoft NET Platform

机译:基于Microsoft NET平台的异步并行编程语言

获取原文

摘要

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.
机译:MC#是基于Polyphonic C#语言(N.Benton,L.Cardelli,C.Fournet; Microsoft Research,英国剑桥)接受的异步并行编程模型的,用于群集和GRID体系结构的编程语言。 Polyphonic C#的异步方法在MC#中扮演两个主要角色:1)作为在远程计算机上执行的自治方法,以及2)作为用于传递消息的方法。前者在MC#中被标识为“可移动方法”,而后者则与名为“通道”的元素一起形成了特殊的句法类。与和弦C#相似,和弦用于定义通道并用作同步机制。 MC#通道自然地概括为“双向通道”,可以在可移动方法中用于发送和接收消息。 MC#的运行时系统具有对对象的复制操作作为基本操作,该复制操作计划在远程计算机上执行。在可移动方法完成其工作之后,此副本“已死”,并且此远程副本的所有更改都不会传输到原始对象。可移动方法的参数与原始对象一起被复制,但是双向通道的传递是通过传递此类通道的代理来实现的。通过MC#中的实验,我们编写了一系列并行程序,例如计算斐波纳契数,遍历二叉树,通过Eratosthenes筛子计算素数,计算Mandelbrot集,对Conway游戏“生命”建模等。在所有这些情况下,我们都获得了易于阅读和紧凑的代码。另外,我们有一个实验性的实现,其中的编译器是用SML.NET编写的,而在远程机器上可移动方法的执行是基于NET平台的反射库的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号