読者です 読者をやめる 読者になる 読者になる

つらみ日記

140字に収まらないツイートをします.

エラー処理に1日を溶かしました(n回目)

本日のエラー処理

既に「Intel製のFortranコンパイラがどのMacでもまともに動かない」という問題を抱えていた.

具体的には,並列化オプション付きで.f90なり何なりをコンパイルすると,

software.intel.com

にも報告されているように,コンパイル自体は普通にうまくいくのだが

dyld: Library not loaded: libiomp5.dylib
Referenced from: /Users/$USERNAME/hogehoge
Reason: image not found

と言った形のランタイムエラーを吐き続ける.直接的な原因としては,fortranコンパイラの機能である並列化オプションとして -qopenmpを付け加えて

gfortran main.f90 -o main -qopenmp

というリストをぶち込んだからなのだが,少なくともGNU製コンパイラではそんなことは起きなかったし,これは明らかに変な阻害要因がある.というわけで,いくつかのページを当たってみたところ,以下のようなサイトに出くわし,問題は解決した.

Mac用McMaille - Kanza-wiki

どうやら,岡山大の神崎さんという方の研究室で更新されているwikiらしく,いくつかの数値計算用プログラムが公開されていた.意外と興味を惹かれるものが沢山掲載されていたから,また今度じっくり時間をかけてサーフィンしてみたくなるサイトだったが,そこに書かれていたのは,ただ単純に

DYLD_LIBRARY_PATH="(libiomp5.dylibの在り処)"
export $DYLD_LIBRARY_PATH

をすれば良いという情報が簡潔に述べられていた.これは,パスを通すという概念が腑に落ちていなかった自分としては盲点で,つい先日とあるシェルスクリプトGNU Parallelを実装しようとした時の経験が一切生かされていないと実感した.その時は「複雑な処理だけど同じことを色んなパラメータについて回す」ということをGNU Parallelで行うために,実は生まれて初めてシェル関数というものを使ったのだが,どうも

parallel (シェル関数名) [...]

みたいな使い方をしようと思うと,export -f (シェル関数名)が必要になるらしく,それを関数名宣言の後に付け加えて

foo(){
hogehoge
}
export -f foo

とし,一種の構文みたいな形で貼り付けていた1

このことは,コンパイラがライブラリを呼び出す時にも同様で,パスが通っている筈のディレクトリにlibiomp5.dylibなるものが無かったからである.そして,それをexport $DYLD_LIBRARY_PATHによって任意のシェルに引き継ぐ必要があった.

解決の流れは次の通りである.

  1. まず,locate libiomp5.dylibIntelコンパイラのライブラリの箇所を突き止める.

  2. 次に,その箇所のディレクト$DYLD_LIBRARY_PATH=/opt/intel/lib環境変数に代入する.多くの場合は/opt/intel/libだと思ったが,違った場合は適宜修正を.

  3. 最後に,環境変数を引き継ぐためのお呪いとしてexport $DYLD_LIBRARY_PATHをかける.

これによって,いつでもlibiomp5.dylibの呼び出しが可能になり,コンパイラオプションとして-qopenmpをしてもランタイムエラーが出なくなる.これらのことは,.bash_profileに書いておいても損はないだろう.

DYLD_LIBRARY_PATH=/opt/intel/lib
export $DYLD_LIBRARY_PATH

また,locateがまともに通らない場合は,お呪いとして

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

をやってしばらく待ってから再挑戦するというのも手だろう.

今日は一方で,えらく不思議なエラーに見舞われた.ログインシェルがbashで1行1行読ませれば通るリストを,いざスクリプトファイルにして読ませると(standard_in) 1: parse errorを吐くのだ.流石にキレソー.

その他

エクセルソフトさんが主催するセミナーへの参加を決意した.

www.xlsoft.com

数値計算における二大巨頭である並列化ベクトル化のうち,ベクトル化だけは全然知らないし,単に研究をしているだけではちっとも学べそうになかったので,その辺の意味合いも込めて話を聞いてくることにした.題材は,大正義IntelParallel Studio XEだそう2だが,なんと,この高価な(コンパイラ付き)ソフトが学生が非商用で利用するうちはタダなのだそうだ.詳しくは

