Multigrain parallelization for model-based design applications using the OSCAR compiler

Dan Umeda, Takahiro Suzuki, Hiroki Mikami, Keiji Kimura, Hironori Kasahara

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

3 Citations (Scopus)

Abstract

Model-based design is a very popular software development method for developing a wide variety of embedded applications such as automotive systems, aircraft systems, and medical systems. Model-based design tools like MATLAB/Simulink typically allow engineers to graphically build models consisting of connected blocks for the purpose of reducing development time. These tools also support automatic C code generation from models with a special tool such as Embedded Coder to map models onto various kinds of embedded CPUs. Since embedded systems require real-time processing, the use of multi-core CPUs poses more opportunities for accelerating program execution to satisfy the real-time constraints. While prior approaches exploit parallelism among blocks by inspecting MATLAB/Simulink models, this may lose an opportunity for fully exploiting parallelism of the whole program because models potentially have parallelism within a block. To unlock this limitation, this paper presents an automatic parallelization technique for auto-generated C code developed by MATLAB/Simulink with Embedded Coder. Specifically, this work (1) exploits multi-level parallelism including inter-block and intra-block parallelism by analyzing the auto-generated C code, and (2) performs static scheduling to reduce dynamic overheads as much as possible. Also, this paper proposes an automatic profiling framework for the auto-generated code for enhancing static scheduling, which leads to improving the performance of MATLAB/Simulink applications. Performance evaluation shows 4.21 times speedup with six processor cores on Intel Xeon X5670 and 3.38 times speedup with four processor cores on ARM Cortex-A15 compared with uniprocessor execution for a road tracking application.

Original languageEnglish
Title of host publicationLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
PublisherSpringer Verlag
Pages125-139
Number of pages15
Volume9519
ISBN (Print)9783319297774
DOIs
Publication statusPublished - 2016
Event28th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2015 - Raleigh, United States
Duration: 2015 Sep 92015 Sep 11

Publication series

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

Other

Other28th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2015
CountryUnited States
CityRaleigh
Period15/9/915/9/11

Fingerprint

Model-based Design
Parallelization
Compiler
Parallelism
Matlab/Simulink
MATLAB
Speedup
Scheduling
Automatic Parallelization
Real-time
Program processors
Model
Code Generation
Tool Support
Cortex
Profiling
Embedded Systems
Software Development
Performance Evaluation
Aircraft

Keywords

  • Automatic code generation
  • Automatic parallelization
  • MATLAB/Simulink
  • Model-based design
  • Multi-core

ASJC Scopus subject areas

  • Computer Science(all)
  • Theoretical Computer Science

Cite this

Umeda, D., Suzuki, T., Mikami, H., Kimura, K., & Kasahara, H. (2016). Multigrain parallelization for model-based design applications using the OSCAR compiler. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 9519, pp. 125-139). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 9519). Springer Verlag. https://doi.org/10.1007/978-3-319-29778-1_8

Multigrain parallelization for model-based design applications using the OSCAR compiler. / Umeda, Dan; Suzuki, Takahiro; Mikami, Hiroki; Kimura, Keiji; Kasahara, Hironori.

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 9519 Springer Verlag, 2016. p. 125-139 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 9519).

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

Umeda, D, Suzuki, T, Mikami, H, Kimura, K & Kasahara, H 2016, Multigrain parallelization for model-based design applications using the OSCAR compiler. in Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). vol. 9519, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 9519, Springer Verlag, pp. 125-139, 28th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2015, Raleigh, United States, 15/9/9. https://doi.org/10.1007/978-3-319-29778-1_8
Umeda D, Suzuki T, Mikami H, Kimura K, Kasahara H. Multigrain parallelization for model-based design applications using the OSCAR compiler. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 9519. Springer Verlag. 2016. p. 125-139. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)). https://doi.org/10.1007/978-3-319-29778-1_8
Umeda, Dan ; Suzuki, Takahiro ; Mikami, Hiroki ; Kimura, Keiji ; Kasahara, Hironori. / Multigrain parallelization for model-based design applications using the OSCAR compiler. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 9519 Springer Verlag, 2016. pp. 125-139 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inproceedings{f4f390814d0f405f863be8e96727e9fe,
title = "Multigrain parallelization for model-based design applications using the OSCAR compiler",
abstract = "Model-based design is a very popular software development method for developing a wide variety of embedded applications such as automotive systems, aircraft systems, and medical systems. Model-based design tools like MATLAB/Simulink typically allow engineers to graphically build models consisting of connected blocks for the purpose of reducing development time. These tools also support automatic C code generation from models with a special tool such as Embedded Coder to map models onto various kinds of embedded CPUs. Since embedded systems require real-time processing, the use of multi-core CPUs poses more opportunities for accelerating program execution to satisfy the real-time constraints. While prior approaches exploit parallelism among blocks by inspecting MATLAB/Simulink models, this may lose an opportunity for fully exploiting parallelism of the whole program because models potentially have parallelism within a block. To unlock this limitation, this paper presents an automatic parallelization technique for auto-generated C code developed by MATLAB/Simulink with Embedded Coder. Specifically, this work (1) exploits multi-level parallelism including inter-block and intra-block parallelism by analyzing the auto-generated C code, and (2) performs static scheduling to reduce dynamic overheads as much as possible. Also, this paper proposes an automatic profiling framework for the auto-generated code for enhancing static scheduling, which leads to improving the performance of MATLAB/Simulink applications. Performance evaluation shows 4.21 times speedup with six processor cores on Intel Xeon X5670 and 3.38 times speedup with four processor cores on ARM Cortex-A15 compared with uniprocessor execution for a road tracking application.",
keywords = "Automatic code generation, Automatic parallelization, MATLAB/Simulink, Model-based design, Multi-core",
author = "Dan Umeda and Takahiro Suzuki and Hiroki Mikami and Keiji Kimura and Hironori Kasahara",
year = "2016",
doi = "10.1007/978-3-319-29778-1_8",
language = "English",
isbn = "9783319297774",
volume = "9519",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "125--139",
booktitle = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",

}

