ANSYS Mechanical で "core" 数が変えられないとき→メニューとツリーの2箇所変える必要がある(場合がある)

これに気づかなくて最近はずーっとデフォルトらしき2コア(論理コア)でしか並列計算ができてなかった。前はできたこともあったのでバージョン違いのせいか忘れたかのどっちか(あるいは両方)。

とにかくタイトルの通りで、メニューの Tools > Solve Process Settings... からの設定と、左のツリービューアの Solution からの "Number of Cores to Use (beta)" の設定と、2箇所ある。少なくとも version 19.0 ではそうだった。両方をたとえば 16 とかにすれば問題なく 16 論理コアで動く。そんだけ…

と思ったが、全く同じ V19.0 なのにもう一台のマシンだとツリービューの Solution に "Number of Cores to Use (beta)" という項目自体がない!?なんなんだこれ…(頭を抱える)。しかも悪いことにどっちもCPUマザボが同じスペックのPCで、しかも同じタイミングで(つい昨日?)ANSYS をインストールしたんだよね。なにこれ…。唯一の違いとしては片方には先に V19.1 が入っていた、ということ。たぶんここなんだろうな。もうホントやだ…

QNAP NAS (TS-453Be) での port trunking (link aggregation) は不安定?

前提

前提として、QNAP TS-453Be に Toshiba N300 を4つ入れて RAID 5 している。1ヶ月ほど前に導入して、すぐに port trunking を ON にして*1これまでは問題なく使ってきた。たまに接続が切れるな、と思うことはあったが、長くても数分で復帰していたので問題視してこなかった。

PC は Windows 10 & Windows 7 で、これまでに3台からアクセスしたことがある。

トラブルの経過

先程繋がらなくなった際には1時間以上経っても全く復帰せずに困った。Win のエクスプローラはもちろん、web ログインもできなくなり、ping も通らない。なぜか Qfinder からは一応存在が確認できる。ただし見えるだけでほぼ何もできない。再起動すら受け付けない。しょうがないので本体のボタンを押してシャットダウン→再度起動、としたが状況は変わらず。もしかして…?と思い Qfinder から port trunking を解除して個別の Ethernet 扱いに戻すと…(これはなぜかできた)Webログインを始めすべての機能が戻ったようだ。

「普段と違うことをしなかった?」

した。

今日、普段と違うことをしたのは何かと考えると、3つある。

  1. Qfinder の update
  2. SMTP の設定
  3. PC の移動

Qfinder を起動すると更新のお知らせが来たので行った。このとき同時に SMTP の設定をしましょうみたいなダイアログが出ていたので、更新後に設定した。Warning や Error(おそらく RAID の fail や空き容量不足などだろう)がメールで届くとありがたいなと思ったのだった。テストメールは問題なく送信・受信できた。いま思うとこの少しあと(少なくとも数時間以内)に接続が切れたように思う。もう一ついつもと違うこととしては、普段NASへとアクセスしていたPCのうち1台の場所を移動(建物を変えたが同じサブネット内)して、再度NASにアクセスしようとした、ということがある。このときにアクセスできなかったことで、問題の発生に気づいた。いずれかが本当に今回のトラブルに関係しているかは、正直わからないが、今後のためにも記録しておく。Qfinder が一番怪しいか…?

今後の予定

実際問題として、途中の経路に 1 GbE が入っているせいで port trunking の恩恵はほとんどないか、あるとしてもこの不安定性に見合うものではないと判断する。

数年経って 10 GbE が当たり前に普及してくれるだろうことを願う…*2

*1:これは Qfinder からではなく web の管理画面からやったと思う。

*2:10 GbE の PCIe カードと switch と Cat 7 cable は買っていて、高速度カメラからのデータのダウンロードには使っている。しかし離れた建物に置いた NAS へのアクセスとなると経路に必ず 1 GbE が入ってしまうため、そこがボトルネックになる。と思う。

Windows で VS Code の integrated terminal を cygwin64 の bash にする

デフォルトでは Powershell になっている integrated terminal(エディタ下部にあるターミナル)を cygwinbash に変えたい。ググると少し古い情報が色々ヒットするが、2018-09-01現在は既に公式に記載がある:

code.visualstudio.com

概ねここにある通りにやればいい。ただし install path が微妙に違うこともあるだろうから、そこだけ注意 *1

  1. Cygwin Installation の setup-x86_46.exe で chere を検索し、追加でインストールする。これを忘れてエディタ側の設定だけやってもターミナルの起動に失敗する。
  2. VS Code を起動。Ctrl + , で settings.json を開き、右側のユーザ設定の記述場所に以下を追加(パスは自分に合わせること)*2

    "terminal.integrated.shell.windows": "C:\\cygwin64\\bin\\bash.exe", "terminal.integrated.shellArgs.windows": ["/bin/xhere", "/bin/bash"]

  3. VS Code を再起動する。

