2007年12月18日火曜日

サーバーの構築

研究室のコンピュータにグローバルIPを頂いたので色々と設定した。

サーバーは構築したことがないので色々と調べながらの作業
/etc/sysconfig/network-scripts/ifcfg-eth0
に振られたIPなどを書き込めばOK。実際に動いてる別のサーバなどを参考に記入すれば良いだろう。
後は良くも悪くも外から見られるようになったのでパスワード認証をSSHを使用した認証に変更。こちらは
/etc/ssh/sshd_config
のファイルをパスワード認証の方を不許可にするのを忘れないようそれっぽく編集すれば問題ない。
不安であればこちらも動いている別のサーバーを参考にすればよいだろう。

2007年12月17日月曜日

先日のこと

先日、ウィーン発のムノツィルブラスというアンサンブルを観にいった。楽器の技術も超一流であるが、目だけで合わせたりとアンサンブル力?も超一流である。
それだけでないのは彼等は楽器だけでなく楽器あり、歌あり、笑いありの常識を逸脱しているところがすごい。あれだけの技術を持っていながら鼻でリコーダーを吹いたりはなかなかできないであろう。言うまでもないが歌もリコーダーも普通にうまい。
メンバー紹介では日本のギャグもやってくれて観客の笑いを誘っていた。
先輩とも話していたがあれで5500円(学生3500円)は破格。1万円でも絶対価値がある。
うちの師匠をはじめ、日本のプロの人も数名確認した。知らないプロも多いので実際にはもっといたであろう。

作業

近い将来の最適化問題に対するOnline Solverにむけて、SDPA Online Solverで使用しているデータをとりあえずコピーして使えるものは流用しようと考えている。
実際にはコピーして使えるもの、使えないものに分けられる。

使えないものの代表例はMySQLのデータベースである。こちらもコピーすれば使えるのであろうがユーザーのデータ管理もあるので面倒であるが、同じ構造になるようにデータベースを作りなおしておくのが良いと思われる。

apacheの設定ファイルhttpd.confもほぼそのまま使えるが、モジュールの問題などもあるので注意が必要。
読み込みすぎ→一つずつ減らして検証していくのが漏れがなく確実であろう。

なんにせよapacheが起動しないとブラウザで確認できないのでそれが一番最初である。そしてPostfixはapacheのconfigureの前にやっておいたほうが良い。
PHPはあまり触ったことがないだけに実行してみないと結果が分からないところが非常に怖い・・。

2007年11月30日金曜日

変数の交換

研究とはあまり関係ないが、TAをしている授業で先生が
以下のようにtmpを用いなければ変数の値を交換することは「絶対に」できない、とのこと。
tmp =a;
a = b;
b = tmp;

そんなわけでできないといわれると悔しいので

a ^= b;
b ^= a;
a ^= b;

とXORを取ることで交換できるので絶対ではない。
一説によると後者の方が早いらしいが、どのくらい差があるか等は不明だ・・。
あとint型でしか使えないと思いますが。

2007年11月19日月曜日

発表

先週のRも無事かどうかはさておきとりあえずひと段落して今日は別の授業の発表でした。
ほとんどの資料はこれまた別の授業で使った動的計画法のスライドを使っているのでそこまで大変な準備ではなかったが、基本的な内容ということで色々とほかの受講生も復習になったとのことでよかった。
さて、あとは別の授業の輪読が残ってるくらいで研究の方に戻れそうだ。
まずはPHP+MySQLの基本からスタート。

2007年11月14日水曜日

R続き。

Rを初めて数日だが、課題までは程遠い。
理論の方は少し話し合ってなんとかなりそうなので、あとはRと格闘すればいいかな。

Rを早く終わらせて研究の関係でMySQLの方に移りたい。SQLは去年少し触ってるが一からやり直せばまた理解も深まるであろう。

なんにせよRはやりたくてもやりたくなくても明日にはとりあえず終わることになる。

2007年11月13日火曜日

Rはじめました

課題でRを使わなければならないので色々やってみました。
プロットとかが簡単にできるしCの組み込み関数にもできるようなのでその辺は使えるかも知れない。

