Language extensions in support of compiler parallelization

Jun Shirako, Hironori Kasahara, Vivek Sarkar

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    6 Citations (Scopus)

    Abstract

    In this paper, we propose an approach to automatic compiler parallelization based on language extensions that is applicable to a broader range of program structures and application domains than in past work. As a complement to ongoing work on high productivity languages for explicit parallelism, the basic idea in this paper is to make sequential languages more amenable to compiler parallelization by adding enforceable declarations and annotations. Specifically, we propose the addition of annotations and declarations related to multidimensional arrays, points, regions, array views, parameter intents, array and object privatization, pure methods, absence of exceptions, and gather/reduce computations. In many cases, these extensions are also motivated by best practices in software engineering, and can also contribute to performance improvements in sequential code. A detailed case study of the Java Grande Forum benchmark suite illustrates the obstacles to compiler parallelization in current object-oriented languages, and shows that the extensions proposed in this paper can be effective in enabling compiler parallelization. The results in this paper motivate future work on building an automatically parallelizing compiler for the language extensions proposed in this paper.

    Original languageEnglish
    Title of host publicationLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    Pages78-94
    Number of pages17
    Volume5234 LNCS
    DOIs
    Publication statusPublished - 2008
    Event20th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2007 - Urbana, IL
    Duration: 2007 Oct 112007 Oct 13

    Publication series

    NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    Volume5234 LNCS
    ISSN (Print)03029743
    ISSN (Electronic)16113349

    Other

    Other20th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2007
    CityUrbana, IL
    Period07/10/1107/10/13

    Fingerprint

    Privatization
    Object oriented programming
    Parallelization
    Compiler
    Software engineering
    Productivity
    Annotation
    Parallelizing Compilers
    Multidimensional Arrays
    Object-oriented Languages
    Best Practice
    Software Engineering
    Exception
    Java
    Parallelism
    Complement
    Benchmark
    Language
    Range of data

    ASJC Scopus subject areas

    • Computer Science(all)
    • Theoretical Computer Science

    Cite this

    Shirako, J., Kasahara, H., & Sarkar, V. (2008). Language extensions in support of compiler parallelization. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 5234 LNCS, pp. 78-94). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 5234 LNCS). https://doi.org/10.1007/978-3-540-85261-2_6

    Language extensions in support of compiler parallelization. / Shirako, Jun; Kasahara, Hironori; Sarkar, Vivek.

    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 5234 LNCS 2008. p. 78-94 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 5234 LNCS).

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    Shirako, J, Kasahara, H & Sarkar, V 2008, Language extensions in support of compiler parallelization. in Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). vol. 5234 LNCS, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 5234 LNCS, pp. 78-94, 20th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2007, Urbana, IL, 07/10/11. https://doi.org/10.1007/978-3-540-85261-2_6
    Shirako J, Kasahara H, Sarkar V. Language extensions in support of compiler parallelization. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 5234 LNCS. 2008. p. 78-94. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)). https://doi.org/10.1007/978-3-540-85261-2_6
    Shirako, Jun ; Kasahara, Hironori ; Sarkar, Vivek. / Language extensions in support of compiler parallelization. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 5234 LNCS 2008. pp. 78-94 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
    @inproceedings{410727c86bbf44338792f3ef86f2fa17,
    title = "Language extensions in support of compiler parallelization",
    abstract = "In this paper, we propose an approach to automatic compiler parallelization based on language extensions that is applicable to a broader range of program structures and application domains than in past work. As a complement to ongoing work on high productivity languages for explicit parallelism, the basic idea in this paper is to make sequential languages more amenable to compiler parallelization by adding enforceable declarations and annotations. Specifically, we propose the addition of annotations and declarations related to multidimensional arrays, points, regions, array views, parameter intents, array and object privatization, pure methods, absence of exceptions, and gather/reduce computations. In many cases, these extensions are also motivated by best practices in software engineering, and can also contribute to performance improvements in sequential code. A detailed case study of the Java Grande Forum benchmark suite illustrates the obstacles to compiler parallelization in current object-oriented languages, and shows that the extensions proposed in this paper can be effective in enabling compiler parallelization. The results in this paper motivate future work on building an automatically parallelizing compiler for the language extensions proposed in this paper.",
    author = "Jun Shirako and Hironori Kasahara and Vivek Sarkar",
    year = "2008",
    doi = "10.1007/978-3-540-85261-2_6",
    language = "English",
    isbn = "3540852603",
    volume = "5234 LNCS",
    series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
    pages = "78--94",
    booktitle = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",

    }

    TY - GEN

    T1 - Language extensions in support of compiler parallelization

    AU - Shirako, Jun

    AU - Kasahara, Hironori

    AU - Sarkar, Vivek

    PY - 2008

    Y1 - 2008

    N2 - In this paper, we propose an approach to automatic compiler parallelization based on language extensions that is applicable to a broader range of program structures and application domains than in past work. As a complement to ongoing work on high productivity languages for explicit parallelism, the basic idea in this paper is to make sequential languages more amenable to compiler parallelization by adding enforceable declarations and annotations. Specifically, we propose the addition of annotations and declarations related to multidimensional arrays, points, regions, array views, parameter intents, array and object privatization, pure methods, absence of exceptions, and gather/reduce computations. In many cases, these extensions are also motivated by best practices in software engineering, and can also contribute to performance improvements in sequential code. A detailed case study of the Java Grande Forum benchmark suite illustrates the obstacles to compiler parallelization in current object-oriented languages, and shows that the extensions proposed in this paper can be effective in enabling compiler parallelization. The results in this paper motivate future work on building an automatically parallelizing compiler for the language extensions proposed in this paper.

    AB - In this paper, we propose an approach to automatic compiler parallelization based on language extensions that is applicable to a broader range of program structures and application domains than in past work. As a complement to ongoing work on high productivity languages for explicit parallelism, the basic idea in this paper is to make sequential languages more amenable to compiler parallelization by adding enforceable declarations and annotations. Specifically, we propose the addition of annotations and declarations related to multidimensional arrays, points, regions, array views, parameter intents, array and object privatization, pure methods, absence of exceptions, and gather/reduce computations. In many cases, these extensions are also motivated by best practices in software engineering, and can also contribute to performance improvements in sequential code. A detailed case study of the Java Grande Forum benchmark suite illustrates the obstacles to compiler parallelization in current object-oriented languages, and shows that the extensions proposed in this paper can be effective in enabling compiler parallelization. The results in this paper motivate future work on building an automatically parallelizing compiler for the language extensions proposed in this paper.

    UR - http://www.scopus.com/inward/record.url?scp=54249155210&partnerID=8YFLogxK

    UR - http://www.scopus.com/inward/citedby.url?scp=54249155210&partnerID=8YFLogxK

    U2 - 10.1007/978-3-540-85261-2_6

    DO - 10.1007/978-3-540-85261-2_6

    M3 - Conference contribution

    AN - SCOPUS:54249155210

    SN - 3540852603

    SN - 9783540852605

    VL - 5234 LNCS

    T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

    SP - 78

    EP - 94

    BT - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

    ER -