Enhancing the performance of a multiplayer game by using a parallelizing compiler

Yasir I M Al-Dosary, Keiji Kimura, Hironori Kasahara, Seinosuke Narita

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

    Abstract

    Video Games have been a very popular form of digital entertainment in recent years. They have been delivered in state of the art technologies that include multi-core processors that are known to be the leading contributor in enhancing the performance of computer applications. Since parallel programming is a difficult technology to implement, that field in Video Games is still rich with areas for advancements. This paper investigates performance enhancement in Video Games when using parallelizing compilers and the difficulties involved in achieving that. This experiment conducts several stages in attempting to parallelize a well-renowned sequentially written Video Game called ioquake3. First, the Game is profiled for discovering bottlenecks, then examined by hand on how much parallelism could be extracted from those bottlenecks, and what sort of hazards exist in delivering a parallel-friendly version of ioquake3. Then, the Game code is rewritten into a hazard-free version while also modified to comply with the Parallelizable-C rules, which crucially aid parallelizing compilers in extracting parallelism. Next, the program is compiled using a parallelizing compiler called OSCAR (Optimally Scheduled Advanced Multiprocessor) to produce a parallel version of ioquake3. Finally, the performance of the newly produced parallel version of ioquake3 on a Multi-core platform is analyzed. The following is found: (1) the parallelized game by the compiler from the revised sequential program of the game is found to achieve a 5.1 faster performance at 8-threads than original one on an IBM Power 5+ machine that is equipped with 8-cores, and (2) hazards are caused by thread contentions over globally shared data, and as well as thread private data, and (3) AI driven players are represented very similarly to Human players inside ioquake3 engine, which gives an estimation of the costs for parallelizing Human driven sessions, and (4) 70% of the costs of the experiment is spent in analyzing ioquake3 code, 30% in implementing the changes in the code.

    Original languageEnglish
    Title of host publicationProceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games
    Pages67-75
    Number of pages9
    DOIs
    Publication statusPublished - 2012
    Event17th International Conference on Computer Games, CGAMES 2012 - Louisville, KY
    Duration: 2012 Jul 302012 Aug 1

    Other

    Other17th International Conference on Computer Games, CGAMES 2012
    CityLouisville, KY
    Period12/7/3012/8/1

    Fingerprint

    Hazards
    Parallel programming
    Computer applications
    Costs
    Experiments
    Engines

    Keywords

    • ioquake3
    • OSCAR
    • parallel Computing
    • parallelizing compilers
    • Quake
    • Video Games

    ASJC Scopus subject areas

    • Human-Computer Interaction
    • Software

    Cite this

    Al-Dosary, Y. I. M., Kimura, K., Kasahara, H., & Narita, S. (2012). Enhancing the performance of a multiplayer game by using a parallelizing compiler. In Proceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games (pp. 67-75). [6314554] https://doi.org/10.1109/CGames.2012.6314554

    Enhancing the performance of a multiplayer game by using a parallelizing compiler. / Al-Dosary, Yasir I M; Kimura, Keiji; Kasahara, Hironori; Narita, Seinosuke.

    Proceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games. 2012. p. 67-75 6314554.

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

    Al-Dosary, YIM, Kimura, K, Kasahara, H & Narita, S 2012, Enhancing the performance of a multiplayer game by using a parallelizing compiler. in Proceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games., 6314554, pp. 67-75, 17th International Conference on Computer Games, CGAMES 2012, Louisville, KY, 12/7/30. https://doi.org/10.1109/CGames.2012.6314554
    Al-Dosary YIM, Kimura K, Kasahara H, Narita S. Enhancing the performance of a multiplayer game by using a parallelizing compiler. In Proceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games. 2012. p. 67-75. 6314554 https://doi.org/10.1109/CGames.2012.6314554
    Al-Dosary, Yasir I M ; Kimura, Keiji ; Kasahara, Hironori ; Narita, Seinosuke. / Enhancing the performance of a multiplayer game by using a parallelizing compiler. Proceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games. 2012. pp. 67-75
    @inproceedings{1eb6c785ab8e45c1a57a5815aef58b7a,
    title = "Enhancing the performance of a multiplayer game by using a parallelizing compiler",
    abstract = "Video Games have been a very popular form of digital entertainment in recent years. They have been delivered in state of the art technologies that include multi-core processors that are known to be the leading contributor in enhancing the performance of computer applications. Since parallel programming is a difficult technology to implement, that field in Video Games is still rich with areas for advancements. This paper investigates performance enhancement in Video Games when using parallelizing compilers and the difficulties involved in achieving that. This experiment conducts several stages in attempting to parallelize a well-renowned sequentially written Video Game called ioquake3. First, the Game is profiled for discovering bottlenecks, then examined by hand on how much parallelism could be extracted from those bottlenecks, and what sort of hazards exist in delivering a parallel-friendly version of ioquake3. Then, the Game code is rewritten into a hazard-free version while also modified to comply with the Parallelizable-C rules, which crucially aid parallelizing compilers in extracting parallelism. Next, the program is compiled using a parallelizing compiler called OSCAR (Optimally Scheduled Advanced Multiprocessor) to produce a parallel version of ioquake3. Finally, the performance of the newly produced parallel version of ioquake3 on a Multi-core platform is analyzed. The following is found: (1) the parallelized game by the compiler from the revised sequential program of the game is found to achieve a 5.1 faster performance at 8-threads than original one on an IBM Power 5+ machine that is equipped with 8-cores, and (2) hazards are caused by thread contentions over globally shared data, and as well as thread private data, and (3) AI driven players are represented very similarly to Human players inside ioquake3 engine, which gives an estimation of the costs for parallelizing Human driven sessions, and (4) 70{\%} of the costs of the experiment is spent in analyzing ioquake3 code, 30{\%} in implementing the changes in the code.",
    keywords = "ioquake3, OSCAR, parallel Computing, parallelizing compilers, Quake, Video Games",
    author = "Al-Dosary, {Yasir I M} and Keiji Kimura and Hironori Kasahara and Seinosuke Narita",
    year = "2012",
    doi = "10.1109/CGames.2012.6314554",
    language = "English",
    isbn = "9781467311199",
    pages = "67--75",
    booktitle = "Proceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games",

    }

    TY - GEN

    T1 - Enhancing the performance of a multiplayer game by using a parallelizing compiler

    AU - Al-Dosary, Yasir I M

    AU - Kimura, Keiji

    AU - Kasahara, Hironori

    AU - Narita, Seinosuke

    PY - 2012

    Y1 - 2012

    N2 - Video Games have been a very popular form of digital entertainment in recent years. They have been delivered in state of the art technologies that include multi-core processors that are known to be the leading contributor in enhancing the performance of computer applications. Since parallel programming is a difficult technology to implement, that field in Video Games is still rich with areas for advancements. This paper investigates performance enhancement in Video Games when using parallelizing compilers and the difficulties involved in achieving that. This experiment conducts several stages in attempting to parallelize a well-renowned sequentially written Video Game called ioquake3. First, the Game is profiled for discovering bottlenecks, then examined by hand on how much parallelism could be extracted from those bottlenecks, and what sort of hazards exist in delivering a parallel-friendly version of ioquake3. Then, the Game code is rewritten into a hazard-free version while also modified to comply with the Parallelizable-C rules, which crucially aid parallelizing compilers in extracting parallelism. Next, the program is compiled using a parallelizing compiler called OSCAR (Optimally Scheduled Advanced Multiprocessor) to produce a parallel version of ioquake3. Finally, the performance of the newly produced parallel version of ioquake3 on a Multi-core platform is analyzed. The following is found: (1) the parallelized game by the compiler from the revised sequential program of the game is found to achieve a 5.1 faster performance at 8-threads than original one on an IBM Power 5+ machine that is equipped with 8-cores, and (2) hazards are caused by thread contentions over globally shared data, and as well as thread private data, and (3) AI driven players are represented very similarly to Human players inside ioquake3 engine, which gives an estimation of the costs for parallelizing Human driven sessions, and (4) 70% of the costs of the experiment is spent in analyzing ioquake3 code, 30% in implementing the changes in the code.

    AB - Video Games have been a very popular form of digital entertainment in recent years. They have been delivered in state of the art technologies that include multi-core processors that are known to be the leading contributor in enhancing the performance of computer applications. Since parallel programming is a difficult technology to implement, that field in Video Games is still rich with areas for advancements. This paper investigates performance enhancement in Video Games when using parallelizing compilers and the difficulties involved in achieving that. This experiment conducts several stages in attempting to parallelize a well-renowned sequentially written Video Game called ioquake3. First, the Game is profiled for discovering bottlenecks, then examined by hand on how much parallelism could be extracted from those bottlenecks, and what sort of hazards exist in delivering a parallel-friendly version of ioquake3. Then, the Game code is rewritten into a hazard-free version while also modified to comply with the Parallelizable-C rules, which crucially aid parallelizing compilers in extracting parallelism. Next, the program is compiled using a parallelizing compiler called OSCAR (Optimally Scheduled Advanced Multiprocessor) to produce a parallel version of ioquake3. Finally, the performance of the newly produced parallel version of ioquake3 on a Multi-core platform is analyzed. The following is found: (1) the parallelized game by the compiler from the revised sequential program of the game is found to achieve a 5.1 faster performance at 8-threads than original one on an IBM Power 5+ machine that is equipped with 8-cores, and (2) hazards are caused by thread contentions over globally shared data, and as well as thread private data, and (3) AI driven players are represented very similarly to Human players inside ioquake3 engine, which gives an estimation of the costs for parallelizing Human driven sessions, and (4) 70% of the costs of the experiment is spent in analyzing ioquake3 code, 30% in implementing the changes in the code.

    KW - ioquake3

    KW - OSCAR

    KW - parallel Computing

    KW - parallelizing compilers

    KW - Quake

    KW - Video Games

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

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

    U2 - 10.1109/CGames.2012.6314554

    DO - 10.1109/CGames.2012.6314554

    M3 - Conference contribution

    SN - 9781467311199

    SP - 67

    EP - 75

    BT - Proceedings of CGAMES'2012 USA - 17th International Conference on Computer Games: AI, Animation, Mobile, Interactive Multimedia, Educational and Serious Games

    ER -