新たな知識や技術を身につけ、自分の可能性を広げたい
異分野のプロジェクトへの参加
私は、知能情報システムの中では中堅社員で、主に神経科学分野の計測システムや、実験データ解析に関するソフトウェアの開発を行っています。
この会社に入社する以前は、医学系の研究機関で博士号を取得した後、海外の研究機関で神経科学分野の研究に長く取り組んでいました。 マウスの大脳皮質神経細胞の一つ一つから電気信号を計測し、その実験データを解析することで神経回路の機能を明らかにするという研究です。 研究に取り組む中で、私は研究に使うソフトウェアを自作するようになり、そのうちプログラミングの面白さと可能性に魅力を感じるようになりました。 そうした経緯もあり、今この業界で仕事をしています。
知能情報システムでは、技術者として様々な分野の研究開発ニーズに触れる機会があります。 技術の進歩の早さを肌で感じていた私は、専門やこれまでの経験を活かしながらも、もっと技術や知識を磨き、業務の幅を広げたいと常々考えていました。
そんな時、ある大学の情報工学部の先生から、「大規模な集積回路の研究に使用する専用のソフトウェアを開発できないか」というご相談を会社にいただきました。
FPGA への興味
その先生は、FPGA に代表されるような、目的に応じて配線の回路を変更できる次世代の集積回路 (IC) のアーキテクチャと、その応用技術を専門に研究されています。 中でもデバイスの処理性能の向上や、消費エネルギーを効率化させるための最適なアーキテクチャと回路図の設計に力を入れて取り組まれているとのことでした。
アーキテクチャを設計する上では、回路図を可視化するツールは必要不可欠です。 しかし FPGA の主要ベンダが提供しているツールは、あくまで自社のアーキテクチャの仕様に特化しているため、研究や試作に応用しにくいものでした。 またある大学が、汎用性を謳う配置配線の可視化ツールを開発していましたが、可視化できるアーキテクチャの自由度は限定的で、 膨大かつ様々なバリエーションのアーキテクチャの効果を模索したいと考える先生が使用する上では不十分とのこと。 先生からの依頼は、新しく考えたアーキテクチャや回路図のデータをもとに、その配線の状態を自由に可視化できる、専用のソフトウェアを制作してほしいというものでした。
私自身は FPGA に関する基礎的な知識はあるものの、これまで仕事として取り扱った経験はありませんでした。 しかし、私が研究してきた神経回路も集積回路も、本質的には同じような電気回路であるということもあり、以前から FPGA に対して興味を持っていました。 それに加え、昨今の神経科学分野の研究では、リアルタイム性を求める計測システムにおいて FPGA が用いられる機会が増えてきていたため、 この業務で身に着けた知識や経験を専門分野に活かすことができれば、更に業務の幅を広げることができると考え、この案件の開発プロジェクトへの参加を決めました。
神経科学系エンジニア、プロジェクト マネージャーになる
この開発プロジェクトにおいて、私はプロジェクト マネージャーとお客様対応、そして開発業務の一部を担当しました。 また私以外に、2人の研究開発部の社員がこのプロジェクトに参加しました。 一人は、数理最適化の実績のある社員です。先生から、回路設計を最適化する機能も検討したいとご要望があったからです。 もう一人は、様々なソフトウェア開発において設計から開発まで幅広い開発経験を持つ熟練の社員です。 大規模データの可視化部分の開発においては処理速度が問題になることがあり、豊富な開発経験が必要だと考えたので、この社員に開発アドバイザーとしての参加をお願いしました。 こうして、私を含めた3人の研究開発部のプロジェクト チームが結成されました。
開発を進めていく中で、実際に扱うデータ サイズが当初の想定より大きくなったことでメモリ消費量が大きくなり、データ出力に時間が掛かるという問題にぶつかりました。 ちょうど年度末の繁忙期ということもあり、メンバー3人が集まれる時間はとても少なかったのですが、そんな中でも全員が知恵を絞って改善方法を検討したことを覚えています。 この問題は、熟練社員の「同じパターンのデータは共通化してデータ量を圧縮し、メモリの消費量を抑えればよいのではないか」というアイデアのおかげで解決し、 最終的にモニター上で出力データを素早く閲覧できるように改良することができました。
私はプロジェクト マネージャーとして、事前に集積回路や FPGA の関連書籍や論文をもとに入念に準備し、お客様の研究内容や要求仕様を正確に理解できるよう努めました。 加えて開発担当としては、画面上に回路図を表示する可視化部分において、その設計の一部と Java、OpenGL を用いた実装の一部を行いました。 プロジェクト マネージャーでありながら開発業務を兼任したいと考えた理由は、技術者の視点で開発内容の理解を深めたいという思いがあったためであり、 開発業務の一部に携われたことは、業務の幅を広げたいと思う私にとって、結果的にとてもよい経験となりました。
プロジェクトの開始当初は、集積回路や FPGA に関する業務経験の無さがネックになるのではないかという懸念も当然ありました。 しかし、事前に準備できたことに加え、分からない部分を先生から教えていただいたことで、プロジェクトを進める中で経験の無さが問題になることはありませんでした。 そしてプロジェクトが終了する頃には、自分の FPGA に対する理解もしっかりと深まっていました。
プロジェクトを終えて
完成したソフトウェアを納品したのちは、自分たちのソフトウェアが実際どのくらい先生の研究に活用していただけているのか、使ってみた感想や評価はどうだろうかといったことが気になっていました。
しかし、実際に使っていただいた先生から「よいですね」との言葉をいただいたことで、自分たちの作ったものが先生の研究に役立っていることを実感するとともに、 研究を支援するというこの仕事へのやりがいを再認識しました。 また後日、このソフトウェアで出力した回路図が、他の研究者の方々にも好評だったことを先生からお聞きし、メンバー3人で喜びを分かち合いました。 このプロジェクトが終わった後も、この先生とは一緒に仕事をさせていただいています。
私はこのプロジェクトを通して、FPGA や集積回路の知識、またこれらに関するソフトウェア開発の技術を新たに身に付けることができました。 ここで得た知識や技術を磨き、私の専門である神経科学の分野に活かすことで、これからも業務の幅を広げていきたいと考えています。 また今後も、様々なプロジェクトに積極的に携わることで、新しい知識や技術を身につけ、自分の可能性を広げ続けていきたいと考えています。