A scheduling framework for general-purpose parallel languages

被引:4
|
作者
Fluet, Matthew [1 ]
Rainey, Mike [2 ]
Reppy, John [2 ]
机构
[1] Toyota Technol Inst, Chicago, IL 60637 USA
[2] Univ Chicago, Chicago, IL 60637 USA
关键词
languages; performance; heterogeneous parallel languages; scheduling; compilers; and run-time systems;
D O I
10.1145/1411203.1411239
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The trend in microprocessor design toward multicore and manycore processors means that future performance gains in software will largely come from harnessing parallelism. To realize such gains, we need languages and implementations that can enable parallelism at many different levels. For example, an application might use both explicit threads to implement course-grain parallelism for independent tasks and implicit threads for fine-grain data-parallel computation over a large array. An important aspect of this requirement is supporting a wide range of different scheduling mechanisms for parallel computation. In this paper, we describe the scheduling framework that we have designed and implemented for Manticore, a strict parallel functional language. We take a micro-kernel approach in our design: the compiler and runtime support a small collection of scheduling primitives upon which complex scheduling policies can be implemented. This framework is extremely flexible and can support a wide range of different scheduling policies. It also supports the nesting of schedulers, which is key to both supporting multiple scheduling policies in the same application and to hierarchies of speculative parallel computations. In addition to describing our framework, we also illustrate its expressiveness with several popular scheduling techniques. We present a ( mostly) modular approach to extending our schedulers to support cancellation. This mechanism is essential for implementing eager and speculative parallelism. We finally evaluate our framework with a series of benchmarks and an analysis.
引用
下载
收藏
页码:241 / 252
页数:12
相关论文
共 50 条
  • [21] EFFICIENT GENERAL-PURPOSE PARALLEL COMPUTER.
    Galil, Zvi
    Paul, Wolfang J.
    Journal of the ACM, 1983, 30 (02): : 360 - 387
  • [22] Symbiotic General-Purpose and Domain-Specific Languages
    Atkinson, Colin
    Gerbig, Ralph
    Kennel, Bastian
    2012 34TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2012, : 1269 - 1272
  • [23] General-Purpose, Parallel and Reversible Microfluidic Interconnects
    Wagler, Patrick Fred
    Tangen, Uwe
    Ott, Johannes
    McCaskill, John Simpson
    IEEE TRANSACTIONS ON COMPONENTS PACKAGING AND MANUFACTURING TECHNOLOGY, 2015, 5 (03): : 291 - 300
  • [24] A parallel general-purpose synthetic data generator
    Hoag, Joseph E.
    Thompson, Craig W.
    SIGMOD RECORD, 2007, 36 (01) : 19 - 24
  • [25] General-purpose parallel simulator for quantum computing
    Niwa, J
    Matsumoto, K
    Imai, H
    PHYSICAL REVIEW A, 2002, 66 (06) : 11
  • [26] MAPPING PARALLEL ALGORITHMS ONTO GENERAL-PURPOSE PARALLEL MACHINES
    CHEN, MC
    PROCEEDINGS OF THE TWENTY-FIRST, ANNUAL HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES, VOLS 1-4: ARCHITECTURE TRACK, SOFTWARE TRACK, DECISION SUPPORT AND KNOWLEDGE BASED SYSTEMS TRACK, APPLICATIONS TRACK, 1988, : 131 - 141
  • [27] Emulations between QSM, BSP and LogP: a framework for general-purpose parallel algorithm design
    Ramachandran, V
    Grayson, B
    Dahlin, M
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2003, 63 (12) : 1175 - 1192
  • [28] Fair Scheduling of General-Purpose Workloads on Workstation Clusters
    Cosimo Anglano
    Cluster Computing, 2002, 5 (1) : 87 - 96
  • [29] A TAXONOMY OF SCHEDULING IN GENERAL-PURPOSE DISTRIBUTED COMPUTING SYSTEMS
    CASAVANT, TL
    KUHL, JG
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1988, 14 (02) : 141 - 154
  • [30] ISI - AN ENVIRONMENT FOR THE ENGINEERING USE OF GENERAL-PURPOSE SIMULATION LANGUAGES
    NOLAN, PJ
    LANE, GM
    FEGAN, JM
    SIMULATION, 1991, 56 (01) : 41 - 47