Rhinoceros 3D で control point を大きくしたり、線 (curve) を太くしたりする

特に high DPI display では点が小さすぎ・線が細すぎて見づらいのでこれらの調整は生産性の向上に直結する。

まずはメニューの File > Properties... > Rhino Options > View > Display Modes へ行く。

この先の設定は、モードごとに個別に行う必要がある(重要)。おそらくよく使うのは Wireframe, Shaded, Rendered だと思うのでそのくらいで良いとは思う。

たとえば Wireframe を例に取ると、Wireframe を展開した直後に Objects という文字自体をクリックする。ここで Control Points というのがあるので、サイズを変えたりできる。

次に、curve の太さについては、Objects を展開した Curves へ行き、右のパネルから設定すれば良い。デフォルト色も変えられる。

同様に Shaded, Rendered についても設定する。

あるイギリスの大学へのポスドク就活の例

少し前に、海外にいる研究者が日本の大学に応募する場合の苦労という話があった:

lambtani.hatenablog.jp

最近、イギリスの大学にポスドクで行くことが決まったので、逆に日本から海外のポスドクに応募する場合はどうなのかという一例を参考までに書いてみる。なお助教ではなくポスドクなので、選考が簡易的であった可能性はある。

  1. 大学公式サイトで公募がかかる。今回は、募集をかける研究者(知り合い)から公募するよという連絡をメールでもらって知った。
  2. オンライン書類選考システムに、アカウントを作ってログイン。
    • この時点で、「3年契約であること」「採用された場合の年収の幅」「勤務地・勤務時間」「職務内容(あまり詳しくはないが)」が明示されていた。特に年収の幅が明示されているところが良い(というか、当然?)。
    • 募集内容に見合ったスキルを持っているかどうかを問うたくさんの質問に記述式で回答する。ワード数制限なし。「我々のプロジェクトではこういうスキル(プログラミングとか、生物を扱った経験とか)が必要だが、あなたはそれらのスキルを保有しているか?具体的なエピソードとともに記述せよ」といった感じ。この方法は、採用側・応募側の双方にとって利点があり、とても良いと感じた。要するにこれはマッチングなのだな、というのがハッキリとわかった。
    • もちろん英語力についても聞かれるが、それは飽くまでも色々なスキルのうちの一つという扱い。
    • 学歴は書いた。業績はどう書いたか忘れてしまった。たぶんオンラインシステム上へ記入したか、業績一覧のPDFをアップロードしたのだったと思う。ORCID だけ書いて終わり…ではなかったと思う。それだと最高なんだけど、その場合学歴をオンラインシステムに書かせる必要が無いはずなので、違ったと思う。
    • 面白かったのは、「顔写真はアップロードしてはいけない」などとあったこと。人種等の差別や、いわゆる顔採用を避けるためだろうか。日本の場合は「履歴書には顔写真添付のこと」なんて書いてあることが普通にある。
    • 当然、性別や生年月日の記入欄はない。趣味・特技なんて欄はもちろんない。国籍はないが、ビザ関係の質問はあった気がする。
  3. サブミットして1-2週間程度だったか…それくらい待つと、「あなたは面接に残った (shortlisted)」という連絡がメールで来た。何度かメールのやりとりをして面接の日程を調整。また、面接までに「イギリスで労働できることを示す書類」を送れと言われるがよくわからず…結局、パスポートをスキャンしたPDFでいいよということなのでそれを送信。
  4. 面接といっても実際に行くわけはもちろんなく、skype で30分間話すだけ。大学の実験室で、ラップトップを有線LANでつないで通話した。
    • 面接官は panel というらしく、今回は3人。公募をかけている研究者と、分野が近い研究者が2人。このうち2人とは既に知り合いだったのである意味では気楽だが、1人の英語が聞き取れず苦労した。直前の1週間はBBC radioを聞いたりしていたがダメだった。単に英語の問題だけではなく、Skype の通話品質もあまりよくなく、ラグがあり、かつ、PTTのように「自分が話している間は相手の声がカットされる」感じがあって、つらかった。また最近は英語で話す機会もなかったことと、緊張のために speaking もけっこう酷かったが、なんとか乗り切った。
    • オンライン選考では聞かれなかったスキルについて、「そういえばお前このスキルはあるか?(X線CTは使ったことがあるか?とか)」というのをいくつかきかれたが、全部正直に No, no, and no と答えた。
    • 音声のみではなくビデオ通話だったが、これもそのうち禁止されたりするのかも…?(顔で判断することを避けるために)
  5. 面接が終わって6時間後に、公募をかけている研究者からメールで採用の連絡。正確には、採用したいが来てくれるか、とあった。すぐに受けると返事。
  6. 大学事務からの正式なオファーが次の週にメールで来た。