Qualify for Free Software - Student | Intel® Software

にも書かれているが,(例え国公立であっても安くはない大学の学費が)より大きな巨額の富に化ける例だろう.他にも例えば,Jetbrains社のIDE利用ライセンスでも,ちゃんと学生プログラムがある.

www.jetbrains.com

こういう機会はみすみす逃さないようにしていきたいし,贅沢に利用しつつ真の自己実現を果たしたいと思うばかりである.

https://software.intel.com/en-us/intel-parallel-universe-magazine

お引っ越し

とある事情で研究室が移転することになったので,引っ越しの手続き以外(転入先の確定)を済ませた.

何の事はない,某柏大学に,JR京都駅もどき千葉支部が統合されるそうだ3.そこに指導教員が常駐することになったそうである.


  1. この用法は恐らく正しくない.というか,筆者自身がシェルスクリプトについて不勉強であることがそもそもの未解決問題であるように思えてきた.

  2. Fortran使いからすれば,Intelさんはほぼ唯一と言ってもいい力強い味方である.

  3. 今,柏大学は半分ほど更地になっていて,工事でいくつかの建物が建設中になっているが,そのうちの一つが第2京都駅というわけである.

午後を犠牲にしました

数値計算

昨日くらいから数値計算用プログラムの書き直しを行なっている.

と言っても,リファクタリングではない.むしろ処理の流れと区切りを変えようという試みで, 単一の.sh(上流) - 単一.f90(下流) という従属関係にある集合体を分割し,複数の.shから同一の.f90を呼び出すような関係に変えているだけだ.

割と骨が折れる.

いま示したい一連の結果がちゃんと「有意差」であることを見るには,適切な箇所で大量のサンプルを取る必要があるが,その適切な箇所の測り方を含めて,ちゃんと動作する環境を作りたかった.それだけだ.

しかしコーディングをやっていると自動化したいことと手でやりたいことの配分がせめぎ合う感じになって,精神衛生上よろしくない.

ピアノ

今日は昼過ぎにピアノを少しだけ練習した.今年度の残りは少ないが,「今年」演奏する曲もそろそろ確定した方が良さそう.キャパシティ的に3曲も4曲も仕上げられることは,多分ないだろう.とりあえず,

あとは室内楽サークルで毎年やってる新歓演奏会のために一応仮のものとして

のいずれかのsoloを某氏に依頼しようと思っている.断られたらまた考え直す必要があるなぁ.

ラヴェルの楽譜について,とっさの時にIMSLP等でダウンロードしようと思うと大体Durand社以外のものはなく,原典版としては権威があるのかも知れないが,運指法の点でとことん使いにくい.実家に音楽之友社から出版されているペルルミュテール校訂版を忘れてきたのが痛い.

40分間の数値計算が無に帰しました.

40分なんて大規模量子系計算を日常的にやりつつ論文を書いている人たちからすれば大したことないタイムスケールだとは思うが,僕にとって今回のロスは由々しき事態だ.

一応述べておくと,何分,何時間,何日と無駄にしようとも「プログラムがまともに回っていて意味のある数値が吐き出されていれば,計算のモチベーションはともかく結果は無駄ではない」という考えに立っている.即ち,どういうことかというと,40分間真面目に計算するフリを続けていた.f90のプログラムが蓋を開けてみればひたすら0.000という数字を吐いていたのだ.それだけです.

計算機としては手元にあるMacBookProを使っていて,コードの構造としては.shに支配された.gpなり.awkなり.f90なりがひたすらクルクルと踊っては.datを投げて,またそれを別の役者が受け止めるような感じになっている.要は,パラメータの入力を.shが受け付け,それを.f90が引き継いでガンガン回すわけだ.そこで無効な数値を入れたりすると,.f90に渡った段階でSIGSEVなり何なりの致命的なエラーを初期段階で吐いてくれるため,基本的に「黙々と計算が回っている=計算結果も一応は非自明なものとして出てくる」という立場で物事を進めていた.しかし.f90のコードをよく見てみると,case文の選択で無効な数値を入れても何もされないというアホンダラなバグがあったため,そこで系は初期状態のconfigから何も時間発展していなかったのだ.今見ようとしているのは静的な物理ではなくて動的な物理なので,計算したい物理量も静的な量と量の間の「差」から出てくる.完全に失敗した模様.辛い.

