サーバの作成、C++プログラムの作成、三次元可視化に関する情報を書いたページ

このサイトは、主にFedora、OpenSUSEおよびUbuntuを利用したサーバの作成方法について書いてあります。
一部は、WindowsおよびMac OS Xを使用してのサーバの作成方法も書いてあります。
また、CおよびC++を使ったプログラミングについての小技などもについても書いてあります。
三次元可視化に関しては、OpenDX、ParaviewおよびMatlabを使用しています。

目次

Linuxサーバの設定

C++プログラミング

その他


本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11と表示しています。Ubuntuは、必要に応じて7.10、8.04のようにバージョン番号をつけて区別しています。MandrivaはMandriva Linuxを表します。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2009 Chikuma Engineering Co., Ltd. All Rights Reserved.

戯れ言

Matlab

format long g

で、より多くの桁数を表示することができる。

DELL Inspiron mini 9

仕様

いわゆる、ネットブックという種類のパソコンです。
仕様の詳細はデルのサイトも参考にしてもらうとして、今回購入した機種のおもな仕様は
Intel Atom N270 1.6GHz(HTが使えるので、OSからは2つのCPUがあるように見える)
メモリ1GB
グラフィック Intel GMA950
液晶 8.9インチ 1024 x 600 (いわゆるツルテカ液晶)

重量は約1kg。片手で楽々持てる重さ、大きさである。
ACアダプタも十分小さい。

USBポートは右側に一つ、左側に2つあるので、マウス、USBメモリと使ってももう一つ余るので、通常の使い方では十分余裕があると思われる。ただし、なぜか購入した筐体は抜き差しが非常に堅かった。

ネットワーク関係は、有線が100BASE-TX、無線が802.11gまでの対応であるが、CPUなどがそれほど高速ではないので、ちょうどよいと思われる。

ウェブカメラは、130万画素のものがオプションでつけられる。

ファンレスである。

ベンチマーク

まず、Windowsの起動であるが、35秒程度、スタートアップ内のアプリケーションがすべて立ち上がるまででも45秒とまずまずのスピードである。

HDBENCH

 ★ ★ ★  HDBENCH Ver 3.40 beta 6 (C)EP82改/かず ★ ★ ★ 
M/B Name      
Processor    1596.00MHz[GenuineIntel family 6 model C step 2]
Processor    1596.00MHz[GenuineIntel family 6 model C step 2]  
VideoCard   Mobile Intel(R) 945 Express Chipset Family  
Resolution  1024x600 (32Bit color)  
Memory      1038,700 KByte  
OS           5.1 (Build: 2600) Service Pack 3  
Date        2008/09/24  19:24  

Intel(R) 82801G (ICH7 Family) Ultra ATA Storage Controllers - 27DF
Primary IDE Channel
  STEC PATA 8GB

JMB38X SD Host Controller

JMB38X SD Host Controller

JMB38X SD Host Controller

   ALL  Integer   Float  MemoryR MemoryW MemoryRW  DirectDraw
 35275    92518   64098    47149   47661    84207          29

Rectangle   Text Ellipse  BitBlt    Read   Write   RRead  RWrite  Drive
    16522  21967    4180     241   71960    8390   45490    1204  C:\100MB
--------------------------------------------------
CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

   Sequential Read :   75.841 MB/s
  Sequential Write :    8.082 MB/s
 Random Read 512KB :   70.374 MB/s
Random Write 512KB :    2.844 MB/s
   Random Read 4KB :    8.629 MB/s
  Random Write 4KB :    0.277 MB/s

         Test Size : 100 MB
              Date : 2009/11/21 15:20:32

SSDの節約

今回は8GBのモデルを購入。
SSDは初期状態で、3.80GBが使用済みで、空きは3.31GBほどである。
メモリが1GBあるので、200MBほど使われていた仮想メモリを切った。
すると、3.59GB(空き3.51GB)まで減った。
それから、休止状態を切ることにより、2.60GB(空き4.51GB)まで減らすことに成功。
さらにアンチウイルスソフトはトライアルである上に重いので削除すると、2.49GB(空き4.62GB)までに削減できる。
Googleデスクトップも重いので、削除すると、最終的に2.48GB(空き4.62GB)になった。

SSDと圧縮

購入した状態ではCドライブ全体にNTFS圧縮がかかっている。
これは、パフォーマンスに大きく影響する。
とくにこの状態だと、Youtubeなどの動画を再生するときに、スムーズに再生されない。
インターネットエクスプローラやFirefoxのテンポラリファイルのある場所、C:\Documents and Settingsなどの圧縮を解除することによりこの問題は解決する。
それ意外にも、頻繁に書き込みが行われるディレクトリは、圧縮を解除しておくとよい。