受かるにしても落ちるにしても、このスピード感が非常にありがたい。ただし、これは助教以上の faculty ではなくポスドクだったので選考がスピーディだったということは多分あるとは思うので、そこは割り引いていいのだとは思う。もしかしたら、faculty の場合は skype でなく直接来いということはあるのかも…?ただ、どう考えても紙の履歴書を送れとかいうことはないだろう…。

3年後、イギリスでのポスドクが終わりに近づき、日本のアカデミックポストに応募するときには、まさに冒頭のリンク先にあるような状況になることが予想されるので、面倒だなぁ…。それまでにweb応募が増えていればいいけれど。

なお、前にスウェーデンの大学のポスドクに行ったときの選考はもっと簡単で、単にCVをメールしただけだった。Skype で話したことは話したが、採用決定後だった。このときも学会ですでに知り合いになっていた研究者のところだったが、単に縁故採用というわけではなく、ギリギリまで他の候補と迷っていたんだよ、というのを後で聞いた。

Tsubame 3.0 での ANSYS 並列計算ライセンスの消費のされかた

ANSYS には、1つアプリを起動するたびに消費するライセンスと、並列計算したときに特定の条件で消費するライセンスとの2つがある。前者はライセンスが余って無いとそもそも起動すらできないので省略。後者について。特定の条件とは、「ジョブごとに16を超える並列数(CPUコア数)だけ消費される」というもの。要は、消費ライセンス数(トークンと呼ぶようだ)を T, 並列数を N とすると、

T = N - 16

ってことね。そしてこの並列用のトークンを Tsubame 3.0は 256 もっている(2017-12-25現在)ので、各ノード数の並列ジョブのみで埋める場合、

123

  • 半ノード並列は無制限: 0.5×28-16 < 0 なので。
  • 1ノード並列は21ジョブ: 21×(1*28-16) = 252トーク
  • 2ノード並列は6ジョブ: 6×(2*28-16) = 240トーク
  • 4ノード並列は2ジョブ: 2×(4*28-16) = 192トーク
  • 8ノード並列は1ジョブ: 1×(8*28-16) = 208トーク

が限界ということになる。したがって、急がない計算は半ノードか1ノードにしておいた方がいいだろう。

Fluent 18.1 で、定常RANS で予備計算 → LES で本番計算