何を言っているか分からないと思うが,数値計算で物理を見ようと思うと,長時間を投入してワーッとやる前にきちんとバグ取りをしましょうねという話.

(コード上の表面的なバグ取りなら猿でも出来るかも知れないが,自明な結果を防ぐためには,敢えて変な機構をちゃんと取り付ける必要がある.例えばcase文の分岐パラメータは,それ以外のパラメータがあった場合は事前にエラー終了を返すとか.ところで,孫請け状態の.f90が.shにエラー終了値を返すとかって出来るのだろうか…?)

2017年の実質的な年明けです

年が明けてから十n日が経過したが,研究やその他の活動は相も変わらずである.

何とか数日間の鬱屈を解消し終えたところで,の申請書のアウトラインは整ったように思う.学会の講演要旨も叩き台程度にはなったはず.

講義のレポートには結局手を付けられなかった.締め切りという点では,3つある講義のうち一番余裕があると言っても過言ではないが,内容的としてはそれなりに重たかったかも知れない.

しかし,分野を自分の適性に従って正しく選びつつ,問題提起そのものに独創性を発揮することがこれほどまでに難しいことだったとは.今後,研究の舵を切り直したり,新たに付加的なテーマを設定する場合には,「下手の考え休むに似たり」ということも踏まえつつよく考えた方が良さそう.

あと,研究で数値計算に使っているスクリプトを地味に公開するのも手かなと思ったり.よくあるgnuplot等のコード解説サイトが踏襲する用法・目的別のスタイルではなく,「今日はこのようなコードを必要に駆られて△△のサイトを参考にして作成したが,この部分は〇〇の解析結果を可視化するのにも役に立ちそう」みたいに自然発生したものを解剖するスタイルで作ると考えることが少なくて良さそう.

ところで,この演奏すごく良くないですか.


N. Kapustin - Manteca op.129, Yordanova & Kyurkchiev Piano Duo

この曲を今年(正確には来年度)とある知人と演奏することになりました.季節的には夏頃になると思いますが,時期が近づいたら告知していこうと思います.

最後に,宣伝に貢献しないと嬲り殺される勢いだったので,次の3月に乗る予定のオケも告知します.リンク先で勘違いをされませんように,関西のFREEではなく関東のFREE EASTの方に乗ります.どうぞよろしくお願い申し上げます.ご興味のある方は,メールにて名前だけお伝え下されば,当日のチケット取り置き等手配致します.

ensemblefree.jp

呟き

随分と日が空いてしまった.

研究に関しては,(その性質上,具体的な進捗は述べられないが)あるモデルのダイナミクスを変え,そして特徴的なある物理量の振る舞いがなんとスピン系の異方項(異方定数) Dが決めているというところまでは辿り着いた.ここのところ,関連論文を漁る時間を多めにとった甲斐もあり,微々たる実りはありそう.

本日のarXiv

(自分もそのうちのひとりであるが)世の中には物好きがたくさんいるもので,そういう人たちが集まると一つの歴史を作ってしまう.どんな歴史かというと「Helium film系の超流動臨界点とカシミール効果」に関する研究の歴史である.

[1611.09694] Tricritical Casimir forces and order parameter profiles in wetting films of $^3\text{He}$ -$^4\text{He}$ mixtures

人類は, {}^{3}\mathrm{He}-{}^{4}\mathrm{He}の合成系の相図を平均場で理解するところまで来ている.関連論文として,

Phys. Rev. Lett. 83, 1187 (1999) - Critical Fluctuation-Induced Thinning of ${}^{4}\mathrm{He}$ Films near the Superfluid Transition

Phys. Rev. Lett. 88, 086101 (2002) - Critical Casimir Effect near the $^{3}He\ensuremath{-}^{4}He$ Tricritical Point