*1:64 bit の場合は C:\Cygwin ではなく C:\cygwin64 がデフォルトの install path のはず。

*2:あるいは、new settings editor で Features > Terminal を開き、ずっと下に降りていって Integrated.Shell: Windows と Integrated.Shell Args: Windows を設定しても良い。しかし、2018-09-01現在、後者は結局 settings.json に飛ばされる。

Windows で VS Code が要求する Git を入れようとして詰まった → 一度 Back すればいけた

VS CodeGithub Desktop を無視する *1

VS Code only supports the official Git distribution for its Git integration. https://code.visualstudio.com/docs/editor/versioncontrol#_i-have-github-desktop-installed-on-my-computer-but-vs-code-ignores-it

ので、Git を入れようとした。しかしインストールの途中で、"use visual studio code as git's default editor" を選ぶと "Next" ボタンがグレイアウトして次に進めないというひどいバグに遭遇した。世界中で皆が困ってるはずだが…どうなってんだ?ググると…

github.com

まさかの、「一回 Back して、再度戻ると、Next が押せるようになる」とかいう謎挙動…やめてくれよ…。まじでこれに気づかなくて、ここ数日毎回 VS Code を立ち上げるたびに「Git入ってないけど??」って言われて軽くイラッとしていた。

*1:あれ? MS が買収したんじゃ…? そのうちサポートされるんだろうか

Preferences adjustments that I will forget but ought to do after each clean installation of the macOS

  • System Preferences > Trackpad > tick "Tap to click" and increase the Tracking speed at the bottom of the window
  • System Preferences > Accessibility > Mouse & Trackpad > Trackpad Options... > tick "Enable dragging" and choose "without drag lock" (or whichever you like)

シェルスクリプトで「カレントディレクトリ以下全てを検索してマッチするファイルを圧縮」「圧縮形式をgzipからxz(など)に変更」

まえがき

数値計算結果など、大量のファイルを自動的に逐次圧縮したい、ということが自分はよくある。しかもそれらが複数のディレクトリにまたがっていて、「エクスプローラから右クリック」なんていちいちやっていられない、自動化したい、ということもよくある。そういう場合にはシェルスクリプトが便利。

bash(たぶん sh ならなんでも)を使うので LinuxMac, Win の場合は Cygwin などの利用を想定している。

ファイルを検索して圧縮

「カレントディレクトリ以下を全て検索し、拡張子が xyz のファイルを見つけて、それらに対して逐次 gzip -9 -q を実行」は、

$ find . -type f -name "*.func" -exec gzip -9 -q {} \; &

で行ける。xargs を使った方が速いんだとかそういう議論はあるようだが、よくわからない(検証もしてない)。

圧縮形式の変更

「すでにある .gz ファイルを .xz に圧縮し直す」になるともっと複雑。一度ディスクに書き出すのはまだわかるが、パイプを使って直接(つまりメモリのみ経由して?)xz にするのは全然わからない…が、エキスパートが提供してくれている:

pipe - How to convert all files from gzip to xz on the fly (and recursively)? - Unix & Linux Stack Exchange

念の為引用しておくと、Stéphane Chazelas さんによる最初の回答:

find . -name '*.gz' -type f -exec bash -o pipefail -Cc '
  for file do
    gunzip < "$file" | xz > "${file%.gz}.xz" && rm -f "$file"
  done' bash {} +

これで行けた。具体的には、一行目に #!/bin/bash をつけて gz2xz.sh などの名前で保存し、chmod で x 可能にすることで実行し、うまく作動することを確認した。

圧縮に関するコメント

圧縮形式については、gzip/bzip2/xz/zstd あたりのどれを使うか、というところは、どうやらファイルの種類によって最適なものが変わるようなので、たまに自分でテストしてみることをおすすめする。

ベンチマークでよく言われているのは、「bzip2 は圧縮率は gzip と xz の間くらいだが、解凍(展開)が遅い」ということで、確かにそういうケースもあったが、逆にあるファイル形式では「bzip2 が gzip よりも高圧縮で速度は同程度・xz と圧縮率がほぼ変わらず圧倒的に速い、かつ解凍も別に遅くない」ということがあった。オプションは、基本的にはデフォルトから変えても圧縮率は10%も変わらないかな、という印象(流石に-0とか-9みたいに極端に振ると結構変わることはあるが)。それよりも速度が結構変わることがあるので、そちらに注意したい。zstd はデフォルトの -3 だと異常に高速で圧縮率は gzip 並(かそれ以下かも)、というかなり速度重視感がある。急いでいるときは良いと思うけどまだ本格利用はしたことがない。

なお 2018-08現在、Cygwin をデフォルトでインストールすると xz と zstd は(bzip2もだったかも?)確か入ってこないので、追加する必要がある。軽いのでインストール自体はすぐ終わる。おそらく MacLinux でも xz はあっても zstd はないことが多そうなので、必要なら自分で入れる必要がある。