SSDとプチフリとEWFの導入

DELL Inspiron mini 9に搭載されているSSDは、ベンチマークを見る限りは速いのだが、実際に使用していると、一瞬フリーズしたような状態(プチフリ)になることがしばしば起きる。また、書き込みが遅いため、winampの様に起動時に数MBのファイルを作成するようなソフトでは、起動時に引っかかりを感じる。
はじめは、CPUが非力なためかとも思ったが、どうやらSSDの問題のようである。
実際問題として、このプチフリは体感速度を非常に低下させる。
そこで、この問題を解決するために、EWF(Enhanced Write Filter)を導入する。
これは、本来ディスクに書き込む内容を、メモリにため込み、Windows終了時に一括してディスクに書き込む(初期設定では書き込まれずに破棄されるので注意)ものである。
なお、導入にはこのページを参考にした。

なお、これを導入すると起動しなくなる場合もある
突然電源が落ち場合などに、本来書き込まれる内容が失われる
Windows終了時に、メモリにキャッシュした内容の書き込みが行われるため、多少(場合によっては1分以上)時間がかかるようになる

以上のことに留意して、導入は慎重に自己責任で!!!

まず、ここから、User Profile Hive Cleanup Serviceをダウンロードしてインストールする。
次に、ここからShared_Computer_Toolkit_ENU.msiをダウンロードし、インストールする。(すでにダウンロードできないようなので、どこか別の所から拾ってくる必要がある。また、マイクロソフトはこのソフトの後継として、Windows SteadyStateというものを出しているが、仕組みが全く違い、起動時間が非常に長くなる、ディスク容量が減少する、アクセス速度がEWFのように速くならないなど問題が多い。)

次に、レジストリエディタ(C:\WINDOWS\regedit.exe)を起動し、

HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Enmu\Root

のアクセス許可で、Everyoneのフルコントロールにチェックを入れる。

そしたら、ファイルewfmini9.regをダウンロードし、エクスプローラからダブルクリックで、レジストリに書き込む。
(ディスクの管理から見るとわかるが、Cドライブは2番目のパーティションに置かれているので、上記の内容で書き込む。他の機種、あるいは手動で再インストールしたなど、Cドライブが置かれている場所が、初期の者と違う場合は、上記レジストリファイルの内容を変更する必要がある。例えば、SSDをフォーマットして、Cドライブが最初のパーティションになった場合は、最後の行を"ArcName"="multi(0)disk(0)rdisk(0)partition(1)" とメモ帳などで書き替える必要がある)

再起動すれば、EWFが有効になっているはずである。
コマンドプロンプトで、

"C:\Program Files\Microsoft Shared Computer Toolkit\bin\EWFMGR.EXE" c:

と打ち込んで、

C:\>"C:\Program Files\Microsoft Shared Computer Toolkit\bin\EWFMGR.EXE" c:
Protected Volume Configuration
Type RAM (REG)
State ENABLED
Boot Command NO_CMD
Param1 0
Param2 0
Volume ID A3 04 2D A4 00 8A 73 02 00 00 00 00 00 00 00 00
Device Name "\Device\HarddiskVolume2" [C:]
Max Levels 1
Clump Size 512
Current Level 1

Memory used for data 22141440 bytes
Memory used for mapping 16384 bytes

の様に表示されれば成功である。

ただし、初期の設定では、Windows終了時に、ディスクに書き込むはずのデータはすべて破棄されてしまう。
これは、公共のパソコンなどで再起動時に元に戻したいというような場合はよいが、通常はディスクに書き込んでもらわないと困る。
Windows終了時にディスクに書き込むようにするには、コマンドプロンプトで、

"C:\Program Files\Microsoft Shared Computer Toolkit\bin\EWFMGR.EXE" c: /commit

と打ち込めばよい。また、この内容をテキストエディタに書き込み、cmt.batなどの名前で保存してスタートアップに入れておくと、毎回、Windows終了時にキャッシュの内容を自動的に書き込んでくれる。このコマンドを実行した後に

"C:\Program Files\Microsoft Shared Computer Toolkit\bin\EWFMGR.EXE" c:

と打ち込むと

C:\>"C:\Program Files\Microsoft Shared Computer Toolkit\bin\EWFMGR.EXE" c:
Protected Volume Configuration
Type RAM (REG)
State ENABLED
Boot Command COMMIT
Param1 0
Param2 0
Volume ID A3 04 2D A4 00 8A 73 02 00 00 00 00 00 00 00 00
Device Name "\Device\HarddiskVolume2" [C:]
Max Levels 1
Clump Size 512
Current Level 1

