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

研究室ホームページ - 研究分野紹介 - 上田研究室Q&A集 - 読み物

2017年 研究室見学・初顔合せ日程

  • 3月27日(月) 16:00〜19:00, 63号館05-22号室
  • 3月28日(火) 14:00〜18:00, 63号館05-22号室
  • 3月29日(水) 14:00〜18:00, 63号館05-22号室
  • 3月30日(木) 14:00〜18:00, 63号館05-22号室
  • 3月31日(土) 15:00〜20:00(配属者初顔合せ+歓迎会)
(上記以外の時間帯も可能な限り訪問と相談を受けますからのぞいてみてください.)

上田研究室 Q&A集 を作成しました.参考にしてください.

指導教員への質問や相談がありましたら,遠慮なくメールで送ってください. また,上記の見学時間以外でも,会議がない限りは,相談にのるようにします.

目次

研究分野

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

研究内容の詳細

「難しい(と考えられている)機能を実現する」「高性能で」「結果の正しさが保証された」ソフトウェアを構築する技術の研究を行っています.特に,思考と記述の道具であるプログラミング言語の役割を重視して,「他の言語でできないことができる」高機能な言語の設計・処理系作成技術と,それを支えるさまざまなアルゴリズムの開拓を推進しています.

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

多様なソフトウェア分野の中で当研究室で特に意欲的に取り組んでいる領域は,

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

研究室の最大の世界的貢献分野であるプログラミング言語の設計と実装に関する蓄積を土台に,最近では以下のプロジェクトを柱として,理論計算機科学と実際のシステムソフトウェア構築の双方に深くまたがる研究を学生諸君と共同で推進しています.先端研究への皆さんの貢献を期待します.

  1. 並行・並列・分散コンピューティングおよびシステム検証のためのプログラミング言語.

    研究室はあらゆるプログラミング言語とその実装およびプログラミング技術に興味をもっていますが,当学科21世紀COEのテーマである「超スケーラブルソフトウェア基盤」に端を発して,これまでの並行・分散コンピューティングのモデルと言語を簡潔な形で統合した言語 LMNtal(elemental と読みます)と処理系(十数万行規模,公開中)の開発を進めています.

    処理系の設計開発には皆さんの先輩諸君が驚くべき才覚とパワーを発揮して,その成果はGitHubで公開されています.ソフトウェア並列検証から計算の可視化,統合環境まで,皆の力を結集して多方面に研究が展開しつつあります.

  2. 高性能並列計算とその大規模検証への応用.

    上田研究室では並列処理を「当り前の技術」にすることに強いモチベーションを持っており,多様な並列コンピュータを保有しています.その上での研究テーマとして,最近ではソフトウェアやシステムの高性能検証 (high-performance verification) の研究を推進しており,大規模な探索問題や検証問題のための高性能並列エンジンを構築しています.またこれが軸となって,正当性検証技術の重要性が他のグループにも広く浸透してきました.多くの並列コンピュータを保有していますが,最盛期には一人一台の並列コンピュータがフル稼働状態になります.

  3. 制約プログラミングとそれに基づく知識情報処理.

    人工知能における制約充足技術のさまざまな応用を開拓しています.たとえば,プログラムの誤りを自動的に検出し,さらに修正することのできる完全自動デバッガ Kimaを構築してきました.世界で他に類例のないシステムです.

    最近はコンピュータと実世界とを統合するサイバーフィジカルシステムを扱うプログラミング言語HydLa の開拓を推進しています.一人の学生が始めたアニメーション記述の研究が,物理学や制御工学,数式処理から精度保証数値計算までが関わり合う学際的なプロジェクトへと広がってきました.

    当研究室では,「物事の本質がわかり」「変化に強い」研究者・技術者を輩出すべく,

    1. コンピュータサイエンスの諸分野のクロスオーバー
    2. 乖離しがちな理論研究と実践研究との統合
    3. 10年くらいでは古くならないコンセプトや基本原理の追求と確立
    を特に重視しています.また「本物」にふれて力をつけることも重視しており,分野を代表する原書の講読,並列マシンの実機,大規模ソースコードなどと格闘します.実システム主義を貫いており,アイデアは論文にするだけでなく,実際にシステムを構築して公開・運用し,人に使ってもらうこと,すなわち理論とものつくりの融合をモットーとしています.

    当研究室の分野は,アルゴリズムとデータ構造,計算機システム,プログラミング言語など幅広い基礎知識を必要としますが,それは最先端の研究に必要な基礎体力のようなもので,またIT分野の世界有数企業のトップが求めている資質でもあります. 我々の分野においてはさらに,頭の柔らかさや遊び心も重要かもしれません.

研究設備

ほとんどの班が並列計算機やメニーコア計算機をそれぞれ持ち,先輩諸君はその構築と管理を通じて知識や技能を身につけてきました.並列機としては共有メモリXeonサーバ2機 (8-core Xeon, 4ノード32CPU, 1TB共有メモリおよび10-core Xeon, 4ノード40CPU, 256GB共有メモリ),共有メモリ Opteronサーバ (12-core Opteron,4ノード48CPU, 256GB共有メモリ) をはじめとする さまざまな接続形態をもつマシンや, NDIVIA TeslaやXeon Phi搭載サーバを保有しています. 最近導入した3Dプリンタも大活躍しています.

