Acute: High-level programming language design for distributed computation

被引:22
作者
Sewell, Peter [1 ]
Leifer, James J.
Wansbrough, Keith
Nardelli, Francesco Zappa
Allen-Williams, Mair
Habouzit, Pierre
Vafeiadis, Viktor
机构
[1] Univ Cambridge, Cambridge, England
[2] INRIA Rocquencourt, Le Chesnay, France
基金
英国工程与自然科学研究理事会;
关键词
D O I
10.1017/S0956796807006442
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Existing languages provide good support for typeful programming of stand-alone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with some instances rebuilt with new versions of certain modules as time goes on. In this paper, we discuss programming-language support for such systems, focussing on their typing and naming issues. We describe an experimental language, Acute, which extends an ML core to support distributed development, deployment, and execution, allowing type-safe interaction between separately built programs. The main features are (1) type-safe marshalling of arbitrary values; (2) type names that are generated (freshly and by hashing) to ensure that type equality tests suffice to protect the invariants of abstract types, across the entire distributed system; (3) expression-level names generated to ensure that name equality tests suffice for type safety of associated values, for example, values carried on named channels; (4) controlled dynamic rebinding of marshalled values to local resources; and (5) thunkification of threads and mutexes to support computation mobility. These features are a large part of what is needed for typeful distributed programming. They are a relatively lightweight extension of ML, should be efficiently implementable, and are expressive enough to enable a wide variety of distributed infrastructure layers to be written as simple library code above the byte-string network and persistent store APIs. This disentangles the language run-time from communication intricacies. This paper highlights the main design choices in Acute. It is supported by a full language definition (of typing, compilation, and operational semantics), by a prototype implementation, and by example distribution libraries.
引用
收藏
页码:547 / 612
页数:66
相关论文
共 50 条
  • [21] dOCAL: high-level distributed programming with OpenCL and CUDA
    Rasch, Ari
    Bigge, Julian
    Wrodarczyk, Martin
    Schulze, Richard
    Gorlatch, Sergei
    JOURNAL OF SUPERCOMPUTING, 2020, 76 (07) : 5117 - 5138
  • [22] Towards high-level programming for distributed problem solving
    Kelly, Ryan F.
    Pearce, Adrian R.
    2006 IEEE/WIC/ACM INTERNATIONAL CONFERENCE ON INTELLIGENT AGENT TECHNOLOGY, PROCEEDINGS, 2006, : 490 - +
  • [23] A High-Level Programming Approach for Distributed Systems with Accelerators
    Steuwer, Michel
    Kegel, Philipp
    Gorlatch, Sergei
    NEW TRENDS IN SOFTWARE METHODOLOGIES, TOOLS AND TECHNIQUES, 2012, 246 : 430 - 441
  • [24] A high-level programming environment for distributed memory architectures
    Giloi, WK
    Pohl, HW
    Schramm, A
    PARALLEL COMPUTING TECHNOLOGIES, 1999, 1662 : 217 - 222
  • [25] High-Level Programming Abstractions for Distributed Graph Processing
    Kalavri, Vasiliki
    Vlassov, Vladimir
    Haridi, Seif
    IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, 2018, 30 (02) : 305 - 324
  • [26] dOCAL: high-level distributed programming with OpenCL and CUDA
    Ari Rasch
    Julian Bigge
    Martin Wrodarczyk
    Richard Schulze
    Sergei Gorlatch
    The Journal of Supercomputing, 2020, 76 : 5117 - 5138
  • [27] HIGH-LEVEL LANGUAGE PROGRAMMING FOR AVIONIC VECTOR PROCESSORS
    BROMMER, K
    KLINE, T
    AIAA COMPUTERS IN AEROSPACE VII CONFERENCE, PTS 1 AND 2: A COLLECTION OF PAPERS, 1989, : 903 - 913
  • [28] Easier NC Programming with High-level Language Elements
    Rochlitzer, Karl-Heinz
    ATP EDITION, 2010, (03): : 14 - 15
  • [29] THE HIGH-LEVEL GRAPHICS PROGRAMMING LANGUAGE PASCAL GRAPH
    BARTH, W
    DIRNBERGER, J
    PURGATHOFER, W
    COMPUTERS & GRAPHICS, 1982, 6 (03) : 109 - 119
  • [30] Experiences using high-level programming for parallel cellular computation
    Spezzano, G
    Talia, D
    HIGH PERFORMANCE COMPUTING SYSTEMS AND APPLICATIONS, 2000, 541 : 515 - 528