2023年5月31日

5月が終わってしまうなぁ。

Introducing the AI Research SuperCluster — Meta’s cutting-edge AI supercomputer for AI research MetaのAI用スパコン。NVIDIAのDGX A100っぽい。インターコネクトはNVIDIA Quantumで、これはInfiniBand。なんでNVIDIA InfiniBandって言うのかと思ったら、いつのまにかMellanoxがNVIDIAに買収されてた。2020年か。SXMというのは接続方式。ずいぶん前からPCIeではなく、ソケット型でGPGPUが接続していたようだ。GPGPUの発展は全く追いかけてなかったから、最近の進展はさっぱりわからんな。

Markdownのスニペットとして、alignって書いたら

$$
\begin{aligned}

\end{aligned}
$$

って出てきてカーソルが真ん中に移るやつ作ったんだけど、かなり便利だ。

メモ。

COVID-19はポケモンが原因論文

American Journal of Biomedical Science & Researchというジャーナルから「論文投稿して」というメールが届いたのだが、なんか見覚えあるなと思ったら「COVID-19はポケモンが原因論文」を掲載してしまったジャーナルですね。論文にわざわざ「この論文を出版する雑誌は査読を行っていないため、ハゲタカジャーナルであるに違いない」とか「この招待論文は査読を行っていない可能性が高い略奪的な雑誌に掲載されている」と書いてある論文が「査読」を通って掲載されたというもの。

配列と条件を渡して、「配列の要素すべてが条件を満たす時にtrueを返す関数all」と、「配列の要素のいずれか一つでも条件を満たす時にtrueを返す関数any」があったとする。この関数に空配列を入れた時、allanyを何を返すべきか。

僕は空集合に関しては全部真にして良いかな、と思ったが、多数派の意見はalltrueanyfalseを返すべき、というもの。

allは「集合の中に一つでも条件を満たさないものがあるか?」と読み替えるべき。すると空集合は条件を満たさないものを持たないから、trueを返す。

anyは、文字通り「集合の中に一つでも条件を満たすものがあるか?」を調べるべき。すると空集合は条件を満たすものを持たないからfalseを返す。PythonもRubyもそうなっている。

all([])  #=> True
any([])  #=> False
[].all? #=> true
[].any? #=> false

へぇ、なるほどね。