確実に忘れるのでメモ。

  1. 定常 RANS の計算を普通にやる。ここでは(Workbench ではなく)スパコンでやったとする。ある程度収束した時点での .cas[.gz] と .dat[.gz] を保存しておく。
  2. Workbench に、新しい Fluent モジュールをドロップして起動する。Parallel で 1 CPU にしておく。当然 Double Precision.
  3. 定常RANS で保存しておいた収束したっぽい時点での case & data を import する。
  4. TUI で、/solve/initialize/init-instantaneous-vel を実行。これは LES に変える前に行う必要がある。Version 18.1 では LES に変えたらそもそもコマンドが消えるが、過去のバージョンでは違った模様。
  5. General:
    • Transient に変える
  6. Models:
    • Viscous を LES に変える。
  7. Boundary Conditions(必要なら):
    • Inlet の流入境界条件を変更する。
      1. General > Display... で inlet のメッシュを表示しておく(してないと次の数が表示されない)。
      2. 上のリボンの SEtting Up Domain の一番右、Surface 欄の Manage... から inlet の 2D Facets の数を調べる(これを N と呼んでおく)。
      3. inlet の境界条件の一番下、No Perturbation を Vortex Method に変更し、Number Of Vortices に N/4 の値を入れる。この数は ANSYS 公式の資料から。また、Spectral Synthesizer よりもこちらが推奨らしい。
        • TUIからのみアクセスできる隠しパラメータとして、流れの主流方向の fluctuation のオンオフが可能。
    • 外側境界条件を symmetry から変更する(LES では対称境界はダメらしい)。ここでは periodic にすることにする。
      1. まず、対象となる境界の boundary condition を Interface に変える。
      2. 左に Mesh Interfaces が表示されるので、ここで周期境界を作成する。注意事項として、offset はふつう translational だと思うが、automatic は信用できないことがある(特に2回目以降)ので、手入力を推奨。また、この値には符号があるので注意。たとえば「y座標の正が右」の場合、boundary 1 に left, boundary 2 に right を選んで、その距離分の「正の値」を入れる。もし、boundary 1 に right, boundary 2 に left を選んだ場合、距離分の「負の値」にしないといけない。
  8. Monitors:
    • History (report) ファイルの設定を変える。定常のときは per iteration で出力していたと思うが、transient なので per timestep で出力するのが普通だと思う。Report Definitions に自動的に delta-time, flow-time, iters-per-timestep が追加されているので、必要なものを追加し、per timestep での出力にする。なお、per iteration 用の設定は削除しなくても、 deactivate しておけばよい。
    • Residual から、convergence criteria を変更する(必要があれば)。Transient なので、continuity を 1e-4 程度に緩和して、かつ、relative or absolute にするのがいいだろうか。
  9. Calculation Activities:
    • Auto save 間隔を決める(計算回数と dt に応じて)。
  10. Run Calculation:
    • 時間刻み (dt)・計算回数・内部iteration 回数を決める。
    • Extrapolate Variables で予測による加速を ON に(しない方がいい場合というのがちょっとわからない)。原因不明の異常振動に悩んでいたのだが、こいつも要因であった可能性がでてきた。もしこれを使う場合は ON, OFF 両方やってみて発散したり値の異常振動がおきたりしないことを確実にチェックしたほうが良い。
    • Data File Quantities を設定する。Initialize は TUI からやっているので、既に選択できるようになっているはず。ここで選択しすぎると data ファイルのサイズがどんどん増大するので、本当に必要なものだけにする。また、流れ場が落ち着いてから追加計算するなら、そのときに増やしてもいいと思う。
  11. その他に必要な設定があればする。
  12. Run Calculation の一番上の Check Case... をする。問題がなければ良い。
  13. case & data を export する。このとき保存ファイル名は .cas.gz を付けておけば、同名の .dat.gz も保存される。
  14. スパコンで journal file を実行する。手順としては case を読み込み → 並列パーティション切り(まだ切ってなければ)→ data を読み込み → 計算。

本当はこれを全て journal でやるのが理想。そのうちやりたいが、設定項目が多すぎて手順を編み出すのにちょっと時間がかかりそう。

2017-12-28 UPDATE: 全部 journal でできるようにした。後でまた書く予定。

参考

  • "Quick Guide to Setting Up LES-type Simulations" でググって。

わからないこと

  • auto save される data ファイルが .gz 圧縮されない。と思うと、極稀にされる。どうなっているのかがよくわからない。まぁ、計算終わってから $ nohup gzip foo-*.dat & とかするから別にいいっちゃいいんだけど…

Tsubame 3.0 に win 10 の cygwin から ssh でログイン