TY - GEN

T1 - Multigrain parallelization for model-based design applications using the OSCAR compiler

AU - Umeda, Dan

AU - Suzuki, Takahiro

AU - Mikami, Hiroki

AU - Kimura, Keiji

AU - Kasahara, Hironori

PY - 2016

Y1 - 2016

N2 - Model-based design is a very popular software development method for developing a wide variety of embedded applications such as automotive systems, aircraft systems, and medical systems. Model-based design tools like MATLAB/Simulink typically allow engineers to graphically build models consisting of connected blocks for the purpose of reducing development time. These tools also support automatic C code generation from models with a special tool such as Embedded Coder to map models onto various kinds of embedded CPUs. Since embedded systems require real-time processing, the use of multi-core CPUs poses more opportunities for accelerating program execution to satisfy the real-time constraints. While prior approaches exploit parallelism among blocks by inspecting MATLAB/Simulink models, this may lose an opportunity for fully exploiting parallelism of the whole program because models potentially have parallelism within a block. To unlock this limitation, this paper presents an automatic parallelization technique for auto-generated C code developed by MATLAB/Simulink with Embedded Coder. Specifically, this work (1) exploits multi-level parallelism including inter-block and intra-block parallelism by analyzing the auto-generated C code, and (2) performs static scheduling to reduce dynamic overheads as much as possible. Also, this paper proposes an automatic profiling framework for the auto-generated code for enhancing static scheduling, which leads to improving the performance of MATLAB/Simulink applications. Performance evaluation shows 4.21 times speedup with six processor cores on Intel Xeon X5670 and 3.38 times speedup with four processor cores on ARM Cortex-A15 compared with uniprocessor execution for a road tracking application.

AB - Model-based design is a very popular software development method for developing a wide variety of embedded applications such as automotive systems, aircraft systems, and medical systems. Model-based design tools like MATLAB/Simulink typically allow engineers to graphically build models consisting of connected blocks for the purpose of reducing development time. These tools also support automatic C code generation from models with a special tool such as Embedded Coder to map models onto various kinds of embedded CPUs. Since embedded systems require real-time processing, the use of multi-core CPUs poses more opportunities for accelerating program execution to satisfy the real-time constraints. While prior approaches exploit parallelism among blocks by inspecting MATLAB/Simulink models, this may lose an opportunity for fully exploiting parallelism of the whole program because models potentially have parallelism within a block. To unlock this limitation, this paper presents an automatic parallelization technique for auto-generated C code developed by MATLAB/Simulink with Embedded Coder. Specifically, this work (1) exploits multi-level parallelism including inter-block and intra-block parallelism by analyzing the auto-generated C code, and (2) performs static scheduling to reduce dynamic overheads as much as possible. Also, this paper proposes an automatic profiling framework for the auto-generated code for enhancing static scheduling, which leads to improving the performance of MATLAB/Simulink applications. Performance evaluation shows 4.21 times speedup with six processor cores on Intel Xeon X5670 and 3.38 times speedup with four processor cores on ARM Cortex-A15 compared with uniprocessor execution for a road tracking application.

KW - Automatic code generation

KW - Automatic parallelization

KW - MATLAB/Simulink

KW - Model-based design

KW - Multi-core

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

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

U2 - 10.1007/978-3-319-29778-1_8

DO - 10.1007/978-3-319-29778-1_8

M3 - Conference contribution

SN - 9783319297774

VL - 9519

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

SP - 125

EP - 139

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

PB - Springer Verlag

ER -