研究チーム紹介
High Performance Computing
近年,オープンソースソフトウェア(以降,OSS)の普及により,ソフトウェアの開発がこれまで以上に盛んに行われています.
OSSとはAndroidやchrome,Firefoxなどのように当該ライセンスの条件のもとならば,誰でも使えて,誰でも開発に参加できるソフトウェアのことです.
ソフトウェア開発時には,多くの知識や開発経験が必要であるうえに,どれだけ注意しようともバグ(ソフトウェアの誤りや不具合)が混入してしまうこともあります.
そのため,効率的にソフトウェアの開発ができるように工夫したり,開発したソフトウェアにバグ(ソフトウェアの誤りや不具合)がないか調査することなどは重要です.
しかし,年々ソフトウェアの規模や複雑さは増大しており,一般に普及して使われているようなサーバーなどで調査することは難しくなってきています.
そこで我々は,高性能計算(High Performance Computing)(以降,HPC)の利用に着目しました.
HPCとは,スーパーコンピュータやHadoop(OSSの並列処理フレームワーク)といった計算処理の高いサーバー群のことで,
1台のサーバーでは処理できない計算を,複数台のサーバーで分散して計算する技術です.
HPCの利用事例として,科学技術計算の分野におけるコンピュータシュミレーションや生物学の分野における遺伝子解析などが挙げられるが,ソフトウェア研究の分野における利用事例はあまりありません.
その理由の一つとして,HPCを使った研究は専門の知識が必要でハードルが高いと考えられていたためです.
そこで効率的にHPCをソフトウェア研究でも利用することを目的として,次のような研究を我々は行っています.
HPC利用のためのドメイン専用言語の開発
リポジトリマイニングの高速化に向けたHPCの活用
メンバー
- 黄 長贇
- 研究テーマ:
対話的なドメイン専用言語の構築環境に関する研究
- 概要:
ドメイン専用言語 (DSL: Domain-specific language) はドメイン固有の概念に基づいてソフトウェアを開発するための言語である.これを用いることにより生産性や保守性を高めることができる.しかしながら,その一方で,DSLの構築にはドメインに関する深い分析と言語処理系に関する知識が必要となる.そのため,DSLを開発することは一般的に容易ではない.我々はDSLの自動生成を目指し,構築環境Argyleの開発に注力している.Argyleは,言語部品(シンタックス部品,データ型部品,実装部品など)を組み合わせることにより,ドメインの専門家でもあるDSL利用者自らがそれぞれの用途に合ったDSLを対話的に構築するための言語ワークベンチである.DSL利用者がDSLに求める機能と実行環境をArgyleに入力すると,Argyleはその要求を満たす言語部品集合を例プログラムの形で候補として複数提示する.DSL利用者はその中から希望するものを一つ以上選択すると,Argyleは例プログラム間の整合性を検証した上で,最終的なDSLの文法とその処理系を生成する.
- 大坂 陽
- 研究テーマ:
リポジトリマイニングの高速化に向けたHPCの活用
- 概要:
リポジトリマイニングとは,GitやCVSなどの開発リポジトリにあるデータを解析することによって新たな知見を得ることです.このリポジトリのデータは巨大で,何万個という複数のリポジトリが存在しています.そのため,これらのデータを解析する処理には多くの時間がかかり,問題となっています.私の研究の目的は,Hadoop(OSSの並列処理フレームワーク)やスーパーコンピュータなどを使い,このリポジトリマイニングの処理の高速化を図ることです.
Publications
リンクはこちらです.
研究チーム一覧へ