学生さんがトラブっていて、自分もちょっと忘れていたので、忘れてもいいようにメモ。

  1. Cygwin ではどうやらデフォでは OpenSSH が入っていないようなので(?)、setup-x86_64.exe を叩いて ssh で検索して openssh を入れる。
  2. たしか ssh-keygen かなんかのコマンドで鍵を作れる(→正しくは http://www.t3.gsic.titech.ac.jp/node/79 )。もし、既に puttygen で putty形式(?winscpとかで使うやつ。.ppk みたいなの)の秘密鍵を作っていたばあい、puttygen の conversion から openssh 形式に変換して、~/.ssh/ ディレクトリにぶち込む。
  3. このままだと permission is too open とかいって deny されるので、$ chmod 600 ~/.ssh/id_rsa みたいにしてパーミッションを制限する。
  4. 対応する公開鍵を Tsubame Portal から UP する。
  5. cygwin から $ ssh -l [username] login.t3... とかしてログイン。信用していいの?とか言われるので yes.

こんな感じだったはず。

参考

ANSYSメモ:CFD-Postで連番 data files を読み込ませるには

たぶんマニュアルに書いてあるだろうけど、ヒューリスティックに発見してしまったのでメモ。

連番の data files をまとめて認識してほしいとき、ファイル名を下記のようにリネームして、Load Results から .cas.gz を読めば良い:

case file

  • foo.cas.gz

のような感じ。

data files

  • foo-00100.dat.gz
  • foo-00200.dat.gz
  • ...

のような感じ。どうやら、foo と数字をつなぐ記号はハイフンでないといけないようだ。アンダースコアだと認識してくれなかった。

もちろん、case file の方の foo を変えたら、data files の方でも合わせれば良い。

Caffe (with CUDA 8, cuDNN 5.1) を Windows 10 Pro 64bit で build して matcaffe のデモを走らせる(2017-11時点)

環境

Windows 10 Professional, 64 bit. Fall Creators Update 適用済み。GPUGeForce GTX 1060.

Matlab は現時点で最新の R2017b と、諸事情により必要なかなり古い R2014a の両方でデモコードの実行に成功した。なので、これらの間のバージョンならどれでも通るのではないだろうか。

やりたいこと

画像関係の Deep Learning したい。まさに自分がしたい内容について matcaffe のコードが公開されているので、まずは matcaffe を動かしたい。

ウェブ上にもちろん情報はあるんだけど、それでもハマったので、自分用にメモ。とくに matcaffe 固有の問題はウェブ上に記述が少ない。日本語はほぼない。

手順の流れ

基本はここ → GitHub - BVLC/caffe at windows だが、ハマりポイントがあり、また matlab 関係はいろいろ足りていないのでけっこうググる必要があった。

今回入れるのは Visual Studio 2015, CUDA 8.0, Python 3.5: Caffe Release とする。

以下の記述で、実行場所の指定がなかったり ./ とあったり、caffe/foobar などとある場合は、cd caffe 後のディレクトリ(直下に build, cmake, data, docker, ... が見えている位置)を意味することとする。

  1. (必須)Visual Studio 2015 のインストール
  2. (必要かどうか不明確)システム > システムの詳細設定 > 環境変数 > システム環境変数 に VCTargetsPath として C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140 を新規でセット。
  3. (必須)CMake 3.4以上のインストール
  4. GPU使うなら必須)CUDA 8 と cuDNN 5.1 のインストール
  5. (必須?)Anaconda3 4.2.0 のインストール ← 4.4.0 は python 3.6 がデフォなので厳密を期した。Miniconda でもいいと思う。
  6. conda で必要なツールのインストール ← 記憶がやや曖昧…
  7. git のインストール(必要ではないかも)
  8. 適当なディレクトリを作って、コマンドプロンプトpowershell から git clone https://github.com/BVLC/caffe.git して、cd caffe して、git checkout windows する。
  9. (必須)展開されたディレクトリのうちの scripts フォルダに build_win.cmd というのがある(なかったら上の git clone に失敗してるかも)。これをテキストエディタで開いて編集。
  10. (必須かどうかは場合による?)展開されたディレクトリのうちのルートディレクトリに CMakeLists.txt があるのでこれを編集。
  11. (matcaffe の場合おそらく必須)caffe/matlab/CMakeLists.txt を編集(後述)
  12. scripts ディレクトリよりもひとつ上の階層において、コマンドプロンプトなどから、cmake と python --version がちゃんと通ることを確認(パスの確認)。後者で、2.7 とか出た場合、cygwin あたりの python が優先されてるっぽいので、cygwin から python をアンインストールしておく(必要かどうかは知らないけど、どうせ cygwinpython 使わんでしょ?)
  13. 同じ場所で、scripts\build_win.cmd を実行する。失敗した場合は、build ディレクトリを削除したほうが良い(キャッシュみたいのが生成されるので)。あと、C:\Users[ユーザー名].caffe\dependencies という隠しフォルダ(ディレクトリ)も自動生成されていて、こっちも消したほうがいい場合があるかもしれない。
  14. ビルドが通ったら、mnist のテストをする。
  15. matlab から実行できることをテストするために、classification_demo.m を実行する。

