首页> 外文会议>Proceedings of the workshop on Object-based concurrent programming >Concurrent aggregates: using multiple-access data abstractions to manage complexity in concurrent programs
【24h】

Concurrent aggregates: using multiple-access data abstractions to manage complexity in concurrent programs

机译:并发聚合:使用多路访问数据抽象来管理并发程序中的复杂性

获取原文
获取原文并翻译 | 示例

摘要

To program massively concurrent MIMD machines, programmers need tools for managing complexity. One important tool that has been used in the sequential programming world is hierarchies of abstractions. Unfortunately, most concurrent object-oriented languages construct hierarchical abstractions from objects that serialize --- serializing the abstractions. In machines with tens of thousands of processors, unnecessary serialization of this sort can cause significant loss of concurrency.Concurrent Aggregates (CA) is an object-oriented language that allows programmers to build unserialized hierarchies of abstractions by using aggregates. An aggregate in CA is a homogeneous collection of objects (called representatives) that are grouped together and may be referenced by a single aggregate name. Aggregates are integrated into the object model, allowing them to be used wherever an object could be used. Concurrent Aggregates also incorporates several innovative language features that facilitate programmingwith aggregates. Intra-aggregate addressing aids cooperation between parts of an aggregate. Delegation allows programmers to compose a concurrent aggregate behavior from a number of objects or aggregates. Messages in CA are first class objects that can be used to create message handling abstractions (they handle messages as data). Such abstractions facilitate concurrent operations on aggregates. Continuations are also first class objects. In addition, programmers can construct continuations and use them just like system continuations. User constructed continuations can implement synchronization structures such as a barrier synchronization.We have implemented Concurrent Aggregates and have been using the language since August 1989. We have written a number of significant application programs including a PC board router, a concurrent B-tree, a digital logic simulator, a parallel FIFO queue and a multi-grid solver. More information on Concurrent Aggregates can be found in [10, 11, 9].
机译:为了对大型并发MIMD机器进行编程,程序员需要用于管理复杂性的工具。顺序编程领域中使用的一种重要工具是抽象层次结构。不幸的是,大多数并发的面向对象语言都从序列化的对象(即序列化抽象)构造层次结构抽象。在具有成千上万个处理器的机器中,这种不必要的序列化会导致严重的并发损失。并发聚合(CA)是一种面向对象的语言,允许程序员使用聚合来构建未序列化的抽象层次结构。 CA中的聚合是对象(称为代表)的同类集合,这些对象被分组在一起,并且可以由单个聚合名称引用。聚合被集成到对象模型中,从而允许在可以使用对象的任何地方使用它们。并发聚合还合并了一些创新的语言功能,这些属性有助于使用聚合进行编程。集合体内部寻址有助于集合体各部分之间的合作。委派允许程序员从多个对象或聚合中并发聚合行为。 CA中的消息是一类对象,可用于创建消息处理抽象(它们将消息作为数据进行处理)。这种抽象有助于对聚合进行并发操作。延续也是一流的对象。另外,程序员可以构造延续并像系统延续一样使用它们。用户构造的延续可以实现诸如屏障同步之类的同步结构。我们已实现并发聚合,并且自1989年8月以来一直使用该语言。我们编写了许多重要的应用程序,包括PC板路由器,并发B树,数字逻辑模拟器,并行FIFO队列和多网格求解器。有关并发聚合的更多信息,请参见[10,11,9]。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号