とはいっても課題が終わってしまったら人生で2度と使うことはないかもしれない・・。
何が起こるか分からないのでやっておいて損はないだろうけど。

2007年10月25日木曜日

動的計画法

授業で動的計画法のプレゼンをしなければならないので、プログラムを作った。
分枝限定法に比べればプログラムも難しくなく比較的簡単に導入できる。
作ったのは0-1ナップサック問題の解を求めるプログラム。

教育実習のときやこういう作業をしてると毎週授業する大変さがわかる・・。

2007年10月16日火曜日

とりあえず変更完了。

ATLASを使用していた部分を他のブラスにも変えられるように変更していたものが完了。
とはいえ動作確認しているBLASは一つだけだが。

最後のエラーは悲しいことに".f"のファイルがコンパイルされていないという情けなすぎるエラー。
autoconfを使うときは気をつけましょう。

2007年10月15日月曜日

mpichのバグ

どうやら先日のmpichの問題はバグらしいことがわかった。
コンパイル時に
-DMPICH_IGNORE_CXX_SEEK
オプションをつければ回避できる。
もしくは何よりも早く"mpi.h"をincludeしてやればよい。

下は先日のエラー。って先日の文章がなぜかそこまで書いてなかった・・。
/usr/local/mpich2/include/mpicxx.h:26:2: error: #error "SEEK_SET is #defined but must not be for the C++ binding of MPI"/usr/local/mpich2/include/mpicxx.h:30:2: error: #error "SEEK_CUR is #defined but must not be for the C++ binding of MPI"/usr/local/mpich2/include/mpicxx.h:35:2: error: #error "SEEK_END is #defined but must not be for the C++ binding of MPI"

2007年10月12日金曜日

あとひとつ・・。

configureもとりあえず完成し、あとはmakeが通れば終わりなんだが・・・。

