2011年1月6日木曜日

SDPA-GMP を Intel Compiler でコンパイル

SDPA-GMP の数値実験用に Intel Compiler でコンパイルしようとしたがエラーが出るので、以下にコンパイル方法をまとめておく。

1. コンパイラなどを設定
export CC=icc
export CFLAGS="-O2 -openmp -DDIMACS_PRINT -std=c++0x"
export CXX=icpc
export CXXFLAGS=$CFLAGS
export FC=ifort
export FCFLAGS="-O2 -i8 -openmp"
export F77=ifort
export FFLAGS="-O2 -i8 -openmp"
2. configure をする
3. make する
ここで spooles の build がエラーで止まるので、そうしたら
   cd spooles/build
   vi timings.h
   で timings.h を編集し、 の行の後に
struct timezone {
     int tz_minuteswest;
     int tz_dsttime;
 };
   を書き込む。
  make -f makefile global
  cp spooles.a libspooles.a
  cd ../.. (SDPA-GMP のディレクトリに戻る)
  make
 
  これでコンパイルすると、最後のリンクでなぜかうまくいかないので、icpc によるリンクのコマンド(-o sdpa_gmp が指定されているのでわかる)まで来たらいつまで経ってもリンクが終わらないので Ctrl-C で強制終了し、最後のコマンドをコピーペーストする。
このあと、最後のコマンドから -static オプションと最後の -lpthread を外して、リンクしなおす。

この手順によって SDPA-GMP を Intel Compiler でコンパイルできる。


なお、昨日から行っている数値実験は 4800 問中 4300 問まできた。明日には hubbard に移れるかと思う。

今日の作業内容:SDPA-GMP コンパイル
今日のランチ:たちばな ちらし寿司
明日の予測作業時間:5h

0 件のコメント:

コメントを投稿