高性能計算研究室2024年度卒業研究・中間報告

 高性能計算研究室(幸谷研究室)では,4年生前期終了時点で「動作する」Webサイトを構築することを最低限の目標としています。最終〆切は7/25(木)ですが,現時点で動作可能なものをご紹介しておきます。

  1. SISTアニメ検索Webアプリ・・・20世紀から現在に至るまでのアニメ情報を収集し,検索しやすい形でまとめ上げました。懐かしいあのアニメから,最新のこのアニメまで,お好きなものが必ず見つかります。

2. 正確な評価に基づくグルメ情報の提供・・・食べログをはじめとするグルメ情報の評価は,厳しめの人から甘い人までごった煮状態です。そこで改めて正当な評価を行えるよう,評価者の評価値を精査し,採点しなおしました。一例を動画で紹介していますので,ぜひご来場してご覧下さい。

3. 求職・求人サイトの作成・・・マイナビ,リクナビよりも,求職者側,求人側にも使いやすいインターフェースを提供できるサイトを目指しています。

4. VALORANT攻略サイト・・・1500万人のユーザを誇るVALORANT攻略の情報を交換するためのコミュニケーションサイトです。

 詳細の解説は,静岡理工科大学・袋井キャンパス・研究実験棟543研究室前のディスプレイで行っています。幸谷は静岡駅前キャンパスに出勤していますが,オープンキャンパスご来場の際にはぜひご覧下さい。

「高性能計算」研究紹介

高性能計算研究開発用のサーバマシン(旧タイプ)

研究の概要

 現代のコンピュータは,スマートフォンからスーパーコンピュータまで,複数の処理を同時に実行できる「並列処理」の機能を備えています。コンピュータの頭脳に当たるCPUは,複数の命令を一括して実行できるAVX2やSVEをはじめとするSIMD(Single Instruction, Multiple Data)命令が利用できるコアを複数持つマルチコアアーキテクチャが普通ですし,もっと多数のコア(メニーコア)を持つGPUはAI・深層学習では必須のハードウェアです。我々の研究室では,特に多数の桁数の計算を必要とする条件の悪い問題に対応できるよう,現代のコンピュータの並列化特性を生かした「多倍長精度数値計算」の高速化の研究に力を入れるとともに,深層学習の応用方法や,学習成果の再現性を担保するための研究を進めつつあります。

研究成果の社会での実装、活用シーン

 基本,全ての研究結果は,使用されたプログラムのソースコードをオープンにすることで社会に還元しており(WebGitHub),桁数を増やして計算したい開発現場で利用されているようです。Webで公開している基本演算部分のマニュアルの翻訳などは毎日頻繁に参照されています。あまり人目に付かないところでは,スーパーコンピュータ向けの多倍長精度計算用MPIライブラリ(MPIBNCpack)は諸外国でも使用されることがあります。

高校生へのメッセージ

 すぐには理解できないことを楽しみましょう。日常生活とは異なる数学理論や概念を実感として理解するには時間がかかります。まずは「分からない」という感覚から出発し,友達,先輩,教員との議論や,プログラミングによる実装を通じて,「分からないことが分かるようになった」経験を積み重ねていって下さい。大学生活はそのための重要な「分かるためのプロセス」を体験する重要な時間になります。紋切り型のSNSとは真逆の,少しずつ理解する学問の面白さを味わって下さい。

高性能計算研究室における受託研究・開発ポリシー

