ホーム » 2009 » 5月 » 07

日別アーカイブ: 2009年5月7日

2009年5月
« 4月   6月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

最近の投稿(電子情報)

アーカイブ

カテゴリー

Quad Core マシンがメモリエラー

研究費で Quad Core のハイパワー環境として導入した PowerEdge T105 であるが、 OS のインストールから手を焼いた。ひとまずOSが動きだしたのはいいんだけど、 今度は、"aptitude safe-upgrade" あたりを実行しようとすると再起動がかかってしまう。 ネットワークを使う仕事でエラーがでるのかと思い、オンボードEther のドライバ tg3 の ドライバの最新をひろって入れて安定…かと思いきや、やっぱり勝手に再起動。

不安になってきたけど、BIOSの画面で"エラーレポート"の機能に気づき、 LOGを確認すると、"Unrecoverble ECC Memory Error DIMM2,2"が立て続けに 記録されていた。 メモリの初期不良品をつかんでしまったかと思って、ブルーになるが、状況確認のために メモリのスロットを入れ替える。その結果、ちょいと処理をさせても安定している。 しかし、いつ再発するかわからないので、「負荷試験」がわりに、 必要ないけどカーネル再構築とパッケージの追加インストールを行う。 再構築はまだ実行中だけど、過負荷に耐えている。 この雰囲気は、「メモリの接触不良によるECCエラーで、スロット入れ替えにより、 接触不良が改善された」という様子。

ハノイの塔の帰納法による証明とメモリ利用の問題提起

ハノイの塔の処理回数の証明

前回授業のハノイの塔のルールの説明を受け、 実際にハノイの塔の処理回数の再帰方程式を示す。 そして実際にその証明ということで、数学的帰納法を用いて証明を行う。

処理速度のオーダの一般例として、 の事例として、クイックソートなどの例を示し、説明のしやすい マージソートについて、再帰方程式を示す。 次に代入法により、その式の一般解を示す。

メモリ利用の問題提起

例として、名前と電話番号のデータベースを作るというテーマとして、 これに必要とするデータ構造の宣言を示し、その問題点を示す。

#define DATA_SIZE 100
#define NAME_SIZE 10
#define TEL_SIZE 10
char name[ DATA_SIZE ][ NAME_SIZE ] ;
char tel[ DATA_SIZE ][ TEL_SIZE ] ;

しかし、DATA_SIZE は、1クラス50人ではなく、学年=200人、学校=1000人かもしれない。 TEL_SIZE は、12-3456 でなく、携帯電話 090-1234-5678 の16文字かもしれない。 "0033"をつけるかもしれない、"内線番号"がつくかもしれない、"国際電話で国別コード"がつくかもしれない。 NAME_SIZE も、漢字8文字=16byteかもしれない、 寿限無 みたいな名前だったら、漢字約100文字=200byte にするのか? 最初から、こういうめったにない事例に応じて、*_SIZE を巨大にするのは、メモリの無駄。 かといって、

int x ;
char name[ x ] ; // C言語では、配列サイズは定数しか使えない

こういう点で、データサイズが任意というのは、いかにプログラムで扱いにくいのかを説明する。

複素数をテーマにしたレポート

オブジェクト指向プログラミングの、具体的な処理によるレポート課題 ということで、例年どおりの複素数の取り扱いのプログラムの説明と 演習を行った。

レポート1(複素数の加減乗除)

授業中に示した上記の2つのプログラムをベースに、 記載されていない減算・除算のプログラムを作成し、レポートを作成する。 レポートには、下記のものを記載すること。

  • プログラムリスト
  • プログラムへの説明
  • 動作確認の結果
  • プログラムより理解できること。
    実際にプログラムを書いてみて分かった問題点など…