上田研究室のプロフィール (学部4年生用紹介資料)

研究室ホームページ - 研究分野紹介 - 読み物

2008年度 研究室見学日程

  • 4月3日(木) 14:00-18:00, 63号館05-22号室
  • 4月4日(金) 11:00-14:00, 63号館05-22号室
指導教員への質問や相談がありましたら,遠慮なくメールで送ってください. また,上記の見学時間以外でも,会議がない限りは,相談にのるようにします.

目次

研究分野

コンピュータサイエンスの核心である『プログラミング』が今後あるべき姿を 根幹から探求します.『21世紀のコンピューティングパラダイム』を確立を目 指して
  • 先端的プログラミング言語 −基礎理論から実装まで−
  • 高信頼ソフトウェア構築技術
の開拓に取り組んでいます.
  • 並行/並列/分散プログラミング
  • 超スケーラブルコンピューティング
  • 制約プログラミングと知識情報処理
  • インタラクティブ・ソフトウェア
など多分野の要素技術を総動員するとともに,これらの分野に対して 新たなパラダイムをもたらすことをも目指しています.

研究内容の詳細

高性能な並列計算機が容易に構成できるようになり,個人用計算機も,インターネットによって構成される巨大な超並列・超分散計算機システムの一員となっています.でも,このようなコンピューティング環境を自在に活かす面白いソフトウェアを作ってみよと言われたら ... 発想力とともに,足腰(=基礎技術)の強さや知識の豊かさが厳しく問われてきます.

当研究室で特に意欲的に取り組んでいる領域は,

  1. 複数のコンピュータが分業・協調しつつ動作するソフトウェア
  2. アルゴリズムが確立していない問題領域のためのソフトウェア
  3. 連続変化と離散変化の両方をもつシステムを扱うソフトウェア
です.1. は並行・並列・分散処理に,2. は知識情報処理に,3 はシミュレーションやアニメーションや図形処理に深く関連していますが,これらは通常の方法論で十分な機能,性能,信頼性をもったソフトウェアを構築することが大変困難なことで共通しています.

研究室の最大の世界的貢献分野であるプログラミング言語の設計と実装に関する蓄積を土台に,上記領域のソフトウェアを構築するためのコトバと考え方の確立,および応用ソフトウェアの開拓に鋭意取り組んでいます.研究への皆さんの貢献を期待しています.

最近のプロジェクトは下記の通りです.

  1. 並行・並列・分散コンピューティングのためのプログラミング言語. 研究室はあらゆるプログラミング言語とその実装およびプログラミング技術に興味をもっていますが,並行・並列・分散関連では二つのオリジナリティの高いスレッドがあります.

    • LMNtal − 21世紀の計算パラダイム. 科学研究費特定領域研究(C)計画班「計算連続体に基づくソフトウェア実現法」(京大・東大との共同研究)の中で,これまでの並行・分散コンピューティングのモデルと言語を非常に簡明な形で統合した言語 LMNtal(elemental と読みます)の開発に成功しました.LMNtal は当学科21世紀COEのテーマである「超スケーラブルソフトウェア基盤」の核ともなっています.

      LMNtal 処理系(公開中)の設計と開発においては皆さんの先輩諸君が驚くべき才覚とパワーを発揮してきました.現在も LMNtal を軸に,多様化したコンピューティング環境を統合する「21世紀の計算パラダイム」の確立を目指して多方面に研究を展開しています.

    • 宣言型並列分散プログラミング. 第五世代コンピュータプロジェクトの核言語にもなった並行論理型言語 GHC / KL1 を基礎に,グランドチャレンジを設定して,簡潔でかつ検証可能な並列分散計算機能の研究を進めています.

  2. 高性能並列計算とその大規模検証・大規模検索への応用. 上田研の並列計算研究は,PCクラスタが珍しかった時代に卒業研究で構築された 並列計算機システム Folon (1994年頃) から始まりました. 現在の Folon は5代目で,その間,並列計算機は自作の時代(2代目まで)からソフトウェア研究の時代(3代目から)へと変化してきました. 現在のFolonは並列処理および並列プログラミング研究のための汎用の環境となっています.

    最近は,応用研究の重点を高性能検証 (high-performance verification) におき,大規模な探索問題や検証問題のための高性能並列エンジンを構築しようとしています. 今後は 1. のプログラミング言語研究開発とますます接近・交流すると期待されます.

  3. 制約プログラミングとそれに基づく知識情報処理. 制約充足技術を用いてプログラムの誤りを自動的に検出し,さらに修正することのできる完全自動デバッガ Kimaを構築してきました.世界的にも他に類例のないシステムです.

    最近は時空間上の制約を扱えるハイブリッド並行制約プログラミング言語 (Hybrid CC) の研究に取り組んでいます.アニメーションへの応用を動機としていますが,この研究は単なるアニメーションの実現にとどまらず,物理シミュレーションとその品質保証,およびハイブリッドシステムの記述や処理方式の研究へと多彩な広がりを見せつつあります.連続量をきちんと扱うプログラミングの本質が徐々に見えてきました.

