研究とはあまり関係ないが、TAをしている授業で先生が
以下のようにtmpを用いなければ変数の値を交換することは「絶対に」できない、とのこと。
tmp =a;
a = b;
b = tmp;
そんなわけでできないといわれると悔しいので
a ^= b;
b ^= a;
a ^= b;
とXORを取ることで交換できるので絶対ではない。
一説によると後者の方が早いらしいが、どのくらい差があるか等は不明だ・・。
あとint型でしか使えないと思いますが。
2007年11月19日月曜日
2007年11月14日水曜日
2007年11月13日火曜日
2007年10月25日木曜日
2007年10月16日火曜日
とりあえず変更完了。
ATLASを使用していた部分を他のブラスにも変えられるように変更していたものが完了。
とはいえ動作確認しているBLASは一つだけだが。
最後のエラーは悲しいことに".f"のファイルがコンパイルされていないという情けなすぎるエラー。
autoconfを使うときは気をつけましょう。
とはいえ動作確認している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"
コンパイル時に
-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日金曜日
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
しかし、この状態からどうも進まない。
それとあとはライブラリをくっつける順番を間違えないようにせねば。
最終的には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に関するものなのでその辺があやしい。
いったんページングファイルをなしにしてやってみて効果があったような気がしたが再発。そして連発。
だめだこりゃ。前期中には解決しなそだ。引き続き調査。
トラブルは時間がとられるのはむかつくが勉強になることもあるのでマイナス面だけでないのがせめてもの救いか。
いまのところ確認できたエラーは
UNKNOWN_HARD_ERROR
BAD_POOL_CALLER
IRQL_NOT_LESS_OR_EQUAL
といったものだ。
どうも下の2つはIRQLに関するものなのでその辺があやしい。
いったんページングファイルをなしにしてやってみて効果があったような気がしたが再発。そして連発。
だめだこりゃ。前期中には解決しなそだ。引き続き調査。
トラブルは時間がとられるのはむかつくが勉強になることもあるのでマイナス面だけでないのがせめてもの救いか。
登録:
投稿 (Atom)