Phys. Rev. Lett. 97, 075301 (2006) - Critical Casimir Force in $^{4}\mathrm{He}$ Films: Confirmation of Finite-Size Scaling

が挙げられる.いずれも,「擬2次元系のHeliumが持つ臨界点近傍の自由エネルギーの異常に起因して系の厚みが変化する」ということをカシミール効果と関連付けて述べている.この系におけるカシミール効果としては,引力的なものも斥力的なものも存在するというのが興味深い.

これらの理論的研究で,比較的古い時代のものは

Phys. Rev. B 34, 330 (1986) - Finite-size interaction amplitudes and their universality: Exact, mean-field, and renormalization-group results

Phys. Rev. B 35, 3560 (1987) - Critical surface free energies and universal finite-size scaling amplitudes of three-dimensional XY models by direct Monte Carlo sampling


[1611.09847] Dynamic zero modes of Dirac fermions and competing singlet phases of antiferromagnetic order

物性論においてはポピュラーなトピックである「強相関電子系における反強磁性相とスピン1重項の相の競合」をFermion多体系-非線形 \sigma模型の結合系で理解しようという理論的枠組み.勉強せねば.

室内楽

今週末にモーツァルトのフルート協奏曲ト長調(より第1楽章)とバッハの管弦楽組曲第2番(よりバディネリ)の伴奏とシューマンのピアノ四重奏曲(より第1楽章)のピアノをやることになりましたが,最近風邪っぽいのでどうなるかが分かりません.


Mozart - Concerto for Flute and Orchestra G-dur K 313 (285C) Emmanuel Pahud.


J.S. BACH Badinerie By James Galway


Schumann | Quartet with piano I. | Daishin Kashimoto - Lise Berthaud - François Salque

呟き

arXiv

[1611.07939] Some Remarks on Drilling Percolation

統計力学の対象の一つであるpercolationの例,drilling percolationというものを3次元空間で扱っている. より正確には,立方体状の木片を x,y,z軸と平行な3方向から一斉に繰り抜くということを有限回繰り返した場合に,何回繰り返せばある面とその反対に位置する面が完全に分離するかというお話. その回数とかその他の物理量が,何らかの普遍性(universality class)で分類できるということは,以下の論文によって知られているらしい.

Critical Fragmentation Properties of Random Drilling: How Many Holes Need to Be Drilled to Collapse a Wooden Cube?

ところが,その考察が不十分だとして重箱の隅を突いたのがこのarXiv論文なんだとか.


[1611.07928] Critical phenomena on k-booklets

また新しい概念が登場した. k-bookletというものがあるらしい. 何のことはない, 1-bookletならば半無限平面であり, 2-bookletならば無限平面, k\geqslant 3だと非自明な幾何学的対象となる. その上で,self-avoiding walk(SAW) ,Ising模型,percolationを考えようというのだ.そうすると通常では考えられない現象(non-ergodicityとか)が出るらしい.


[1611.07938] q-Ising model on a duplex and a partially duplex clique

今度は,Ising模型におけるあるサイトの最隣接サイト( d次元なら 2d個)の中からランダムに q個選び,他のinteractionを遮断する,というのを全てのサイトについて行った模型を考えている. すると,通常の模型の性質を大まかに回復するためには q=2dである必要はないとか色々分かるらしい.この論文にも一応元ネタがあるらしくて,以下がそれに相当する.

Oscillating hysteresis in the q-neighbor Ising model

元ネタでも,arXiv論文でも,ネットワーク上のIsing模型を考えているらしい.


[1611.07665] Carnot efficiency is attainable in an irreversible process

熱力学では,「等温の可逆過程を用意すればCarnot効率が達成することが出来る」というのは良く知られているが,パワー(仕事率)に関する話とも合わせて「可逆過程はCarnot効率達成のために必要である」とも信じられている. ところが,適当なラチェット系を用意すれば「等温の不可逆過程からでもCarnot効率が導かれる」ということが示されてしまったらしい.ちょっと物議を醸しそうな気がするが,読んでないので分からん.

呟き

