2023年12月

12月31日(日)

紅白見たりとか。

今年は忙しかったな。でも学生さんの論文が2編出たのは良かった。

来年はもう少しがんばろう。皆さん良いお年を。

12月30日(土)

娘を遊び場に連れて行った。

遊ばせている間、四元数と遊んでたので記事にしてみた。

絶対虚数単位を使いたくない人のための四元数表現

残念ながらうけなかったようだ。

12月29日(金)

年賀状を書いた。

12月28日(木)

$ icpc
                        
                        Error: A license for Comp-CL is not available (-16,287).
                        
                        License file(s) used were (in this order):
                        **  1.  /opt/intel/compilers_and_libraries_2020.0.166/linux/licenses
                        **  2.  /opt/intel/licenses/COM_L__CPPFOR_GDXV-5J47RJPC.lic
                        **  3.  /opt/intel/licenses/l_5J47RJPC.lic
                        **  4.  /opt/intel/licenses/server.lic
                        **  5.  /opt/intel/licenses/watanabe-login.lic
                        **  6.  /home/yamamoto/intel/licenses
                        **  7.  /opt/intel/compilers_and_libraries_2019.4.243/linux/bin/intel64/../../Licenses
                        **  8.  /home/yamamoto/Licenses
                        **  9.  /Users/Shared/Library/Application Support/Intel/Licenses
                        **  10.  /opt/intel/compilers_and_libraries_2019.4.243/linux/bin/intel64/*.lic
                        
                        Please refer http://software.intel.com/sites/support/ for more information..
                        
                        icpc: error #10052: could not checkout FLEXlm license

またIntelコンパイラのライセンスサーバが死んだ。日記にgrepかけて復活手順を確認。パスを隠す意味もないだろうから、復活の手順を書いておく。

ライセンスサーバのプロセス番号とコマンドの確認。

$ sudo ps aux | grep lmgrd
                        root       4426  0.0  0.0  25572    80 ?        Sl    8月21   3:04 /opt/intel/licenseserver/lmgrd -c /opt/intel/licenses/COM_L__CPPFOR_GDXV-5J47RJPC.lic -l /opt/intel/licenseserver/flexnet_logfile.txt

ライセンスサーバを殺す。

sudo kill -KILL 4426

ライセンスサーバ再起動。psで確認したコマンドをそのまま入力。

/opt/intel/licenseserver/lmgrd -c /opt/intel/licenses/COM_L__CPPFOR_GDXV-5J47RJPC.lic -l /opt/intel/licenseserver/flexnet_logfile.txt
$ icpc --version
                        icpc (ICC) 19.0.4.243 20190416
                        Copyright (C) 1985-2019 Intel Corporation.  All rights reserved.

復活。日記書いてて良かった。

会議があったのを完全に失念していた。うげ。

12月27日(水)

会議とか。

仕事納め(ちっとも納まってない)。

日記を全然書いてなくて、Googleカレンダー見て何やってたかな、とか確認する感じに。

まー、誰も見てないけど。

っていうか、日記は「その日をやらなきゃいけないことだけで終わらせない」というために書いてるはずだが、「やらなきゃいけないこと」が終わらない。

学生さんの卒論と修論、submoduleで管理しているのだが、なんかgit clone –recursiveでcloneすると表示がおかしい。見てみたらHEADが取れている。なんでだ? 各リポジトリでswitch mainすればなおったが、気持ち悪い。

12月26日(火)

年内最後のプログラミング基礎同演習。参加人数が少ないなぁ・・・。

広告、なるべくゲーム、漫画、アニメをクリックして平和にしてたんだけど、間違えて18禁漫画をクリックしちゃって、途端に治安が悪くなってしまった。悲しい。

広告のトラッキングを許可しないと、逆に18禁ばかりになるので、トラッキングを許可した上で学習させるしかないんだけど。

12月25日(月)

1on1とか会議とか。

Zennの振り返りレポート来た。

明らかに生産性が落ちている。悲しい。

12月24日(日)

レポートの採点。

GitでSubmoduleがある時、そのsubmoduleがさらに別のsubmoduleを持っていて、その深い方のsubmoduleの権限を持っていない、という場合に–recursiveでcloneしようとすると失敗する。こういう時の対処法。

  1. リポジトリの問題を個別に解消しておく
  2. --recursiveをつけずにcloneする
  3. git submodule init
  4. git submodule update --remote

これにより、submoduleが「最新のコミット」を持ってくるので解決する。これまで単にgit submodule foreach git pullしようとすると、追加された時のコミットをもってこようとするから失敗していた。これに長い間悩んでたが、これでようやく解決。

いや、学生さんたちの卒論、修論をすべてsubmoduleで管理してたので。

12月23日(土)

課題研究発表会。みなさん、立派に発表できて何よりです。

12月22日(金)

ダメだ。疲れて何もできない。

1on1と会議。

12月21日(木)

課題研究発表会練習会。みなさん、本番がんばってください。

山本さんの論文がPublishされた。めでたい。

T. Yamamoto and H. Watanabe, J. Chem. Phys. 159, 234119 (2023).

渡辺研新メンバーに連絡。

図のチェック全て終了。

12月20日(水)

会議とか会議とか。

査読一つ送った。

教科書校正。

12月19日(火)

1on1 x 3。

プログラミング基礎同演習。「Pythonはどう動くのか」。

GitHubのメインブランチの変更、いつもメニューがわからなくなる。Default branchの設定は「General」にあるんだよね。いつも「Branches」を探しに行って「あれ?ないな。Protection Rulesを設定しないとメインブランチ設定できないのかな?」って思っちゃう。

今年5月18日に開けたissueを閉じた。エラい。

メモ:PyTorchの歴史

機械翻訳版を下につけておく。

PyTorch の設計の起源、Lua との関係、JAX との絡み合った深い関係、Chainer との共生関係

PyTorch の基礎作りは、もともと 2016 年の初めに、Torch7 の貢献者らの間でオンラインで始まりました。

アイデアの帰属を明らかにすることは健全で素晴らしいことなので、もっと頻繁に行うべきです PyTorch がリリースされて以来、いくつかの新しいライブラリが PyTorch の設計とアイデアを使用しています–私たちが導入した特定の新しいアイデアは、最終的には他の多くのライブラリに伝わりました– 。これは素晴らしいことです。 私たちは、これまでの仕事からインスピレーションを得てきたことを誇りに思いますし、その後の仕事にもインスピレーションを与えてきたことを誇りに思っています。 また、私たちは– torch-autograd、chainer、その他、より小さな方法で私たちにインスピレーションを与えてくれた多くのプロジェクトからインスピレーションを得たことを常に明確に示していることに誇りを持っています –。 私は、人々はこれを十分に行っておらず、自分の起源を明確に帰属させていない–と思います(p36)歴史を消去するためにエゴまたは企業の統制が機能するようになり– 、人々はここでもっと行動する必要があります。その意味で、フレームワーク設計を科学的な取り組みとして捉え、アイデアや進化についてオープンに議論し、その起源やインスピレーションを誇らしげに語る JAX の友人たちを私は本当に誇りに思います。

参考文献:

  1. My reply in March’17 on the origins of PyTorch: https://discuss.pytorch.org/t/pytorch-tutorial-for-deep-learning-researchers/1001/3?u=smth
  2. Chainer’s v1 design: https://github.com/chainer/chainer/blob/v1/examples/imagenet/googlenet.py#L11-L33
  3. https://pytorch.org/blog/pytorch-adds-new-tools-and-libraries-welcomes-preferred-networks-to-its-community/
  4. PyTorch’s autodiff innovations in a short paper: https://openreview.net/pdf?id=BJJsrmfCZ
  5. The PyTorch paper: https://proceedings.neurips.cc/paper_files/paper/2019/file/bdbca288fee7f92f2bfa9f7012727740-Paper.pdf

GitHubの開いてるIssue一覧、結局検索で「author:kaityo256 state:open type:issue」で探せってことか。確かにそれで普通に見つかるからいいのか。

12月18日(月)

1on1たくさん。sshfsとか、VSCode+Remote SSHをハンズオンに入れた方が良さそう。

12月17日(日)

レポート採点完了。力作が多かった。

年賀状頼んだ。

いろいろバタバタする。

なんかX(Twitter)は騒がしすぎるな。しずかなインターネットを試してみるかなぁ。

12月16日(土)

レポート採点途中まで。

12月15日(金)

ようやく先週の疲れが取れてきたのだが・・・

大きいドキュメント書いた。ずっと前から書こうと思っていたのだが、腰が重かった。

腰が重い仕事、もう一つこなした。

推薦文二通書いた。良い感じである。

12月14日(木)

学生さんと話していて、デバッグの正しい(?)考え方が伝わっていない気がした。デバッグとは、「どこが間違っているかを探す」よりも「どこは絶対正しいか探し、それを容疑者から外していく」ことの方が大事。

ChatGPTなどにより、とりあえずコードを作ってしまい、後からデバッグするという形をとると、これがうまくいかなくなる。モジュールごとにテストしながらプログラムを組み上げ、バグったら、そのコードそのものよりも、テストコードを書く方が早い、ということをなんとか伝えたい。

課題研究発表会(M1中間発表)の練習会。

12月13日(水)

会議の前に重要なことを思い出した。危なかった。

会議。

年末調整の書類提出。予めシステムにイメージをアップロードしておいたものに対して、原本を提出する。システムから原本を貼り付けるための台紙をダウンロード、印刷し、セロテープで貼り付けて事務に提出。A4一枚に原本1枚。今年は11枚あった。

なんか、学生に個人的に伝えているプログラミングのノウハウをドキュメント化したい。特に、デバッグしながら、ステップバイステップで開発する形。今はChatGPTとかを使って、とりあえず完成形を出しちゃってから修正・デバッグやっているのがあまりよろしくない。

12月12日(火)

講義。

最近心身ともに疲れててダメだ。夜、「SNSにお気持ちを書いてはいけない」というポストを見かけて「そうだよなぁ」と納得。最近いろいろダメだ。

12月11日(月)

1on1して会議して1on1して。

もうこの会議で発言するのやめよう。僕は必要ないはずだし。

12月10日(日)

WSLのターミナルでcode .と入力したらエラー。

$ code .
                        Updating VS Code Server to version af28b32d7e553898b2a91af498b1fb666fdebe0c
                        Removing previous installation...
                        Installing VS Code Server for x64 (af28b32d7e553898b2a91af498b1fb666fdebe0c)
                        Downloading: 100%
                        Failed
                        --2023-12-10 00:50:11--  https://update.code.visualstudio.com/commit:af28b32d7e553898b2a91af498b1fb666fdebe0c/server-linux-x64/stable
                        update.code.visualstudio.com (update.code.visualstudio.com) をDNSに問いあわせています... 13.107.246.46, 13.107.213.46, 2620:1ec:bdf::46, ...
                        update.code.visualstudio.com (update.code.visualstudio.com)|13.107.246.46|:443 に接続しています... 接続しました。
                        エラー: update.code.visualstudio.com の証明書(発行者: `CN=Microsoft Azure RSA TLS Issuing CA 08,O=Microsoft Corporation,C=US')の検証に失敗しました:
                          発行された証明書はまだ有効ではありません。
                        update.code.visualstudio.com に安全の確認をしないで接続するには、`--no-check-certificate' を使ってください。
                        ERROR: Failed to download https://update.code.visualstudio.com/commit:af28b32d7e553898b2a91af498b1fb666fdebe0c/server-linux-x64/stable to /home/watanabe/.vscode-server/bin/af28b32d7e553898b2a91af498b1fb666fdebe0c-1702137011.tar.gz
                        Please install missing certificates.
                        Debian/Ubuntu:  sudo apt-get install ca-certificates

証明書が有効でないというエラー。あれ?と思ってChatGPTに証明書の有効性を確認するコマンドを聞いて実行。

$ openssl s_client -servername update.code.visualstudio.com -connect update.code.visualstudio.com:443 | openssl x509 -noout -dates
                        depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
                        verify return:1
                        depth=1 C = US, O = Microsoft Corporation, CN = Microsoft Azure RSA TLS Issuing CA 08
                        verify return:1
                        depth=0 C = US, ST = WA, L = Redmond, O = Microsoft Corporation, CN = update.code.visualstudio.com
                        verify error:num=9:certificate is not yet valid
                        notBefore=Dec  9 18:17:28 2023 GMT
                        verify return:1
                        depth=0 C = US, ST = WA, L = Redmond, O = Microsoft Corporation, CN = update.code.visualstudio.com
                        notBefore=Dec  9 18:17:28 2023 GMT
                        verify return:1
                        notBefore=Dec  9 18:17:28 2023 GMT
                        notAfter=Jun  6 18:17:28 2024 GMT

「verify error:num=9:certificate is not yet valid」。まだ有効でない?ここで、さっきのメッセージに「発行された証明書は まだ 有効ではありません。」と書いてあったことに気づく。WSLの時計がずれてたんだ。

sudo /usr/sbin/hwclock -s

これで動いた。10分毎に実行するようcronに入れてたんだけど、実行されてないっぽいなぁ。

JCPのProof見た。「Fig. 10 (a)」みたいな奴、わざわざ「Fig.(a)」と、括弧前に空白を入れてたんだけど、Proofでは消されている。

塩漬け仕事、一つ片付けた。すぐ終わるんだけど、なんか腰が重いんだ。

  1. 届いた荷物を片付けるため、遠い部屋に行く
  2. 鍵を居室に忘れたことに気づいて戻る
  3. 居室で鍵を探し、また遠い部屋に行く
  4. 違う鍵を持ってきたことに気づき、居室に戻る
  5. 居室で鍵を探したら、さっき持っていいた鍵が正しい鍵であることがわかる。

今日はもう駄目だ。多分何してもミスる。

12月09日(土)

疲れが重くのしかかっている。

プログラミング基礎同演習のレポート少し採点。

12月08日(金)

1on1とか。

「日々しなければならない仕事だけで一日を終わらせない」というのがそもそもこの日記を書く動機だったのだが、もはやday単位でそれを実行することは不可能。というわけで、「日々しなければならないこと以外」のためにC++ MIXで発表したのだが、わりとスケジュールに無理があってちょっと疲れた。

自分の研究がまったくできていないのでなんとかしなければ。

12月07日(木)

研究室ミーティング。輪講。PRML最後。

自分はt-SNEについてざっくりと理解について話した。

12月06日(水)

渡辺研配属面接。

その後、C++ MIX #8へ。

12月05日(火)

プログラミング基礎同演習。今日はオブジェクト指向。

その後いろいろバタバタする。

12月04日(月)

1on1。

メール処理。

水曜日のスライド作った。

今更だが、ChatGPTのハルシネーションの例が増えたのでメモ。

「GCCのGIMPLEは何の略ですか?」

ChatGPT-3.5「GCCのGIMPLEは「GNU Compiler Collection(GCC)のインターナル中間表現 (GNU Compiler Intermediate Representation)」の略です。GIMPLEはGCC内部で使用される中間表現形式であり、コンパイラの最適化およびコード生成の段階でプログラムを表現するために使用されます。GIMPLEはプログラムをより抽象的な形式で表現し、さまざまな最適化処理が適用される前にプログラムを単純化および標準化するのに役立ちます。この中間表現は、GCCの内部で使用され、ユーザーが直接操作する必要はありません。プログラムの最適化やコード生成についての詳細な情報を含むため、GCCの開発者にとって非常に役立つものです。」

ChatGPT-4「GCCの「GIMPLE」は、「Generic and GIMPLE」の略です。GCC (GNU Compiler Collection) では、GIMPLEは中間表現の一種として使用されており、高レベルのソースコードと低レベルの機械語の間でコードを変換する際に重要な役割を果たします。この中間表現は、最適化や他の変換処理に適した形式で、プログラムの構造を維持しながら、コンパイラがより容易に解析できるように設計されています。」

GitHub演習のレポート採点した。ギリギリになってしまった。

12月03日(日)

子供のお迎えとか。疲れた。

12月02日(土)

学科分け説明会。

渡辺研の展示(数独、GitHub演習のゲーム、京のCPU)が数年変わっていないので、そろそろ新しくしたい。

プログラミング基礎同演習のレポート採点した。

12月01日(金)

来年度前期の物性研の申請した。

学生さんからの報告を受けて、だいぶRBMの理解が深まった気がする。是非論文にまとめたい。

学科分け説明会の準備。