共有メモリ向けプリミティブとそのGCCを使った実現

Bibliographic Information

Other Title
  • キョウユウ メモリ ムケ プリミティブ ト ソノ GCC オ ツカッタ ジツゲン
  • Primitives for Shared Memory and Its Implementation with GCC

Search this article

Abstract

並列計算機は共有メモリ型だけを考えてもプロセッサやメモリモデルなどの点で様々なアーキテクチャがある.アーキテクチャの違いを吸収して信頼性・再利用性・実行効率の高いソフトウェアを開発するには,並列処理のための高水準プログラミング言語が有用である.高水準言語コンパイラでは,直接アセンブリコードを生成する代わりに,C言語を実装用言語として利用することでプロセッサに依存するコード生成をCコンパイラに担当させることができる.しかしながら,C言語では,共有メモリに関する不可分操作やメモ リアクセス完了順序を直接記述することはできず,ライブラリやasm文などを利用する必要があり,移植性や実行効率を低下させる原因となっていた.そこで移植性や実行効率を高めるため,C言語の拡張による共有メモリ向けプリミティブを設計している.一方,プリミティブの普及を図るには既存のシステムでもできるだけ利用可能であることが望ましい.そこでプリミティブを少し変更し,GCCの拡張機能による実現を行った.

There are various architectures for shared-memory parallel computers in terms of processors and memory models. High-level programming languages for parallel processing are quite useful to develop reliable, reusable and efficient applications on various parallel computers by concealing their architectural difference. Compliers for high-level languages may directly generate assembly code, but they are implemented more easily by employing C language as an implementation language and using C compilers to generate processor-dependent code. In C, however, we cannot directly describe atomic operations and memory orders for the shared memory; we have to use library routines or asm statements, resulting in poor portability and lower performance. We designed an extended language to C with primitives for shared memory to obtain better portability and performance. On the other hand, in order to promote those primitives, it is desirable that they are available on the conventional system. Thus, we implement the slightly modified version of the primitives with GCC's extended functionality.

Journal

Citations (2)*help

See more

References(12)*help

See more

Related Projects

See more

Keywords

Details 詳細情報について

Report a problem

Back to top