当研究室では,「物事の本質がわかり」「変化に強い」研究者・技術者を輩出すべく,
  1. 情報科学の諸分野の技術のクロスオーバー
  2. 乖離しがちな理論研究と実践研究との統合
  3. 基本原理の追求と確立
を特に重視しています.また「本物」にふれて力をつけることも重視しており,分野を代表する原書の講読,並列マシン実機,大規模ソースコードなどと格闘することになります.実システム主義を貫いており,アイデアは論文にするだけでなく,実際にシステムを構築して運用し,人に使ってもらうことが大事だと考えています. 幅広い基礎知識のもとに,頭を柔らかくして研究に取組んで下さい.

研究設備

ほとんどの班が並列計算機をそれぞれ持ち,先輩諸君はその構築と管理を通じて知識や技能を身につけてきました.並列機としてはPC クラスタ FolonIV (16ノード32CPU), Folon V (デュアルコアOpteron; 8ノード32CPU), Opteron Server 4000 (4ノード) やSGI Altix350 (Itanium 2, 8ノード) などさまざまな接続形態をもつマシンを保有しています.

あとは,個人作業用の多数のデスクトップPC,ノートPCに加えて, Itanium 2, Athlon MP (dual), Xeon MP (dual) などの多くのマシンが使い手を待っています.

設備は常時更新を続けており,学生諸君の意見が機種選びに反映されます.サーバ室 を新設したため,居室はだいぶ静かになりました.

人員構成

教授1名,秘書1名,助手2名(うち1名は博士課程在籍),博士課程2名,M2が7名,M1が7名でスタートする予定です.一部のゼミには共同研究先の国立情報学研究所の先生も参加します.

学会発表

日本の関連学会は,情報処理学会,日本ソフトウェア科学会,人工知能学会です.上田はこれらの学会の学会誌・論文誌編集長(「情報処理学会論文誌:プログラミング」および日本ソフトウェア科学会機関誌「コンピュータソフトウェア」)や役員(日本ソフトウェア科学会,人工知能学会)をつとめてきています.

卒業研究でも,新規性の高いものは,査読のある論文誌や会議で発表できます.卒論を発展させた研究が日本ソフトウェア科学会の論文賞を受けたこともあります.研究に国境はないので,海外の人の目にふれるように英語で発表することも非常に重要です.修士課程で第一線の国際会議で発表をする学生もいます.

研究論文ばかりでなく,有用なソフトウェアを日本から発信することも重視しています.また,学外とのさまざまな共同研究プロジェクトがあり,それに関わることによって,外部の研究者や学生と交流をもつ機会があります.

研究室行事

ゼミは週2回,午後に開催しています.このほかに研究グループごとの班ゼミを週1回程度開催しています.4年生は卒論以外に
英語の原書または重要論文の輪読を行います. 本格的料理を作るコンパ(作って食べることはプログラミングに通じます)がかなりの頻度で開催されます.夏合宿(システムプログラムを読む,新しい言語でプログラムを書く,等)については下記を参照して下さい.

