卒研テーマ例)Arm CPU向け可変長精度計算高速化

 Arm CPU向けの可変長精度計算,特にBLASレベルの高速化を希求する。SVEが使える環境は,コンシューマレベルでは2025年2月現在なさそうで,AWSとか不老とか富岳を使う必要があるが,とりあえず128bit SIMDのNEONから対応を考える。比較検討するのは同じく128bitの下記二つ。

  • WASM SIMD
  • SSE

BNCmatmulの書き換えが必要になりそうだけど,それよりはC++でTemplateライブラリにしてMPBLASに合わせた方が良さげ。

 Copilot+PC仕様のWindowsマシン上でWSL環境とかVisual Studio環境がまともに動くようならこれ使うけど,基本,Rasberry Piでいいんじゃないかなと。とりあえず1台買ったので,まずはBNCmatmulのコンパイルができるところまでは持っていくつもり。

卒研テーマ例)MPIBNCmatmulの実装と性能評価

 卒研というより,教員個人研究の延長線上のテーマですが,現状のBNCmatmulのOpenMP並列化された基本線形計算の機能を,分散メモリ並列環境のMPIに対応させるという,単純ですが労力のかかるテーマです。MPIBNCpackという先行ライブラリがあり,MPFR任意精度計算は対応済み。あとはDD, TD, QDといったマルチコンポーネント固定精度計算部分をMPI化するというのがメインの開発になります。あとはBLAS1, 2, 3のベンチマークテストをスパコン上で行うという,これも結構面倒なものになりますが,Python化しておけば楽なので,検証用スクリプト開発が核心になりそう。

HPC関連Cheat Sheetメモ

 高性能計算研究に役立ちそうなCheat Sheet(カンペっぽいお役立ちメモ)をこちらにメモっておきます。飽きるかめんどくさくなるまで随時更新。

SIMD関連

Python関連

卒研テーマ例)WebAssemblyベースの関数表

Abramowittz and Stegun, “Handbook of Mathematical Functions” (Dover)は,著作権フリーの媒体としてデジタル版が作成され,世界中にミラーが存在する(ここにも置いた)。このバージョンアップ版は,”NIST Handbook of Mathematical Functions” (Cambridge)で,Web版もあるが,動的に動かせるものではないし,任意精度に対応した数表を作る機能もない。WebAssembly化したMPFRとMPCをベースとした,Dover版のものから派生した動的関数表を作成する。カシオが提供するkeisanがこれに近いものであったが,動的に関数グラフを作成する機能は2024年12月現在停止されている。サーバサイドに負荷がかかる構成では長続きしないので,提供側の計算資源を提供せず,コードの著作権にも配慮したサービスとしたい。

卒研テーマ例)多倍長精度GMRES(m)法の性能評価

 Krylov部分空間法をはじめ,多倍長精度計算を行うことで丸め誤差が低減し,アルゴリズムの挙動が安定するケースは少なくない。本テーマでは,GMRES(m)法を多倍長精度化し,あれこれ弄ることでどのように性能が変化するかを見極める。

参考文献

卒研メモ: Googleで関数グラフ描画

Googleの関数グラフ描画機能を初めて知らされたTweet

 年のせいか,新しい物事をキャッチする能力が落ちているようで,Google検索に関数グラフ描画機能が付いたことも知りませんでした。単位変換や電卓機能があるのは知っていたのですが,こういう機能までつけてくるとは,さすがGoogle,コンピュータリソースが有り余ってますね。

 1変数関数だけでなく,2変数関数のグラフも描けるようです。ちなみにz = x^2 + y^2をググってみると,下記のようになります。

x^3 – exp(x) = 0という方程式を解く時には,y = x^3 – exp(x)のグラフを描画し,x軸との交点付近を拡大して

x = 1.58718・・・ぐらいかなぁというアタリを付けることも簡単ですね。今後色々活用してみたいところです。

卒研メモ:CakePHP勉強中

 前々から,サーバサイドのWebプログラミングにフレームワークを使った方がいいというサジェスチョンを受けてたので,今年の情報セミナー2・事由政策の時間にCakePHPのTutorialを読みながら勉強しています。これを取り上げたのは下記のスライドに書いた理由に加えて,最初からBootstrapを組み込んであること。次の教材のアップデートでは最初から解説しておこうと思ってたところなので,親和性の高い内容にできそうだと判断しました。

CakePHPの簡単な紹介スライド

 ということで,本日段階でCRUDシステム部分は完成しました。次はBakeを使って認証システムを構築する所。Bakeなしでもできますが,使った方が圧倒的に楽なようなので,体験しておけという方針と理解しました。

 50の手習いですが,年内にTutorial終わらせて,ファイルアップロード処理を付けて,3月ごろまでには教材のアップデートに取り掛かりたいですね。

[卒研メモ] DPZとconcrete5

 愛読している老舗オモシロ系Webサイト,デイリーポータルZ(略称:DPZ)がリニューアルしました。@niftyが富士通から切り離されても存続し,その後ほどなく,サイト,というより,編集部員ごと切り売りされるというあたり,信用されているブランドの強みを感じさせます。

 とはいえ,「老舗」ならではの弱みというものもあります。システム的に古いものを継続してメンテナンスしていかねばならず,HTML & CSSの改良だけで済むならデザイナーに発注すれば済む話ですが,CMSと一体化したサイトとなると,バックエンドのDB構造から考え直さないとリニューアルもままならないことになります。現状のWordPress, MovableType, NetCommonsといった,バージョンアップが頻繁な(NetCommonsはイマイチですが)CMSなら,ほぼ自動的にアップデートできますが,DPZは@nifty時代に作った独自のCMSで動いていたらしく,長らくリニューアルができずにいたようです。

 今回のDPZのリニューアルで使ったのはconcrete5という,割と新顔のCMSで,私もその存在を知りませんでした。ちょろっと検索して見た限りでは,PHP+MySQL環境で動作する,プログラミングいらずでWYSIWYGカスタマイズできることがウリのようです。とはいえ,少し複雑なことをしようとすると有償のプラグインが必要になるところは,逆にビジネス的にも有用なのかなという安心感も与えてくれますね。

 本研究室の卒研はWebプログラミングですが,この手のCMSで有用なコンセプトを持った独自サイトを構築するというテーマでもO.K.です。できればプラグインを自作するところまで到達してほしいものですが,どこまで標準的な機能だけで構築できて,どこから先は独自プラグインが必要になるのかという見極めぐらいはつけて頂きたく,卒研テーマ設定の際はこの点を考えておいて下さい。

卒研メモ:Apache Cordova on iMac


左からAndroid, iOS, browserのCordova実行画面

 学内研究費でiMacを購入したので,早速Apache Cordova開発環境を整備しました。Android, iOS, browserの3つがそろい踏みしているのを見ると感無量(大げさ)。Android StudioのAVDとXcode(macosの開発環境)付属のiOSシミュレータを使って実行しています。

まっさらのiMac

 今のところ,3年生の実験で使用する環境はWindowsメインで続けますが,希望があればiOSの実行も体験してもらえばと考えています。次年度からは実習時間が短くなるので,そんな暇ないかもしれませんが。

 環境整備方法はほぼここにある通りでいいようですが,ビルド時には新しいXcodeの方式ではなく,旧式指定を”cordova emulate ios –buildFlag=”-UseModernBuildSystem=0″のように行う必要があるようです。次のCordovaのバージョンアップで対応するかな?

 あとはボチボチ実験資料の手直しをしながら,結果報告原稿をまとめることにします。