勉強

最近,机に向かって書物の行間を埋めたりすることがめっきり少なくなった.ので,西島和彦さんの『相対論的量子力学』を用いてQFTの勉強をいちからし直そうかなと思っている.日常の研究のバックグラウンドとして邪魔にならない程度に.その成果をまとめたものも,いつかは公開したいと思います.

相対論的量子力学 (新物理学シリーズ (13))

相対論的量子力学 (新物理学シリーズ (13))

本日のarXivとか商業誌とか学会誌とか

随分と遅くなった+日が空いてしまったが,昨日の朝(日本は祝日だが世界的には唯の平日)のarXiv論文をいくつか紹介する.

まず,佐々さんのエントロピー論文(のちゃんとした続き)に相当するこれ.

[1611.07268v1] Emergent symmetry in a thermal pure state path integral

確か前の金沢の学会では

「作用の次元を持つ普遍定数として\hbarを導入した理由はちゃんとあるが,また今度!」

みたいなオチだった気がするが,熱的純粋状態(thermal pure state)というモノが重要らしい.私はまだ勉強不足の身ゆえ,よく理解は出来ていないが.皮切りは,以下の論文である.

Thermodynamic Entropy as a Noether Invariant


そして,同じ京大つながりで恐縮であるが,(基研と物理学教室ではそもそも空間的に隔絶しているが)早川さんのソフトマターに関する理論計算の結果.

[1611.07295] Kinetic theory of discontinuous shear thickening for a dilute gas

粉体などのいくつかの物質でボルツマン方程式を弄ると,実験的に確認されているDiscontinuous Shear Thickening(DST)という現象と矛盾しないある曲線(Flow curve)が得られるという結果.主要な実験結果は以下に掲載されている.

Shear Thickening and Migration in Granular Suspensions


そして,我が専門分野である摩擦の研究(初カミングアウト…?)に関するものも今回は紹介します.

Tuning friction atom-by-atom in an ion-crystal simulator | Science

この論文によると,著者らは光学格子(optical lattice)を用いてイオンをトラップし,

格子を自在に傾けてstick-slip motionを実現させることによって現実に観測されている摩擦がstick-slip motionの多体効果である

ということを示している.指導教員との議論で

こんなのきっとあるでしょ

みたいな感じで登場したことがあるので,「あれ,まだなかったんだっけか?」とか思ったが,これは本当に世界中が注目するでしょうね.余談ですが,普段ScienceとかNature等の商業誌に触れることが少ないせいか,目に飛び込んでくる図がいちいち凄い.まさに広告代理店並み(失礼).


更に,関連する摩擦の論文として,グラフェンとDiamond-like Carbon(DLC)の間で観測されるSuperlubricity(超潤滑)に関するものがこちら.

Macroscale superlubricity enabled by graphene nanoscroll formation | Science

Superlubricity自体は,格子の構造(ハニカムとか三角とか)がマクロに影響を及ぼして摩擦力を低減するという効果として広く観測+研究されてきたが,ここではむしろ特異なSuperlubricityを扱っている.2つの物質の間で車輪のような役割を果たす小さい粒粒(剛体球)がたくさん存在すると,それらがちゃんとSuperlubricityをサポートするというものだ.ここでは,Crystalline Diamond Nanoparticleというものがその役割を果たしている.


最後に,「イオン伝導体に外場がかかった時にキャリアイオンがあるサイトから隣のサイトに飛び移る確率(hopping amplitude)が,実は古典的なBoltzmann分布ではなくて,修正された量子力学的な確率に従うよ」ということを示す論文を紹介する.モデルも解析方法も現象も非常にシンプル.結局は電気伝導のミクロな理解は量子力学でないといけないということだ.

[1611.07402] A model violating the Boltzmann distribution

最後に

本当はもっと頻繁に更新をしないといけないのだが,あまり手を付けられていない.そのうち,今月の中旬にあった数理物理・物性基礎論セミナーのレビューとか,普段火曜に本郷で行われるMITセミナーとかいうやつもちゃんとまとめていきたい.後,アニメとかラノベのレビューもしっかりと.