指導教員からのコメント

  • 研究室を梁山泊にしよう. 多くの優れたアイデアの芽は,日常の議論や雑談の中から生まれます. 学力でなく研究力をつけるならば,研究室で「生活する」に限ります.
  • 指導教員が,コンピュータサイエンスや情報技術をどのようにとらえ,どのようなビジョンで研究に取り組んでいるかを知ってもらえると有益です.そのためには,ここにある読み物のいくつかを読んでみて下さい. 大学の外での活動も参考になるかもしれません.
  • 若いうちから興味をせばめることなく,自分の本当の興味分野の「周辺」にも関心を持つことを勧めます.他人より広い視点でものを見る能力が,独創的な研究につながります.
  • CS学科の学生には,コンピュータが大好きであることと,科学としてコンピュータに取り組むというスタンスと決意を持つことの両方を期待しています.
  • 配属されてから卒業(大学院修了)までの間が,一番自由な研究ができる時期です.このチャンスを有効に活用してくれるよう期待します.

過去の4年輪読ゼミの題材

過去の夏合宿の題材

1年ごとに,数千行以上のシステムソフトのソース読み会と,本や論文の読み会を交互に行なってきました.2001年度は初めて読み会でなくてプログラムを書く会をやってみました.これが好評だったのでそれからの3回はプログラム書きが続いています. 優秀な成績をおさめると豪華(?)賞品が出るので,寝不足+途中休憩自由にもかかわらず,みな真剣そのものです.2004年度は伝統のソース読み会を復活.
  • 1995年度: GNUSソース(Emacs Lisp)読み会(銚子)
  • 1996年度: M.K.McKusick et al. The Design and Implementation of the 4.4BSD Operating System, Addison-Wesley, 1996 読み会(西伊豆・井田)
  • 1997年度: KLIC (KL1-to-C compiler + runtime) ソース(C + KL1)読み会(河口湖)
  • 1998年度: B.C.Smith, Reflection and Semantics in Lisp, POPL'84 論文読み会(清里)
  • 1999年度: J. Lions, 岩本信一訳,Lions' Commentary on UNIX ,アスキー出版局,1998 (解説つきソース,C + PDP11アセンブラ)読み会,および富士通沼津工場見学会(沼津)
  • 2000年度: S. Abiteboul, P. Buneman, D.Suciu: Data on the Web: From Relations to Semistructured Data and XML, Morgan Kaufmann, 2000 読み会(奥多摩)
  • 2001年度: みんなでSchemeプログラムを書く会(水上)
  • 2002年度:ACMプログラミングコンテスト問題を好きな言語で解いてみる会(秩父)
  • 2003年度:好評につき再度,ACMプログラミングコンテスト問題を好きな言語で解く会(河口湖)
    • 正答者の使用言語: C, C#, Java, KL1 (KLIC), Perl, Prolog, Ruby.
  • 2004年度:“Hybrid CC 祭り”− ソース(C言語)解読+使う会(伊東)
  • 2005年度:皆で実機ロボットの制御プログラムを書く会(越後中里)
  • 2006年度:モデル検査(検証)ツール SPIN を皆で使う会(北志賀)
  • 2007年度:SATソルバをエンジンとしていろいろな問題を解く会(武尊)

過去の卒論テーマの例

  • 分散KL1言語処理系の設計と実装
  • 並行論理型言語における同期ポイント移動の安全性に関する研究
  • プログラム自動誤り修正システムKima
  • PCクラスタFOLONの構築
  • PCクラスタFOLONの通信ライブラリ(廣瀬賞)
  • 制約充足に基づく描画ツールUdrawのデータ構造と制約処理の階層化
  • 制約プログラミングにおける株式オプション取引シミュレータ(廣瀬賞)
  • 全文検索システムVerno用検索言語VQLの設計と実装
  • WWW情報管理インタフェースBookShelfの設計と実装
  • オンライン課題提出・受領システムの構築
  • 見込み計算を用いたネットワークニュースリーダ
  • 自律エージェント構築
  • 遺伝的アルゴリズムによる時間割作成
  • 仮想研究室環境
  • Web Application Programming based on XML and Java
  • WWW全文検索システムVernoにおけるタグデータベースの設計と実装
  • 図形記述言語Utalkの設計と実装
  • 逐次二次計画法による幾何制約処理系の実装と評価
  • 分散共有画像管理に基づくGimp並列化(廣瀬賞)
  • LMNtal 処理系のコンパイラおよびランタイムと実装
  • SMPクラスタの通信コスト削減による並列FFTの高速化
  • SATソルバzchaffのMPIによる並列化
Last update: April 2, 2008
ueda@ueda.info.waseda.ac.jp