• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2008 Fiscal Year Annual Research Report

静的型付関数型言語のSIMD演算・並列化拡張の型に基づく高性能な実装に関する研究

Research Project

Project/Area Number 20700039
Research InstitutionAdvanced Software Technology & Mechatronics Research Institute of Kyoto

Principal Investigator

吉田 信明  Advanced Software Technology & Mechatronics Research Institute of Kyoto, 研究部, 副主任研究員 (00373506)

Keywordsソフトウェア学 / 言語処理系 / 並列計算 / ハイパフォーマンスコンピューティング
Research Abstract

今年度は、静的型付き関数型言語であるStandard MLの処理系である、SML#処理系(東北大学電気通信研究所大堀研究室において実装)に対して、(1) Standard ML言語への固定長ベクタ型の導入、(2) Standard ML言語の固定長ベクタ型データ構文・演算による拡張の導入、を行った。ターゲット環境はIntel IA-32アーキテクチャとし、上記演算の実装においては、IA-32アーキテクチャにおいて提供されているSIMD命令を使用した。
(1) Standar ML言語への固定長ベクタ型の導入
Standard ML言語に対して、固定長ベクタ型を導入した。この型は、格納されるデータ型と長さの組、例えば、4要素整数ベクタ型の場合は"(int, 4) vector"などと表現され、実装上、32ビット整数が4つ連続領域に格納されたデータとして格納されることとなる。格納されるデータ型には制限はなく、MLの特徴である多相型も利用可能である。
(2) Standard ML言語の固定長ベクタ型データ構文・演算による拡張の導入
前項で導入したデータ構造を容易にプログラム中で標記出来るようにするため、固定長ベクタをリテラルとして表現できるようにした。例えば、4要素整数ベクタは"[<1,2,3,4>]"としてプログラムに記述することが出来る。あわせて、この標記をパターンマッチでも使用できるようにした。例えば、引数として4要素のベクタ型を受け取る関数は、"fun f [<x, _, _, _>]=x;"として記述することが出来る。この関数は、∀α.(α,4) vector -> αの型を持ち、多相型も利用可能である。
また、4要素整数ベクタの加算など、アーキテクチャのサポートがある演算について、ハードウェアのSIMD命令を使用したプリミティブを実装した。
本課題の対象であるヘテロジニアスマルチコア環境では、ベクトル演算処理などが多用される。そのため、このようなSIMD演算をprimitiveとして導入しておくことにより、本課題の目標である、MLでのより高速な並列演算処理の実現に貢献すると考えられる。

URL: 

Published: 2010-06-11   Modified: 2016-04-21  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi