首页> 外文OA文献 >Affinity: A Concurrent Programming System for Multicomputers
【2h】

Affinity: A Concurrent Programming System for Multicomputers

机译:亲和力:多计算机并行编程系统

摘要

Affinity is an experiment to explore a simple, convenient, and expressive programming model that provides adequate power for complex programming tasks while setting few constraints on potential concurrency. Although the programmer is required to formulate a computational problem explicitly into medium-sized pieces of data and code, most of the additional functions necessary for concurrent execution are implicit. The execution of the light-weight, reactive processes, called actions, implicitly induces atomicity and consistency of data modifications. The programmer accesses shared data structures in a shared-memory fashion, but without the need for explicit locking to manage the problems of concurrent access and mutual exclusion. Program control flow is distributed and implicit. The name given to the programming model, Affinity, has a definition, "causal connection or relationship," that is fitting to the way programs are structured and scheduled. Affinity consistency and coherence properties provide a tractable discipline for the dangerous power of a concurrent, shared-memory programming style. Existing programming complexity-management techniques such as object-oriented languages can be used in this multicomputer environment. Affinity programs can compute consistent and correct results despite staleness of data, and asynchrony and nondeterminism in execution of code. Program correctness is invariant under replication, or cloning, of actions. This aspect of the model yields a simple and robust mechanism for fault- tolerance. The practicality of the Affinity programming model has been demonstrated by an implementation on a second-generation multicomputer, the Ametek S/2010. The implementation is distributed, scalable, and relatively insensitive to network latency. Affinity has demonstrated reasonable efficiency and performance for computations with tens of processing nodes, hundreds of actions, and thousands of shared data structures.
机译:亲和力是一种探索简单,方便且表现力强的编程模型的实验,该模型可为复杂的编程任务提供足够的功能,同时对潜在的并发设置很少的约束。尽管要求程序员将计算问题明确地表达为中等大小的数据和代码,但并发执行所需的大多数附加功能都是隐式的。轻量级的,反应性的过程(称为动作)的执行隐含了原子性和数据修改的一致性。程序员以共享内存的方式访问共享数据结构,但无需显式锁定即可管理并发访问和互斥的问题。程序控制流是分布式的和隐式的。编程模型的名称Affinity具有“因果关系或因果关系”的定义,适合于程序的结构和计划方式。亲和力一致性和一致性属性为并发共享内存编程风格的危险性提供了易于处理的规则。在这种多计算机环境中,可以使用现有的编程复杂性管理技术,例如面向对象的语言。尽管数据陈旧,代码执行过程中存在异步性和不确定性,但相似性程序仍可以计算出一致且正确的结果。在动作的复制或克隆下,程序的正确性是不变的。该模型的这一方面为容错提供了一种简单而强大的机制。 Affinity编程模型的实用性已在第二代多计算机Ametek S / 2010上的实现得到了证明。该实现是分布式的,可伸缩的,并且对网络延迟相对不敏感。对于具有数十个处理节点,数百个动作和数千个共享数据结构的计算,Affinity已经证明了合理的效率和性能。

著录项

  • 作者

    Steele Craig S.;

  • 作者单位
  • 年度 1992
  • 总页数
  • 原文格式 PDF
  • 正文语种
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号