Memory used for data 22141440 bytes
Memory used for mapping 16384 bytes

の様にBoot Commandの欄がCOMMITと表示されれば成功である。

なお、

Failed getting protected volume configuration with error 1

の様なエラーが出る場合は、レジストリewfmini9.regをもう一度書き込んでみると直ることが多い。

なお、EWF導入後のベンチマーク結果は、

--------------------------------------------------
CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

   Sequential Read :  698.585 MB/s
  Sequential Write :  705.938 MB/s
 Random Read 512KB :  690.198 MB/s
Random Write 512KB :  669.676 MB/s
   Random Read 4KB :  205.093 MB/s
  Random Write 4KB :  185.562 MB/s

         Test Size : 100 MB
              Date : 2009/12/05 0:41:04

これで、ディスクアクセスの点において、デスクトップパソコンと変わらない体感速度を得ることができる(CPUが非力なのでCPUパワーが必要な場面、特にHD動画の再生などでは、遅さを感じる)。

唯一問題点は、パソコン起動後、EWFが導入されていると、書き込みが発生した分がすべてメモリにたまっていくという点である。特に、ブラウザのディスクキャッシュをONにして動画などを見るとあっという間にメモリを使い果たしてしまう。そのためにもRAMは2GBに換装することをお薦めする。また、FirefoxやOperaであれば、ディスクキャッシュを切ることができるので、切った状態で動画などを見るのがよい。また、大きなダウンロードファイルなどは、SDカードに保存するとよい。
それでもメモリを使い果たしそうになった場合であるが、再起動するか、EWFを切る必要がある。EWFを切るには、

C:\>"C:\Program Files\Microsoft Shared Computer Toolkit\bin\EWFMGR.EXE" c: -commitanddisable -live

と打ち込む。これで、メモリの内容がSSDに書き込まれ、メモリが解放される。このままだと、以後一切EWFが使われなくなるので、

"C:\Program Files\Microsoft Shared Computer Toolkit\bin\EWFMGR.EXE" c: /enable

と打っておく。なおこれは、再起動後に有効になる。(再起動せずに再度有効にする方法はあるのか不明)。

温度

この機種は、近年まれに見るファンレスの機種である。
そこで問題となるのが、パームレストをはじめとする温度である。
結論から言うと、結構熱くなる。チップセットの発熱も大きいので、CPUがフル稼働していなくても、かなり熱い。
CPUをフル稼働させた場合、膝の上などには置けないほどになる。
CPU温度を計測してみたところ、CPU稼働率100%の状態で、70℃程度、CPU稼働率50%(このCPUはデュアルコアではなくHTなので、実際にはもっと働いているはずである)で66℃前後にまでなる。
ただし、もちろん温度が高くなったからといって、動作が不安定になるといったことはない。24時間程度動画をエンコードして100%の状態にしてみたが問題なし。

サウンド

Dellのサイトには載っていないが、マイクがタッチパッドのあたりに内蔵されているので、出先などでマイクなどを持ち歩かなくてもskypeなどを使うことができる。
スピーカーもステレオで音量も十分大きいので、ホテルなのでちょっとしたBGMを再生するのにも使える。
ヘッドフォン端子からの出力も、ノイズはほとんどなく、また音量調節は機械的なボリュームではないので、それに伴う雑音などもない。
全体としてサウンド関係は十分合格点に達しているといえる。

液晶・グラフィックス

液晶は輝度を最大にすると非常に明るい。
画面がそれほど広くないので、メインのパソコンとして使うのは難しい。
また、いわゆるツルテカ液晶なので、写り込みが激しい。

電源・バッテリ

通常の使い方(メールやWebをみたり、テキストを書いたりする程度)で3時間10分ほどで、10%以下であるという警告が出た。液晶の輝度は上から5つめである。
そして、それから20分程度使えた。
仕様では駆動時間最大3時間40分とあるが、ほぼ仕様通りということができる。

SSDのアップグレード(FEM32GFDL)

元々入っていたSSDは8GBでそろそろ手狭になってきたのでアップグレードすることにした。
選んだのはFEM32GFDL。以下はベンチマーク結果(EWF導入前)。

--------------------------------------------------
CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

   Sequential Read :   63.082 MB/s
  Sequential Write :   31.413 MB/s
 Random Read 512KB :   60.621 MB/s
