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 条
  • [31] THE FEASIBILITY OF A GENERAL-PURPOSE PARALLEL COMPUTER USING WSI
    ANDERSON, P
    KELLY, P
    WINTERBOTTOM, P
    LECTURE NOTES IN COMPUTER SCIENCE, 1989, 365 : 251 - 268
  • [32] Kinematics and dynamics of a general-purpose, parallel, compliant micromanipulator
    Liu, PA
    Li, Q
    PROCEEDINGS OF THE INSTITUTION OF MECHANICAL ENGINEERS PART K-JOURNAL OF MULTI-BODY DYNAMICS, 2003, 217 (01) : 39 - 50
  • [33] MEDICAL VOLUME VISUALIZATION ON GENERAL-PURPOSE PARALLEL ARCHITECTURES
    KONING, AHJ
    ZUIDERVELD, KJ
    VIERGEVER, MA
    MEDICAL INFORMATICS, 1994, 19 (03): : 283 - 293
  • [34] ROptimus: a parallel general-purpose adaptive optimization engine
    Johnson, Nicholas A. G.
    Tamon, Liezel
    Liu, Xin
    Sahakyan, Aleksandr B.
    BIOINFORMATICS, 2023, 39 (05)
  • [35] The design of general-purpose parallel interface based on CPLD
    Yu, CF
    Yu, HH
    Tang, TA
    2001 4TH INTERNATIONAL CONFERENCE ON ASIC PROCEEDINGS, 2001, : 526 - 529
  • [36] Is Multicore Hardware for General-Purpose Parallel Processing Broken?
    Vishkin, Uzi
    COMMUNICATIONS OF THE ACM, 2014, 57 (04) : 35 - 39
  • [37] A Local Customizable Gateway in General-Purpose IoT Framework
    Kuo, Wen-Hsing
    Shieh, Min-Zheng
    IOT AS A SERVICE, IOTAAS 2017, 2018, 246 : 230 - 233
  • [38] A GENERAL-PURPOSE GRAPH DYNAMICAL SYSTEM MODELING FRAMEWORK
    Kuhlman, Chris J.
    Kumar, V. S. Anil
    Marathe, Madhav V.
    Mortveit, Henning S.
    Swarup, Samarth
    Tuli, Gaurav
    Ravi, S. S.
    Rosenkrantz, Daniel J.
    PROCEEDINGS OF THE 2011 WINTER SIMULATION CONFERENCE (WSC), 2011, : 296 - 308
  • [39] Automated Framework for General-Purpose Genetic Algorithms in FPGAs
    Guo, Liucheng
    Thomas, David B.
    Luk, Wayne
    APPLICATIONS OF EVOLUTIONARY COMPUTATION, 2014, 8602 : 714 - 725
  • [40] Polaris: a general-purpose, modular data acquisition framework
    Suerfu, B.
    JOURNAL OF INSTRUMENTATION, 2018, 13