タグ

ブックマーク / zenn.dev/kaityo256 (3)

  • HPCプログラマの書くコードってなんで古臭いの?

    TL;DR Q: HPCプログラマの書くコードってなんで古臭いの? A: そうしないと性能が出なかったから はじめに スパコンを使ってそれなりに長いこと研究をしています。初めてスパコンを使ったのは今から25年くらい前です。発展の早い世界ですので、昔と今ではだいぶ違ってきています。この前、スパコンを使う時の「常識」がすでに現在では常識ではなくなっているっぽいことを知り、私も「そっち側」になったのか、と感慨深くなりました。以下は、HPC業界の語り部に片足を突っ込んだおっさんの戯言です。 なお、以下では主に「京」の話をするため、富士通C++コンパイラに文句を言う形になりますが、富士通が悪いのではなく、昔のスパコンに搭載されていたC++コンパイラはどれもかなり酷かったということはあらかじめ言っておきたい気がします。IBMのコンパイラとかも酷かったし、なんならIntelのコンパイラもバグだらけだっ

    HPCプログラマの書くコードってなんで古臭いの?
    W53SA
    W53SA 2025/01/05
  • WSLでopenコマンドを用意する

    function open() { if [ $# != 1 ]; then explorer.exe . else if [ -e $1 ]; then cmd.exe /c start $(wslpath -w $1) 2> /dev/null else echo "open: $1 : No such file or directory" fi fi } zshでしか試していないが、たぶんbashでも似たような感じでいけると思う。 エクスプローラによるopen Macのターミナルでは、open filenameとすると、そのファイルを関連付けられたアプリで開くことができる。また、open .などとするとFinderでカレントディレクトリが開いて便利だ。 WindowsのWSLで似たようなことがしたくて、

    WSLでopenコマンドを用意する
  • インクリメント演算子とコンパイラの気持ち

    #include <stdio.h> int main(){ int a = 1; int b = ++a + ++a + ++a; printf("%d\n",b); } 結果は処理系に依存し、gccなら10に、clangなら9になります。これが未定義動作なのか処理系定義なのか、それとも他の何かは仕様警察に任せるとして、gccやclangはこれをどう解釈したのか、その気持ちを探ってみようと思います。 なお、以下は中間コードその他から僕が勝手にコンパイラの気持ちを推し量ったものであり、正確性については保証しません。 インクリメント演算子 ++というインクリメント演算子は、変数に1を加算するものです。++aやa++のように、前に付ける場合と後ろにつける場合で、代入に対する振る舞いが変わります。 前につける場合、インクリメントは代入の前に行われます。例えば、

    インクリメント演算子とコンパイラの気持ち
    W53SA
    W53SA 2021/12/07
  • 1