Random Write 512KB :   19.052 MB/s
   Random Read 4KB :    5.146 MB/s
  Random Write 4KB :    1.414 MB/s

         Test Size : 100 MB
              Date : 2009/12/05 0:03:26

Readの値が元のSSDよりも落ちているものの、Writeの値が4倍近く上がったので、EWFを使わない時の体感の快適度は上がった。(なお、以前のSSD時およびこのSSD導入後、共にEWFを入れたので、体感上はほぼ同じなのではあるが)

デスクトップパソコンのベンチマーク

グラフィックカードを今までの内蔵NVIDIA GeForce 6150からNVIDIA GeForce 8400 GSに変えてみた。それ以外の構成は下記の通り。

CPU:AMD Athlon 64 X2 Dual Core Processor 5200+
メモリ:4GB
OS:32bit Windows XP SP2
マザーボードASUS M2NPV-VM

まずは、N-Bench3の結果

N-Bench3

GeForce 6150 GeForce 6150 + CPU 5% overclock GeForce 8400 GS GeForce 8400 GS + CPU 5% overclock
Ninja 1
Total Polygon 30088 Counts
Total Texture Size 16.0 MB
N-Bench Score 3325 Marks
FPS Average 45.75 FPS
N-Bench Score 3597 Marks
FPS Average 49.49 FPS
N-Bench Score 4265 Marks
FPS Average 58.66 FPS
N-Bench Score 4468 Marks
FPS Average 61.46 FPS
Ninja 2
Total Texture Size 19.6 MB
Total Polygon 46254 Counts
N-Bench Score 3681 Marks
FPS Average 64.67 FPS
N-Bench Score 3868 Marks
FPS Average 67.97 FPS
N-Bench Score 3830 Marks
FPS Average 67.30 FPS
N-Bench Score 4024 Marks
FPS Average 70.72 FPS
Grand Touring
Total Texture Size 14.5 MB
Total Polygon 86274 Counts
N-Bench Score 1805 Marks
FPS Average 26.97 FPS
N-Bench Score 1832 Marks
FPS Average 27.38 FPS
N-Bench Score 4792 Marks
FPS Average 71.61 FPS
N-Bench Score 5018 Marks
FPS Average 75.00 FPS
Star Fighter
Total Texture Size 27.0 MB
Total Polygon 99502 Counts
N-Bench Score 3467 Marks
FPS Average 170.15 FPS
N-Bench Score 3587 Marks
FPS Average 176.05 FPS
N-Bench Score 3718 Marks
FPS Average 182.46 FPS
N-Bench Score 3929 Marks
FPS Average 192.82 FPS
3D Overall N-Bench Score 3069 Marks
FPS Average 76.89 FPS
N-Bench Score 3221 Marks
FPS Average 80.22 FPS
N-Bench Score 4151 Marks
FPS Average 95.00 FPS
N-Bench Score 4359 Marks
FPS Average 100.00 FPS

Transcend JetFlash V10のベンチマーク結果

トランセンドのごく標準的な速度のUSBメモリであるJetFlash V10の4GB版の100MBでのベンチマーク結果。

★ ★ ★ HDBENCH Ver 3.40 beta 6 (C)EP82改/かず ★ ★ ★
M/B Name
Processor 1799.94MHz[GenuineIntel family 6 model D step 6]
VideoCard ATI MOBILITY RADEON 9600/9700 Series
Resolution 1400x1050 (32Bit color)
Memory 785,392 KByte
OS 5.1 (Build: 2600) Service Pack 2
Date 2007/04/19 22:27

Read 21889
Write 4352
RRead 23177
RWrite 1083

SDカードのベンチマーク結果

CrystalDiskMark 2.1を使って、ベンチマークを取ってみた。

Transcend 8GB SDHC(TS8GSDHC6)MLC
2008年4月に買った8GBのSDHC。先回のトランセンドは問題なかったので、今回もトランセンドを購入。MLCにも関わらず、速度はまずまず。

Sequential Read19.226 Sequential Write12.718 Random Read 512KB19.166 Random Write 512KB2.731 Random Read 4KB4.916 Random Write 4KB0.028

Kingston 2GB SD MLC
デジカメ(Lumix DMC-FZ8K)を買ったときのおまけ。2007年7月購入。さすがに読み書きとも遅い。特に書き込みの遅さは、フリー連写では問題になるかも。

Sequential Read8.818 Sequential Write3.635 Random Read 512KB8.754 Random Write 512KB1.266 Random Read 4KB3.302 Random Write 4KB0.022