undefined reference to `rpdpotrf_'

というエラーのみが残る。こいつが存在するところをコメントアウトすればコンパイルは通るのでこいつが最後のエラーだと思う。

とはいえ、makefile.inの修正が残っているから最後の一つということではないが大きなエラーはそんなところだろう。makefileの方はすぐ直るだろうしあとちょっと・・・。

2007年10月10日水曜日

コードの変更

コードの変更も終わって、あとはコンパイルが通ればおそらく完成だと思われる。
しかし、この状態からどうも進まない。

それとあとはライブラリをくっつける順番を間違えないようにせねば。
最終的にはconfig.xxxxに書き込むことになるが。

以下はエラーの出力の一部。
なんかmpicxxでコンパイルするとエスケープシーケンスがおかしいんだよなぁ・・。
g++ならコレでいいと思うが。

if mpicxx -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"sdpara\" -DVERSION=\"1.0.1\" -DF77_FUNC\(name,NAME\)=name\ ##\ _ -DF77_FUNC_\(name,NAME\)=name\ ##\ _ -I. -I. -I -I -funroll-all-loops -msse3 -mfpmath=sse -I/home/sasajima/sdpara10/include -D_REENTRANT -MT rsdpa-rsdpa_algebra.o -MD -MP -MF ".deps/rsdpa-rsdpa_algebra.Tpo" -c -o rsdpa-rsdpa_algebra.o `test -f 'rsdpa_algebra.cpp' echo './'`rsdpa_algebra.cpp; \ then mv -f ".deps/rsdpa-rsdpa_algebra.Tpo" ".deps/rsdpa-rsdpa_algebra.Po"; else rm -f ".deps/rsdpa-rsdpa_algebra.Tpo"; exit 1; fi

2007年8月7日火曜日

IRQL

どうも4月から研究室で新しく導入したPC(Win XP MCE)が再起動するので原因をいろいろ調べてみた。

いまのところ確認できたエラーは

UNKNOWN_HARD_ERROR
BAD_POOL_CALLER
IRQL_NOT_LESS_OR_EQUAL

といったものだ。
どうも下の2つはIRQLに関するものなのでその辺があやしい。
いったんページングファイルをなしにしてやってみて効果があったような気がしたが再発。そして連発。
だめだこりゃ。前期中には解決しなそだ。引き続き調査。
トラブルは時間がとられるのはむかつくが勉強になることもあるのでマイナス面だけでないのがせめてもの救いか。

2007年8月4日土曜日

ディスククリーンアップ

毎回設定を忘れてしまうが、WindowsXP、2000においてディスクのクリーンアップを行うと、ファイルの圧縮とかで日が暮れてしまう。
そこでレジストリの設定を変更すればほとんど時間をかけずに終わらせることができる

HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches

にある
[Compress old files] レジストリ キーを削除すればよい。

マイクロソフトのページによると

警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。

とのことだが、エラーを出してるのがマイクロソフトで対策方法を自分たちで発表しておきながら自己責任でやれというのはどうかと思う。

2007年8月3日金曜日

VMwareTools

VMwareToolsを導入していなかったので導入した。

導入したOSはFedora7とVine4であるが、途中両方とも同じトラブルが起きた。

とりあえず、
gcc
gcc-c++
kernel
kernel-devel
をyumなりapt-getなりでアップデートして最新のものにする。

基本的にはこれで大丈夫だが、途中の質問で、

What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]

がデフォルトで先に進めないときには/usr/src/kernels/
の中にある自分のkernel/includeを指定し直せばよい。

それでもうまくいかなかったので
vmware-tools-any-update2.tar.gz
をダウンロードしてきて中にあるrunme.plを実行すればその部分も通過できインストールが完了した。

2007年7月24日火曜日

GLPKの基礎

課題でGLPKを使うものがあったので実際にインストールして使ってみた。

初めてであるからいろいろ試してみたがいくつかわかったことがある。

s.t. ○○○:・・・;
の○の部分はほかのs.t.と重複してはいけないし、数字を使用するのもだめらしい。

たとえば
set week := Mon Tue Wed Thu Fri;
param N{s};
のように指定することはできるがN[i-1]などはweekの集合は整数でないため扱えない。
このようなものを扱いたいときは
set week := 1..5; のように整数を指定する必要があるらしい。

2007年7月23日月曜日

復旧の後遺症

昨日書いたとおり無事XPの再インストールというかリカバリというか復旧が完了した。
はずであったのだが、サウンドカードのドライバがないしうまく認識してくれないが音も問題なく出るのでよしとしよう。

WindowsXP上からVMwareでVineを起動しているのだが、なにか復旧前よりも起動が遅い気がする。
WindowsXPProfessionalをMCEのディスクで復旧させたのが原因かとも思ったが、MCEはプラス機能がついているだけで復旧に使うディスクはProfessionalと同じものであるから問題はないはずだが・・・。

2007年7月21日土曜日

続・XP復旧作業

前回の日記に書いたように、USBメモリの大活躍でなんとか復旧が進んだ。
意外と知られていないが、インストール中に
Shift+F10
でコマンドプロンプトが使えるのはありがたい。

何回かファイルがないと言われるもUSBメモリの活躍で作業が進む。
作業中にプロダクトキーを求められた。違法品のWindowsではないが、手元にプロダクトキーがなく困った。そもそもなんで修復作業にプロダクトキーを求めるのかも意味がわからない。とも言ってられないので色々考える。
そしてUSBメモリがまたここで大活躍。プロダクトキーを調べられるソフトがあるのでそれをコマンドプロンプトから実行。どうやらレジストリなどの中身は修復前のファイルがあるようで無事にプロダクトキーを取得。

あとはなんなく作業が進み無事XPが起動。心配されたCDドライブもXPが立ち上がった後は問題なく認識するようだ。これで全て終了・・。

のはずたったのだがここで終わらないのがWindowsで、windowsupdateできないトラブル。
ダウンロードはできるのだがそのあとのインストールが全部失敗する。
しかもWindowsupdateログが残らない。仕方ないので再々インストール。手順は分かってるので実時間通り1時間くらいで再々インストール完了。
結局それでもWindows updateできないままだったがログは残るようになったのでエラー番号を調べて解決。

ちなみに、アップデートできないトラブルは多々発生しているようだが、
大抵の失敗原因は
1,管理者権限ではない。→Administratorでログイン
2,信頼済みサイトにWindowsupdateのサイトを登録
3,ポップアップが非許可になっている→インターネットオプションでポップアップを許可。もしくは許可するサイトにWindowsupdateのサイトを登録
4,プロキシを使っている。→
インターネットオプション、「詳細設定」から「プロキシ接続で HTTP 1.1 を使用する」にチェックをする。
もしくは一時的に直接接続にすればよい。
コマンドプロンプトでproxycfg -d
でもできたとおもう。
5,スパイウェア、ウィルスなど。→
ソフトで削除。
%System32%\CatRoot2フォルダの中身を削除。
6,原因不明のエラー。
↓でWindowsupdateのシステムをリスタート。
%Windir%\system32\net.exe stop bits
%Windir%\system32\net.exe stop wuauserv
%Windir%\system32\regsvr32.exe
%Windir%\system32\atl.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\jscript.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\msxml3.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\softpub.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\wuapi.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\wuaueng.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\wuaueng1.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\wucltui.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\wups.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\wups2.dll
%Windir%\system32\regsvr32.exe
%Windir%\system32\wuweb.dll
%Windir%\system32\net.exe start bits
%Windir%\system32\net.exe start wuauserv

それにしてもWindowsの復旧作業には必ずといっていいほど別のPCを用意してCDなりFDなり今回のUSBメモリなりを用意しなきゃならない気がする。
ちなみに、コマンドプロンプトではワイルドカードが使えるのでコピー作業などはGUIより楽である。
ただLinuxでは「cp」でコピーだがコマンドプロンプトでは「copy」なので注意が必要だ。
使えるコマンドプロンプトで使えるコマンドは「help」と入力すれば良い。

そんなわけで丸一日無駄にして復旧が終わった。

Windows復旧作業

WindowsXPが起動しなくなったので、面倒なことになっている。

CDからブートして復旧しようとしたのだが、そこで問題が発生。
ハードディスクをWindowsが認識してくれない。どうやら問題はシリアルATA(SATA)にあるらしく、XPはSATAに対応していない。
BiosでIDEとして認識するようにできたのでそれで何とか解決。
しかし、今度は
Error loading operating system
と表示され何もできなくなる。エラーについて調べたらブートセクタの問題なのかと思った。

しかしWinで使えるfixmbrとかをやってみたが効果はなし。
仕方がないのでKNOPPIXでブートしてTestDiskをやるもどうやら正常。
無駄な作業になってしまったがブートセクタとかの勉強にはなったので悪くはないと思おう。
以下のページは非常に参考になったので暇な人は見ておくと良いかもしれない。
http://lets-go.hp.infoseek.co.jp/bootdisk6.html


結局のところBiosでIDEをSATAに戻さないとブートできないという結論であった。

これで終わらないのがWindowsで今度はasmsが見つかりませんとか出てしまった。
どうやらCDドライブを認識していないらしい。
おまえ、どっからブートしたんだよとつっこみたくなるがそうもいってられないので
http://support.microsoft.com/default.aspx?scid=kb;ja;311755
これを見るもそもそも
UPPERFILTERS 、LOWERFILTERS
というキーは存在しなくどうしようもなくなってしまった。

奇跡的にUSBメモリは反応するらしくそこにファイルをコピーして地道に作業することにした。
今作業中で解決しそうだがまだまだトラブルが起こる気がする・・。

2007年7月14日土曜日

採点

レポートの採点をしていると、明らかにまじめにやっている人と不真面目な人で差がある。
機械的に採点するテストであれば(たとえばマークシートなど)はわからないが、まじめにやっているレポートはなんとか点を上げてあげたいと思う。
逆に不真面目なレポートは点を下げるために粗を探したくなるが、その粗を探すのも面倒でむかついてくる。
こういうのを考えているとテスト問題を作る先生などはもっと大変なものであると思うものだ。

2007年7月8日日曜日

日本一

なんでもプロというものはすごいもので、引っ越し作業をする業者をみても思ったことだ。
先日日本一のトランペットプレイヤーでありトランペット協会会長の北村源三のソロを生で聞くことができた。うちの師匠が北村先生の弟子にあたるので、僕は孫弟子ということだ。そんなわけで縁がないわけでもなく一回だけ一緒に飲みに行かせていただいたこともある。今回はCDを購入しサインも頂いて、少し話すこともできて良かった。やはりプロというのは技術だけでなく人間としてもすばらしい人であると思わされる。そして70歳とは本当に思えなかった。

ClassAd

Condor上で条件(=ClassAd)がマッチしたPCを選ぶ際Archなどの項目は基本的にcondor_statusで確認できる。
今の状況ではマシンのスペックが同じなのであまり意味をなさないが。

2007年7月1日日曜日

遊休時間

遊休時間を利用できるというCondorだが、実際に日付を指定してやってみた。
設定の手違いでheldされてしまったが、ログを見てみるとエラーをはき出したのはちょうど日が変わるときであった。
こちらも問題なく行きそうである。
来週からは別のソースを読むのでそっちのお勉強になりそうだ。

2007年6月29日金曜日

OpenMPをgccで。

去年はOpenMPを使用するためにインテルコンパイラを使用していたがgccでもバージョン4.1から非公式に対応、4.2より正式に対応となったため、4.1.1で実験してみたところ問題なく並列化できた。
そもそも、インテルコンパイラを使えなくなったわけではない。インテルコンパイラ自体は非常に優秀で、異常なほど実行ファイル作成までにチューニングされる。だからこそ動作が速いしなるべくならインテルコンパイラを使いたいところであった。。
しかし、実験に使っているCondorを用いてOpenMPということを考えるとCondorはicc対応していないため必然的にgccにしなければならなかった。
といいながらも-fopenmpオプションをつけるとCondor_compileできない・・うーん。どうしたものか。

2007年6月27日水曜日

OpenMP

卒業研究でだいぶお世話になったOpenMPだが、
Condorでは導入できないんですか?と後輩に聞かれちょっと面白そうかと思った。
ただ、お互いの機能を考えると難しいのではないかとも思われる。色々実験してみる価値はあるかもしれないのでちょっと労力を費やしてみようかと思う。

Condorだが、クラスタ計算機外のPCを計算資源として使うときにどうすればいいかはよく分かっていない。マニュアルを読むしかないか・・。
/etc/hostsには記入しないとダメなのかな。

改めて書いてみると分かるが結局のところなにも分かってない・・。

2007年6月22日金曜日

Condor導入

実際にCondorのインストール方法は分かってしまえば難しいものではない。
ネットで検索すれば事細かくやり方を書いてあるHPもある。
central managerをどのPCにするかを決め最初はそのPCでインストールすればよいであろう。

具体的にはadduserでcondorユーザーを作成する。
condor_installを実行する。
condor_init、condor_masterを順に実行すれば普通に動くはずである。

自分が何回かやった中でのエラーは
1,condor_init実行時のエラーと
2,condor_masterまで実行した後
ps -ef egrep condor_などで動作の確認を行ったときにcentral managerでは起動するはずの、
collectorとnegotiatorが起動しない

の2点であった。
1の場合はNFSでファイル共有しているからcondorユーザーが他のマシンにも作られているという勘違い(/home/condorは存在するのだが・・)からできなかったパターン。全PCでadduserをしてやったことで解決。

2の場合はどうもデフォルトでは/etc/hostsが引けていない?らしくconfigファイルのその部分を修正してやることによって解決した。具体的には
## Where is the machine-specific local config file for each host?
LOCAL_CONFIG_FILE = $(LOCAL_DIR)/condor_config.local
#LOCAL_CONFIG_FILE = $(RELEASE_DIR)/etc/$(HOSTNAME).local

のコメントアウトを逆にするだけであった。

一時的とはいえこんな基本事項で躓くとは。まだまだ勉強せねばならないなぁ。と実感。

2007年6月21日木曜日

Condor

うちの研究室でもCondorの導入を進めようと試みているが、Condorチームによって正式に動作確認されているのはFedoraCore5までで6,7は実際にやってみなければ分からない。
実際にやっている人は多いのであろうが調べてみてもそれほど多くの情報が手に入らない。
これは意外に何事もなく動いているからなのであろうか?

2007年6月19日火曜日

はじめました

とりあえずはじめてみました。
普段のあれこれを綴ってみようかとおもいます。