by antonin
検索
最新の記事
記事ランキング
タグ
雑感(302)
雑談(151) 妄想(126) ニュース(96) 散財(77) web(65) おバカ(59) 検索(54) 親バカ(45) 日本語(41) PC(40) 季節(39) 昔話(35) 信仰(31) 政治経済(29) イベント(27) 言語(25) 音楽(24) 言い訳(22) ビール(15) 以前の記事
最新のコメント
ライフログ
ブログパーツ
ブログジャンル
|
時間がない。手短に。 -- 国債全然OK学派の人々の最大の論拠とは、国債の大部分が国内で消化されているから大丈夫、という説にある。比喩的に、お父さんがお母さんから借金しているようなものだから大丈夫、とある。これが、家計を預っている主婦たるお母さんが、経済労働の主体であるお父さんから借金して使い込んでいるという比喩に置き換えてもまだ同様に借金無問題という結論が出るのか、そのあたりはよくわからない。 わからないわからない言っていてもしかたがないので、久しぶりにマンキューを引っ張りだしてきた。流し読みしてみて、少し分かる部分もあるのだけれど、まだマクロ経済の問題を理解できるほどには理解が進んでいない。このあたり、喉に小骨が刺さったような異物感を時々覚えて具合が悪い。 国内で債券が消化される場合、債権者を国外に持つ場合との相違点は何か。箇条書きにしてみる。 ・債権者が国民であれば、国家の定める法律に従う義務があり、国民は立法府が公布する非常事態法(預金引出制限や一定資産の接収など)に逆らうことができない。 ・円通貨を発行しているのは日本銀行であるが、非常時においてはその政府に対する独立性を制限することができるため、国債の額面を記述している円の価値を下げるために、紙幣増刷を命令することができる。 ・国家は国民に対し情報統制が可能であり、国債の保有に心配はないとする、債務に対する国民の信用を維持する方法を有している。 というあたりか。マクロ経済においては、通貨圏の中で通貨流通が閉じているので、開放系の数学ではなく閉鎖系の数学が適用される(開放系の数学に対して、通貨の循環を前提とすることによる暗黙の境界条件がいくつか付加される)という違いがある。しかし、現在の国際経済は、地球全体ではもちろん閉じているけれども、国家単位では解放度合いが大きく、通貨統合したヨーロッパ連合ほどではないにしても、日本円も為替の影響を大きく受けている。 たとえば、わかりやすく発電所の発電機で考えてみると、1次冷却水は復水器によって循環するが、そこで加熱される2次冷却水は外部環境へと放流される。こういう場合に、1次冷却水の質量系は閉鎖系になるけれども、エネルギーの系は、ボイラーからの熱流入、タービン内膨張によるエンタルピー流出、復水器での熱流出によって、開放系になっている。円も同様で、取引通貨としての円は日本国内に閉じているが、貿易と投資を通じた価値の交換は為替を経由した開放系になっており、古典的なマクロ経済が前提としている閉鎖系依存の境界条件の一部は既に成立しなくなっている。このあたりの加減がまだよく理解できていない。 日銀の量的緩和も、キャリー・トレードによって国内ではなくスペインやギリシアでの不動産価格高騰を招いただけに終わり、ヨーロッパの中銀各行に迷惑だからほどほどにしてくれと注意されたから続けられなくなったという説があって、もしそれが本当だとすると、日本国内だけを向いた政治家の口から、あの時もっと緩和を続けていれば日本の経済が自律回復したのに途中でやめた日銀の不見識は云々という意見が出るのは、国際経済の規模に対して無視できないほどの規模に成長した円の番人としての、日銀の重要な役割を過小評価した意見なのではないかと思える。説が正しければ、だけれども。 分子が分母に対して十分に小さいうちは成立する近似式が、分子が大きくなると成立しなくなることがあり、逆にそれまでは成立しないと言われていた近似式が徐々に成立してくるという現象も、工学の世界にはしばしば見られる。そういうビリアル係数的なものが経済学ではどうなっているのか、このあたり、真相を知りたい。 -- Brainfuckの処理系の仕様がだいたい固まったのだけれども、規模が大きくなりすぎて、実装する時間がない。素直に実装するとgcc-coreくらいの規模になってしまう。これはこれで美しくないような気がする。あと、やっぱり安全なコードと速いコードの両立は難しいと実感した。処理系とユーザープログラムが暗黙の契約を結んだような(契約を破ると即座にsegmentation faultで堕ちるような)コードは、処理系が水も漏らさぬような処理をするコードに比べると、やっぱり10倍くらい速い。工夫によってこの差はもう少し縮められると思うが、それでも2倍は割らないだろう。 Javaの、遅いがネットにさらしても安全に動く処理系というのは、素人が世界のいかなる道路を運転しても破綻しない乗用車のようなもので、その速度というのはどうしても限度がある。しかし、道路に陥没もなく、横断する歩行者もなく、ドライバーが事故を起こしてもドライバーがメーカーを訴えないことが保証されているような、つまりサーキットレーシングの世界では、同じような排気量のエンジンでも数倍速く走ることができる。これは、実はFortranの世界であり、こういうスパルタンな環境下では、Brainfuckのような非効率な言語でも結構な速度で問題を解くことができる。 最初は現代的で安全重視の処理系をstd::dequeなんかを使って書いていたのだけれど、これだと有名なmandelbrot.bの実行に3分くらいかかる。これをstd::vectorに変更して、segmentation fault上等な(代わりに開始アドレスから±1GBのアドレス空間を確保した)処理系でこれを実行してやると、30秒を切る。そこから最適化などをしてやると、最終的に10秒を切るあたりで落ち着く。これとは別に、BFからCのコードへ直訳するコンバータを書いて、出力されたコードに2GBのstaticメモリを与えてやると、gcc 4.5.3 の -O3 オプションによって処理時間は1.2秒ほどにまで縮まった。やっぱりコンパイラは強い。 この過程で最適化技法などについても思うことが多々あったのだけれども、CPUパフォーマンスを古典的な意味で引き出す方へ興味が行ってしまい、ここ2週間ほどはopenmpだとか、sse2だとか、汎用レジスタのSIMD的手法による演算(32bit intを8個の4bit intとして加算や論理演算を行う)だとかを試行していた。ネタは再びライフゲームに里帰りしている。今のところ睡眠不足のためにパフォーマンス測定できるところまでコードが書けていないが、L1キャッシュの32KBからデータを落とさないように注意しながら3個のALUを占領して走り続けるコードなんかを考えていて、何かと楽しい。 もはや「公道を走る」タイプのプログラミングにおいて、こういうあまりにも趣味的なコードを書くことは許されないのだけれども、ひどくプライベートな空間を走るプログラムというのは今の時代にもわずかに残されている。それにしたってプログラムの方を極度にチューニングするよりは、最新のアルゴリズムを適用してみたり、適正な従量コストを引っ張ってきてプロセッサのスケーリングで解決する方が主流ではあるのだけれども、素人に毛の生えたようなレーサーが週末に筑波を攻めるようなプログラミングスタイルというのがあってもいいのだろうと思う。 -- 育児とか仕事とかもいろいろと厄介ですが、まあそのあたりはアレということで。
by antonin
| 2012-11-11 17:31
|
Trackback
|
Comments(2)
|
ファン申請 |
||