以下、それぞれについてもう少し詳しい手順を記す。

Visual Studio 2015 のインストール

Visual Studio のページに行くと最新の 2017 に飛ばされるので、下の方から 以前の Visual Studio ソフトウェアのダウンロード | Visual Studio へ飛ぶ。しかしここで 2015 の右の「ダウンロード」をクリックすると MS アカウントにログインしろと言われる。さらに、しばらくログインしていなかった場合はそれでも「お前にはダウンロードする資格はない」とか言われてリダイレクトされる。どうすればいいかというと、MSアカウント(というか Visual Studio アカウント?)の自分のプロフィール画面の左下にある Visual Studio Dev Essentials というのに無料 subscribe すればよい。うーん、わかりづらい。

ビルドに必要なのは VC++(のコンパイラ cl.exe)だけらしい。自分は、怖いので、絶対に関係ないであろうモバイル関係以外はほとんど全部入れた気がするけど、正直、容量の無駄なので、あとで消したい。

CUDA 8 と cuDNN 5.1 のインストール

互換性の問題があるらしいので、CUDA は 8, cuDNN は 5.1 とする。CUDA は正しくは CUDA Toolkit というやつ(最初これすら知らなくて右往左往した)。具体的にはここから→ CUDA Toolkit Download | NVIDIA Developer 。一方、cuDNN はググればダウンロードページに行くと思うけど、その先は Developer program みたいの会員登録(無料)しないとダウンロードできなかったと思う。先に CUDA をインストールして、cuDNN の方は、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 以下の同名ディレクトリに中身を移動しちゃうだけでよい。

Anaconda3 4.2.0 のインストール & 必要なツールのインストール(condaで)

Anaconda installer archive ← ここから昔のバージョンを落とせる。 4.4.0 は python 3.6 がデフォだが、caffe はあちこちで「3.5 にしてね」ってあるので、厳密を期した。でもたぶん、4.4.0 を入れておいて、conda install python=3.5 でいいんじゃないですかね…。

この後、

conda install --yes cmake ninja six scikit-image

だったかをしたはずだが、記憶がすでに曖昧だ…。たしか、protobuf==3.1.0 はしようとしてもエラーができてできなかった気がする。

build_win.cmd の変更