Transcend 2GB SD(TS2GSD150) SLC
150倍速と書かれたトランセンドの2GB、SDカード。Exilim EX-Z1000購入時に投入。2006年6月に購入。読み込みはほぼ上限値。書き込みもデジカメのJPEG画像が2MB程度であることを考えれば、連写したとしても十分な数字。

Sequential Read19.167 Sequential Write13.502 Random Read 512KB19.071 Random Write 512KB9.130 Random Read 4KB5.255 Random Write 4KB0.201

パナソニックPRO HIGH SPEED 512MB SD(RP-SDK512) SLC
最大20MB/sをうたう、当時最速SDカード。2004年12月に購入。通称金パナ。今回のテストで一番古いカードであるにもかかわらず、最速の書き込み速度を出した。読み込みもほぼ公称値通り。

Sequential Read19.151 Sequential Write17.635 Random Read 512KB18.476 Random Write 512KB16.050 Random Read 4KB2.615 Random Write 4KB0.903

ノートパソコンのHDDを変えてみた

Lavie RXの内蔵ハードディスクを元々入っていた4500回転のものから7200回転のHitachi Travelstar E7K100 100GBに変えてみた。

交換前の温度
CPU:50℃前後
HDD:36℃
HDDデフラグなど:43℃

交換後の温度
CPU:60~65℃前後
HDD:42℃
HDDデフラグなど:46~47℃

結構熱を持つようだ。

ASUSマザーボードのBIOSのアップデート

ASUS UpdateというWindows用ソフトをインストールしてアップデートする。

BUFFALO RUF2-LV32GS-BKのベンチマーク結果

--------------------------------------------------
CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

   Sequential Read :   26.496 MB/s
  Sequential Write :   15.825 MB/s
 Random Read 512KB :   26.243 MB/s
Random Write 512KB :    1.577 MB/s
   Random Read 4KB :    5.840 MB/s
  Random Write 4KB :    0.015 MB/s

         Test Size : 100 MB
              Date : 2009/12/19 20:52:52
 ★ ★ ★  HDBENCH Ver 3.40 beta 6 (C)EP82改/かず ★ ★ ★ 
M/B Name      
Processor    1798.47MHz[GenuineIntel family 6 model D step 6]  
VideoCard   ATI MOBILITY RADEON 9600/9700 Series  
Resolution  1400x1050 (32Bit color)  
Memory      1309,680 KByte  
OS           5.1 (Build: 2600) Service Pack 3  
Date        2009/12/19  21:02  

Intel(R) 82801DBM Ultra ATA Storage Controller - 24CA
プライマリ IDE チャネル
  HTE721010G9AT00

Intel(R) 82801DBM Ultra ATA Storage Controller - 24CA
セカンダリ IDE チャネル
  MATSHITA DVD-RAM UJ-822S

   ALL  Integer   Float  MemoryR MemoryW MemoryRW  DirectDraw
  8534        0       0        0       0        0           0

Rectangle   Text Ellipse  BitBlt    Read   Write   RRead  RWrite  Drive
        0      0       0       0   25748   12392   25184    4946  F:\100MB

P7K500(HDP725050GLA360)のベンチマーク結果

CPU:AMD Athlon 64 X2 Dual Core Processor 5200+
メモリ:4GB
OS:32bit Windows XP SP2
マザーボードASUS M2NPV-VM

--------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

   Sequential Read :   93.928 MB/s
  Sequential Write :   92.944 MB/s
 Random Read 512KB :   56.375 MB/s
Random Write 512KB :   68.111 MB/s
   Random Read 4KB :    0.883 MB/s
  Random Write 4KB :    2.260 MB/s

         Test Size : 50 MB
              Date : 2008/07/04 17:05:09
 ★ ★ ★  HDBENCH Ver 3.40 beta 6 (C)EP82改/かず ★ ★ ★ 
M/B Name      
Processor    2835.74MHz[AuthenticAMD family F model B step 2]
Processor    2835.74MHz[AuthenticAMD family F model B step 2]  
VideoCard   NVIDIA GeForce 8400 GS   
Resolution  1680x1050 (32Bit color)  
Memory      2097,151 KByte  
OS           5.1 (Build: 2600) Service Pack 3  
Date        2008/07/04  16:42  


NVIDIA nForce 430/410 Serial ATA Controller
  HDT722525DLA380
  Hitachi HDP725050GLA360

NVIDIA nForce 430/410 Serial ATA Controller
  HDT722525DLA380
  Hitachi HDP725050GLA360

Promise FastTrak TX2650 Controller
  Promise 1+0 JBOD        1.10

 Read   Write   RRead  RWrite  Drive
87297   97709   41457   40442  J:\100MB