高性能計算研究室主宰:幸谷 智紀(こうや とものり)

 高性能計算研究室では,可変精度計算の高性能化を希求する研究をメインとしており,近年は特に下記に関連するソフトウェア開発とベンチマークテストに注力しております。

 つきましては,本研究室との受託研究もしくはWebサービスも含めた開発についても積極的に推進したく,最初は必ず本学総合技術研究所の技術相談・学術相談窓口を通じてご相談下さい。また,あらかじめ下記の本研究室における受託研究・開発ポリシーについてもご確認して頂きたく,よろしくお願い致します。

  1. 本研究室における学術研究活動に資する研究・開発については,必要最小限の機材・旅費等のコスト負担の補助をして頂いた上で,無償で実施させて頂きます。この場合「学術研究活動」とは,本研究室メンバー(指導教員,卒研生,大学院生,研究員など)の研究内容の講演や論文出版,ソースコードのオープン化に何ら制限がないものを意味します。
  2. 特許に関連した研究・開発活動については,上記「学術研究活動」として実施できる場合は同じ条件にて実施可能です。研究・開発状況の公開に制限・制約がある場合は,必要とする時間・人員に応じた対価が着手に際して必要になります。また,Webサービスやソフトウェアを自社で展開・販売される場合については,サービス期間中に取得できた成功報酬,もしくは,権利放棄の対価を,要した時間と人員,開発内容に応じてお支払い頂きます。なお「対価」と「成功報酬」についてはケースバイケース,ご相談の上で決定致します。
  3. 上記1,2に該当しない研究・開発案件については別途ご相談下さい。技術相談が伴う場合は,本学総合技術研究所の技術相談・学術相談に相当するものとして取り扱いさせて頂きます。

 なお,本研究室が公開するWebコンテンツ,ソースコードについては自己責任の範疇で,リンクを通じて自由にお使いいただいて結構です。

 高性能計算研究室は,日本並びに世界に貢献できる産学連携を積極的に推進したいと考えております。お互いのビジネスや研究活動に良い貢献ができるよう,受託研究・開発をお考えの方は,あらかじめ本内容についてはご熟読の上,本学窓口を通じてお申込みいただければ幸いです。

 以上よろしくお願い致します。

高性能計算プログラミング

幸谷智紀

第一部:Pythonによる方程式求解プログラミング

「Python数値計算プログラミング」サポートページ

  1. Pythonプログラミングの基礎
  2. NumPyとmatplotlib
  3. 代数方程式を解いてみる(1) 2次方程式まで
  4. 代数方程式を解いてみる(2) n次方程式は解けるか?
  5. 非線形方程式を解いてみる(1) Newton法とSciPy.opt
  6. 連立一次方程式を解いてみる(1) 密行列に対する直接法
  7. 非線形方程式を解いてみる(2) Jacobi行列とNewton法
  8. 常微分方程式を解いてみる(1) 初期値問題
  9. 常微分方程式を解いてみる(2) 境界値問題
  10. 連立一次方程式を解いてみる(2) 疎行列に対する反復法
  11. 偏微分方程式を解いてみる(1) 熱方程式
  12. 偏微分方程式を解いてみる(2) Poisson方程式
  13. 最終課題:ベンチマークテストと高性能化

第二部:C/C++によるコンソール版高性能計算プログラミング

「LAPACK/BLASプログラミング」サポートページ
「多倍長精度数値計算」サポートページ

  1. 高性能計算とは? コンピュータにおける「演算」
  2. 浮動小数点演算:低精度から高精度まで
  3. C/C++プログラミング基礎と高速化(並列化)手法
  4. LAPACK/BLAS演習(1) BLAS1, BLAS2, BLAS3
  5. べき乗法とOpenMPによる並列化
  6. LAPACK/BLAS演習(2) 連立一次方程式
  7. 逆べき乗法
  8. LAPACK/BLAS演習(3) 標準固有値問題
  9. 多倍長精度演算: QDとmpreal
  10. MPLAPACK/MPBLAS演習:べき乗法,逆べき乗法の多倍長精度実装
  11. 混合精度反復改良法の実装
  12. BNCmatmulと混合精度反復改良法の高性能化
  13. 最終課題:行列指数関数exp(A)の実装

第三部:Web上でのWASM+Node.js高性能計算プログラミング  

  1. Web上でのHPC:サーバサイド(Flask, PHP + C++)からクライアントサイド(WASM)へ
  2. Webプログラミングの基礎(1): HTML, CSS, JavaScript
  3. Webプログラミングの基礎(2): DOMとJavaScript
  4. Node.jsとexpressフレームワーク
  5. SQLiteとNode.js
  6. WASM演習(1) WASMとJavaScript
  7. WASM演習(2) Emscripten開発環境
  8. LAPACK/BLAS on Web演習(1): べき乗法と逆べき乗法
  9. LAPACK/BLAS on Web演習(2): exp(A)の実装
  10. GMP, MPFR on Web演習
  11. BNCmatmul on Web演習(1) べき乗法と逆べき乗法
  12. BNCmatmul on Web演習(2) 混合精度反復改良法
  13. 最終課題:ベンチマークテストツールの作成