設備は常時更新を続けており,学生諸君の意見が機種選びに反映されます.

人員構成

2016年度は教授1名,秘書1名,博士課程1名,修士課程9名でスタートする予定です. 一部のゼミには共同研究先の大学および企業(NEC,日立等)の研究者も参加します.海外(スウェーデン等)の大学との遠隔ゼミおよび相互訪問も定期的に行っています.

学会発表

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

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

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

研究室行事

ゼミは週2回,4〜5限に開催しています.このほかに研究グループごとの班ゼミを各班週1〜2回開催しています.4年生は卒論以外に
英語の原書または重要論文の輪読を行います.その他に自発的な原書勉強会が行われることもあります.

本格的料理を作る宴会(作って食べることはプログラミングに通じます)がかなりの頻度(=原則毎月)で開催され,懇親を深めるのに役立っています.夏合宿(システムプログラムを読む,新しい言語でプログラムを書く,等)については下記を参照して下さい.

就職先

大手電機やNTT系を中心とする大企業への就職が中心ですが,大手情報サービス産業や堅実で技術レベルの中堅企業を選ぶ学生もいます.インターネットビジネス企業を選ぶ学生も増えてきています. 大企業では研究開発職を志す人の割合が比較的高いのが特徴で,実際に多くのOBが,NTT, 日立,東芝,三菱電機,富士通,NECなどの研究所で活躍しています.

就職してテーマが変わる人ももちろん多いですが,コンピュータサイエンスの基礎系の学識は多くの場面で長期間役立ちます.学生時代と就職してからで,驚くほど研究内容に変化がない人もいます.

指導教員からのコメント

上田研究室では「物事の本質がわかり」「変化に強い」研究者・技術者を輩出すべく
  1. コンピュータサイエンスの諸分野のクロスオーバー,
  2. 乖離しがちな理論研究と実践研究との統合,
  3. 10年くらいでは古くならないコンセプトや基本原理の追求と確立
を特に重視しています.「本物」にふれて力をつけることを重視しており,分野を代表する原書,並列マシンの実機,大規模ソースコードなどと格闘します.実システム主義を貫いており,アイデアは論文にするだけでなく,実際にシステムを構築・公開して人に使ってもらうこと,すなわち「理論とものつくりの融合」をモットーにしています.
  • 優れたアイデアの芽は日常の議論や雑談の中から多く生まれます.そしてそれを結実させるには「没頭する」ことが肝要です.地頭を鍛える最善の方法は研究室によく来てその環境を最大限利用することで,そうした人は例外なく良い成果を残しています.
  • 指導教員が,コンピュータサイエンスや情報技術をどのようにとらえ,どのようなビジョンで研究に取り組んでいるかを知ってもらえると有益です.そのためには,ここにある読み物のいくつかを読んでみて下さい.教員の学外での活動も参考になるかもしれません.
  • 若いうちから興味をせばめることなく,自分の本当の興味分野の「周辺」にも関心を持つことを勧めます.他人より広い視点でものを見る能力が,独創的な研究につながります.
  • 情報理工学科の学生には,(i) コンピュータが大好きであることと,(ii) 数学や物理学と比肩しうる科学としてコンピュータに取り組むというスタンスと決意を持つことを期待しています.
  • 社会に出たOBから後輩へのアドバイスでもありますが,配属されてから卒業(大学院修了)までの間が,定年後を除けば,一番自由な研究ができる時期です.このチャンスを有効に活用してくれるよう期待します.

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

過去の夏合宿の題材

1年ごとに,数千行以上のシステムソフトのソース読み会と,本や論文の読み会を交互に行なってきました.2001年度に初めてプログラムを書く会をやってみたら好評だったのでそれからはプログラム書き会が主流となっています(ハッカソンが流行するずっと前から定例行事だったことになります).
最近のお題は実験的かつ挑戦的で,研究や授業の立ち上げともつながっています.
  • 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ソルバをエンジンとしていろいろな問題を解く会(武尊)
  • 2008年度:Beautiful LMNtal Code − LMNtalまたはLMNtalモデル検査器でいろいろな問題を解く会(伊豆稲取)
  • 2009年度:各班の開発ソフトウェアを並列化・マルチスレッド化する会(越後中里)
  • 2010年度: D.Kroening and O.Strichman: Decision Procedure, 2008 を一気に読破する会(伊豆・河津)
  • 2011年度:皆で新型実機ロボットの画像認識+制御プログラムを書く会(白馬)
  • 2012年度:皆でCUDAプログラムを書く会(伊豆・稲取)
  • 2013年度:特製・プログラミング競技会(鬼怒川温泉)
  • 2014年度:Robert Love: Linux Kernel Development (Third Ed.) 読み会+Linuxカーネルプログラミング演習(安房小湊)
  • 2015年度:PrologでDSL (Domain-Specific Languages) を実装する会(蓼科)
  • 2016年度:ロボットビジョンロボットでの球技に挑戦する会(伊豆長岡)
Last update: March 24, 2017
ueda@ueda.info.waseda.ac.jp