if DEFINED APPVEYOR ( の else の方だけでいい、という記述も見かけたけど、よくわからんし大した量じゃないので両方変えた。

変えた場所は

  • WITH NINJA=1 → =0 に(2箇所)
  • PYTHON_VERSION=2 → =3 に(2箇所)
  • BUILD_MATLAB=0 → =1(2箇所)
  • CONDA_ROOT のパスを自分のパスへ変更。ダブルクオーテーションは付けない。自分の場合は、C:\Users\maz\Anaconda3 だった(2箇所)
  • cmake -Gなんちゃら、のところに、-DCUDNN_ROOT=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 ^ を追加。不要な気がするが念のため。

CMakeLists.txt への追記

既に入っている cygwingcc とコンフリクト(?)するのを避けるために、「Visual Studio の方の C コンパイラを使ってね」と伝える必要があるらしい。Ninja 切れば不要だったのかもしれないが、まぁ…

17行目あたり(projectの前でないといけないらしい)に、以下を追記した:

## Specify the C compiler for avoiding errors
set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe")
set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe")

注意事項としては、なんか知らんけど、パスの区切りはバックスラッシュ(円マーク)だと怒られる。スラッシュにする必要がある。あとは、もし Visual Studio 2015 以外を使いたいなら、14.0 のところをもちろん自分の数字に変えるべし。

matlab/CMakeLists.txt の編集

このままビルドすると、 matlab で実行しようとしたときに mex が見つからないよ、みたいに怒られる。正確には、

Undefined function 'caffe_' for input arguments of type 'char'

だったと思う。このエラーを回避するために、MEX File Missing during Installation · Issue #5219 · BVLC/caffe · GitHub にあるとおり2行追加する(61行目あたり)。

set_target_properties(matlab PROPERTIES 
                                 RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/matlab/+caffe/private)

set_target_properties(matlab PROPERTIES 
                                 RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/matlab/+caffe/private
                                 RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/matlab/+caffe/private
                                 RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/matlab/+caffe/private
)

とする。

実は最初にビルドしたときはこれを知らなかったので、後で上記の修正をしてから再度ビルドしたら大丈夫になった。

mnist のテスト(シェルから)

WindowsでCaffeをビルドしてGPUで実行する - TadaoYamaokaの日記 にあることに近いのだが、いくつか注意や相違があるのでメモ。

  • 記事にある通り、シェルスクリプトを使うので、ここまで使ってきコマンドプロンプトではなく、ここからは Unix 系のシェルを使う。記事には MSYS とあるが、僕は前に入れていた Cygwin で問題なく動いた。
  • 使うシェルスクリプトファイル(.sh ファイル)たちの改行コード (EOL) が Win の CR+LF になっているので、うまくいかない可能性がある。たとえば、Notepad++ で開いて、menu > edit > EOL conversion > Unix (LF) とすればよい。

念のため、やることもまとめておく。

  • data/mnist/get_mnist.sh を編集:
    • 改行コードを LF に変える。
  • examples/mnist/create_mnist.sh を編集:
    • 改行コードを LF に変える。
    • BUILD=build/examples/mnist → BUILD=build/examples/mnist/Release へ変更(環境によっては違う場所可能性あり)。
    • convert_mnist_data.bin → convert_mnist_data.exe へ変更(2か所)
  • examples/mnist/train_lenet.sh を編集:
    • 改行コードを LF に変える。
    • ./build/tools/caffe → ./build/tools/Release/caffe へ変更(環境によっては違う場所可能性あり)。

以上が終わったら、Cygwin などから、

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

の順に実行する。GPU の場合、GPU-Z やタスクマネージャ(Windows Fall Creators Update適用済の場合)を見るとちゃんと作動していることがわかる。

classification_demo.m のテスト(matlab上で)

matlab はインストール済みとする。

手順は以下の通り

Net.m ファイルの編集

caffe/matlab/+caffe/Net.m の編集について。これは結構ググったのだが、結論としては、https://github.com/BVLC/caffe/pull/5588#issuecomment-303673915 を参考に、72-74行目にある

if ~isempty(self.hNet_self)

コメントアウトして、

if self.isvalid

を記述する。

これで問題なくデモが走るようになった。結果は 1000x1 の配列で、中身チェックしてないけど、エラー出てないからたぶんいいんじゃないか…(疲れた)。

実は変更内容はわかっても変更箇所がわからなかったので、上の github スレッドからリンクしていた(同じ meixiaofeng さんによる) https://github.com/meixiaofeng/caffe/pull/1/files を見て変更箇所を特定した。しかし、これだと変更前のソースになぜか if がないことになっている…。バージョンが微妙に違うのかもしれない(?)。まぁなんにせよ if self.isvalid で走ってるから、いいか。

ほかにハマったところ

ウェブ上の情報がまちまち

現時点 (2017-11-08) での最新バージョンでの入れ方は、「scripts\build_win.cmd を直接テキストエディタでいじって、その後に実行せよ」というもの。しかし古い自家ビルドとかだと、Winであっても、「違う設定ファイルをいじって、Caffe.sln というのを Visual Studio でビルドしろ」とかあって混乱した(やってみたが python 2 のせいっぽい、文字列をダブルクオーテーションで囲ったところの syntax error が連発して死んだ)。結局、現時点では、公式の build_win.cmd でいけるようだ。現時点では。

環境変数の名前を typo した

VCTargetsPath を VcTergetsPath と2重に typo していた。と思ったけど Windows の variables は NOT case-sensitive なので Vc はまだよかった。Tergets がひどい。つらい。

Cmakeが依存ファイルのダウンロード中にWindows download Prebuilt Dependencies.cmakeエラーで止まる

これは proxy が原因だった。Cmake の(あるいはファイルダウンローダの?)設定方法がよくわからなかったし、ググるのに疲れていたので、VPNで回避した。VPNで回避できたということは、確実にproxyのせいともいえる。

気づいたキッカケは、エラーメッセージでググって、これ→ python - Cmake error at Windows download Prebuilt Dependencies.cmake:54 file Download hash mismatch - Stack Overflow を見て、通信関係の問題と言ってるので、「じゃあまた proxy だろどうせ…」→ 当たりだった。