WEKO3
アイテム
共有メモリプログラミングのための拡張C言語
https://ipsj.ixsq.nii.ac.jp/records/16740
https://ipsj.ixsq.nii.ac.jp/records/16740ca6b405c-4082-4f0a-8b49-26896c9e4e72
| 名前 / ファイル | ライセンス | アクション |
|---|---|---|
|
|
Copyright (c) 2003 by the Information Processing Society of Japan
|
|
| オープンアクセス | ||
| Item type | Trans(1) | |||||||
|---|---|---|---|---|---|---|---|---|
| 公開日 | 2003-10-15 | |||||||
| タイトル | ||||||||
| タイトル | 共有メモリプログラミングのための拡張C言語 | |||||||
| タイトル | ||||||||
| 言語 | en | |||||||
| タイトル | An Extended C Language for Shared - memory Programming | |||||||
| 言語 | ||||||||
| 言語 | jpn | |||||||
| キーワード | ||||||||
| 主題Scheme | Other | |||||||
| 主題 | 発表概要 | |||||||
| 資源タイプ | ||||||||
| 資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
| 資源タイプ | journal article | |||||||
| 著者所属 | ||||||||
| 京都大学大学院情報学研究科通信情報システム専攻 | ||||||||
| 著者所属 | ||||||||
| 京都大学大学院情報学研究科通信情報システム専攻 | ||||||||
| 著者所属 | ||||||||
| 京都大学大学院情報学研究科通信情報システム専攻 | ||||||||
| 著者所属 | ||||||||
| 京都大学大学院情報学研究科通信情報システム専攻 | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| Department of Communications and Computer Engineering, Graduate School of Informatics, Kyoto University | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| Department of Communications and Computer Engineering, Graduate School of Informatics, Kyoto University | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| Department of Communications and Computer Engineering, Graduate School of Informatics, Kyoto University | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| Department of Communications and Computer Engineering, Graduate School of Informatics, Kyoto University | ||||||||
| 著者名 |
高田, 潤
八杉, 昌宏
小宮, 常康
湯淺, 太一
× 高田, 潤 八杉, 昌宏 小宮, 常康 湯淺, 太一
|
|||||||
| 著者名(英) |
Jun, Takada
Masahiro, Yasugi
Tsuneyasu, Komiya
Taiichi, Yuasa
× Jun, Takada Masahiro, Yasugi Tsuneyasu, Komiya Taiichi, Yuasa
|
|||||||
| 論文抄録 | ||||||||
| 内容記述タイプ | Other | |||||||
| 内容記述 | 従来の並列プログラミングでは,共有メモリに対する不可分操作やメモリアクセス完了順序について,専用ライブラリの呼び出しやasm文などを使用してきた.しかしそれらを用いると,コードの移植性やライブラリ呼び出しのオーバヘッド,コンパイラによる最適化や型チェックを妨げるなどの問題があった.本研究では,C言語を拡張し,共有メモリ向け機能を追加した.実装にはコンパイラとしてGCCを用いた.オーバヘッドを減らし,最適化を最大限に生かすためにはGCCの持つRTLを拡張するのが望ましいが,それにはGCCのすべての最適化器に手を入れる必要があり非常に繁雑である.したがって本研究では既存のRTLをうまく利用することでGCCが持つ最適化器自体には触れないように実装することにした.これにより最適化はGCCの既存部分に任せることができる.一方で,メモリアクセス完了順序を保証する場合など,最適化してはならない部分も存在する.それらを考慮に入れたうえで,最適化を最大限に生かすようにした.また本発表では,実装した拡張C言語を用いて,共有メモリに関するいくつかのプログラミング例について紹介する. | |||||||
| 論文抄録(英) | ||||||||
| 内容記述タイプ | Other | |||||||
| 内容記述 | In parallel programming in C, we often use library calls or asm statements for atomic memory operations and constraints on memory access order. However, asm statements reduce portability and the overhead of library calls reduce performance. Furthermore, they often invalidate optimizations and the type checking of the compiler. So, we extended the C language with shared-memory functionalities. The C compiler we implemented is based on GCC. In order to minimize the overhead and maximize the effect of optimizations, it is ideal to extend the RTL in GCC. However, it is very costly because we must extend all optimizers in GCC. In this research, we effectively used the combination of the original RTL without extension. The optimization process is left to the original optimizers of GCC because we did not extend the optimizers. However, some code should not be optimized by the compiler, in particularly, the code for constrains on memory access order. Our implementation can maximize the effect of optimization even if the program contains such code. We also present some examples of shared-memory programming in our extended C language. | |||||||
| 書誌レコードID | ||||||||
| 収録物識別子タイプ | NCID | |||||||
| 収録物識別子 | AA11464814 | |||||||
| 書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 44, 号 SIG13(PRO18), p. 117-117, 発行日 2003-10-15 |
|||||||
| ISSN | ||||||||
| 収録物識別子タイプ | ISSN | |||||||
| 収録物識別子 | 1882-7802 | |||||||
| 出版者 | ||||||||
| 言語 | ja | |||||||
| 出版者 | 情報処理学会 | |||||||