2006年11月30日

Segmentaion faultに関するアドバイス

海外組の先輩がblogを見てくれてSegmentation faultについてのアドバイスをくださったので書いとこうと思います。

通常関数内で定義された変数は仮想メモリ内のスタック領域に確保されるのですが、デフォルトではこの値が小さいのでSegmentation faultとでる。
それを確かめるために
ulimit -s
というコマンドをうつとスタックサイズが表示されます。
ちなみにMacでは8192(k)です。
そこで
ulimit -s 数値
とすれば数値kのメモリが確保される。
数値の代わりにunlimitedとすればUNIXではメモリが自動的に拡張されスタックは無限に大きくできるそうです。これがUNIXの優れている点。
しかしMacではulimit -s で表示される値は仮想メモリに固定で割り当てられ、自動伸長しない実際のサイズであり、最大値は65536だそうです。
ということでMac OS -Xではulimit -s unlimitedとはできない。

もう一つ方法はmallocを使って領域を確保するというのがあるということなんですが、まだ勉強していないのでわかりません。

一応問題は解決していたのですが、blogを見てくれ剰えアドバイスをくださる先輩がいるというのは本当にありがたいことです。
posted by 士季 at 16:03| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2006年11月28日

間違い探し

今日は只管(ひたすら。一向と書いてもそう読むらしい。"ただ"とも読み、打ち込む、専念するという意味。だから、ひたすら勉強に集中するというのは意味が重複するのでおかしい)プログラム中の間違い探し。
やたらと長いプログラムなのでこれを探しているだけで一日が終わった(全部終わってない)。
微妙な間違いが多かったり、もともと設定が間違っていたり。
全部修正してちゃんと動いてくれると万々歳なのですが、動かなければOh My God!
どうしよう?
posted by 士季 at 23:35| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

Segmentaion fault

Godunov typeのスキームで数値計算をしようとしていて1次元のテスト計算はうまいこといったので2次元に拡張しました。
すると1次元増えてさらに微分方程式においてもう1つ項が増えたりして色々と数が増える。
私にとってわかりやすくするためにfluxなどで配列を増やしていくと結構な数になりました。
1つの配列でグリッド数がrとθ方向で200×100。
また変数として電場、磁場と擬ポテンシャルの7つ。
それが35個。
つまり35×7×200×100=4.9M(490万)
で、計算を実行したところSegmentation faultとでた。
これは確保されていないアドレスをポインタでアクセスしようとしたり、配列の範囲外アクセスで発生したりするそうです。
グリッド数を減らしたりすると、実行できたことから、
配列をかなり使っているのでこれのせいで起きているのではと思い、最低限の配列だけを用いるようにプログラムを書き換えると実行できた。(35個から7個に)

それでもエラーは色々と残っているので非常に焦ります。
posted by 士季 at 09:54| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2006年11月24日

ソフトバレーボール大会

宇宙地球科学専攻内で秘書さんたち主催のソフトバレーボール大会が行われました。

私の研究室も参加しましたが、残念ながら1回戦で敗退。
まともにラリーも続かないありさま。
明らかに練習不足。
他の研究室の皆様方はバレーっぽくなってました。
非常に悔しい。
何より飛んできたボールに脳は反応しても体がすぐに反応してくれなかったのが滅茶苦茶ショック。
昔はそういうボールを飛び込まなくても取れるのに目立つためにわざわざ飛びこんで盗るというような余裕があったのに。
年なのか、太ったせいなのか。
感が鈍っているだけと思いたい。
posted by 士季 at 23:13| Comment(0) | TrackBack(0) | スポーツ | このブログの読者になる | 更新情報をチェックする

2006年11月15日

おとなのための知的雑学

Zeb_waod
88歳のおじいさんが書いている雑学本です。

言葉に関する雑学があったのでちょっと挙げてみます。

1.呼び方
人に対して君(きみ)とか〜君(くん)と呼ぶことがある。特に〜君は同等もしくは年下の子に対して言う言葉だ。
私も研究室でそうしている。
しかしよくよく考えれば、昔は君というのは君主、主君(君主と主君は意味が違う)とか我が君と言っていることがあるように自分の主君に対する言葉なのが、いつのまにか同等以下になってしまった。
次に自分のことを「僕」と言ったりする。僕は「しもべ」と読める。なぜ自分がしもべなのだ?
貴様というのも貴族の貴がつくように相手を尊ぶ言葉なのにいつのまにか蔑む様な言葉になってしまった。
おまえも元は大前で高貴な人の前という意味だそうだ。

外国でもladyやmadamも同じようなことがある。

2.言葉の変化
略したりしてよくわからない若者言葉みたいなものもありますが、そういうことではなく、もともとの言葉の発音の省エネという意味での変化。例えば
昔は「を」と「お」の発音が違ったようだが今は省エネで両方「お」になっている。woの子音のwを省いた感じだ。
また「見られる」が「見れる」という所謂「らぬき言葉」も同様。
外国でも同じように省エネがある。
knightも元は「クニフト」、knifeも元は「クニフ」と読んでいたがいつのまにかkが読まれなくなり「ナイト」「ナイフ」となった。
またwhiteやwhatももともとのつづりはhwite,hwatで、次第にhの発音が小さくなりスペルもwが前にでてきたそうだ。発音すると確かにhの方が前のような気がする。

といったように面白いことが書いてあった。

posted by 士季 at 09:10| Comment(0) | TrackBack(0) | | このブログの読者になる | 更新情報をチェックする