[SCore-users-jp] Omni OpenMP Compiler

Hayashi Masaki hayashi @ hpc.cs.ritsumei.ac.jp
2004年 6月 17日 (木) 13:26:24 JST


メーリングリストの皆様

立命館大学の林と申します。いつもお世話になっております。

現在Redhat Linux 8.0+SCore5.6.1でPC Clusterを構築しているのですが
Omni OpenMPコンパイラだけ正しくインストールできません。
SCoreドキュメントとメーリングリストを参考に
再コンパイルしました。

Omni OpenMPコンパイラをインストールするためJDKをダウンロードし
# mkdir /usr/java
# cd /usr/java
# tar xjf /opt/score.work/j2sdk-1.3.1-FCS-linux-i386.tar.bz2
と /usr/java に展開しました。
そして /opt/score/score-src/adm/config/site ファイルに
JAVA_HOME = /usr/java/j2sdk1.3.1
JAVA = $(JAVA_HOME)/bin/java
と記入し
# cd /opt/score
# for tarfile in /opt/score.work/*.tar.gz
# do
# tar xzf $tarfile
# done
# cd score-src
# ./configure --option=site
# make
と行い、その他すべての設定をし、通信テストも行いました。
最後にOmni OpenMP コンパイラのテストをしたところ、
Warning: -ms16m not understood. Ignoring.
Warning: -mx1024m not understood. Ignoring.
Exception in thread "main" java.lang.InternalError: unexpected exception during linking: java.lang.ClassNotFoundException: exc.object.XobjectFile
   at 0x4028115f: java.lang.Throwable.Throwable(java.lang.String) (/usr/lib/libgcj.so.3)
   at 0x4027408e: java.lang.Error.Error(java.lang.String) (/usr/lib/libgcj.so.3)
   at 0x40281542: java.lang.VirtualMachineError.VirtualMachineError(java.lang.String) (/usr/lib/libgcj.so.3)
   at 0x40275a92: java.lang.InternalError.InternalError(java.lang.String) (/usr/lib/libgcj.so.3)
   at 0x40273146: java.lang.ClassLoader.resolveClass0(java.lang.Class) (/usr/lib/libgcj.so.3)
   at 0x4024190b: _Jv_PrepareClass(java.lang.Class) (/usr/lib/libgcj.so.3)
   at 0x40260568: java.lang.ClassLoader.linkClass0(java.lang.Class) (/usr/lib/libgcj.so.3)
   at 0x40273073: java.lang.ClassLoader.resolveClass0(java.lang.Class) (/usr/lib/libgcj.so.3)
   at 0x4025e99c: java.lang.Class.initializeClass() (/usr/lib/libgcj.so.3)
   at 0x4025d224: java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/libgcj.so.3)
   at 0x4025d2bf: java.lang.Class.forName(java.lang.String) (/usr/lib/libgcj.so.3)
   at 0x402c60a0: gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.3)
   at 0x40267fdc: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/libgcj.so.3)
   at 0x4023478c: _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/libgcj.so.3)
   at 0x08048900: __gcj_personality_v0 (OMPC_DIR=/opt/score/../omni/lib/openmp/gcc)
   at 0x420158d4: __libc_start_main (OMPC_DIR=/opt/score/../omni/lib/openmp/gcc)
   at 0x080486c1: _Jv_RegisterClasses (OMPC_DIR=/opt/score/../omni/lib/openmp/gcc)
というエラーが出て実行モジュールが作成されませんでした。

その後、メーリングリストを参照したところ
同じエラーで質問されている方がいらっしゃったので
> In article <200405111010.AA02961 @ f4ej.strad.ssg.fujitsu.com> iwa @ strad.ssg.fujitsu.com wrotes:
> > 1./usr/javaにてtar -jvh j2sdk-1.3.1-FCS-linux-i386.tar.bz2
> > 2./opt/score/score-src/adm/config/siteを作成
> >      JAVA_HOME = /usr/java/j2sdk1.3.1
> >        JAVA = $(JAVA_HOME)/bin/java
> > 3.tar xzf /mnt/cdrom/score.source/score-5.4.0.omni.tar.gz
> > 4./opt/score/score.sourceでconfigure
> 
> ここで,
>      % coinfigure --option site
> と site ファイルを使用することを教えてあげてください.
> あと SCore の下だけ make install しないと /opt/score/*
> に反映されません.
> Omni の make だけでしたら
>     /opt/score/lib/build/config/i386-redhat8-linux2_4
> に追加するだけでもよいと思います.
> 
> で, これを行っていないので...
> 
> > # omcc -omniconfig=scash -o laplace_omp laplace_omp.c
> > を実施したところ
> > omcc -omniconfig=scash -o laplace_omp laplace_omp.c
> > Warning: -ms16m not understood. Ignoring.
> > Warning: -mx1024m not understood. Ignoring.
> > Warning: -o not understood. Ignoring.
> > Exception in thread "main" java.lang.InternalError: unexpected exception duri
> > ng
> > linking: java.lang.ClassNotFoundException: exc.object.XobjectFile
> >    at 0x4028115f: java.lang.Throwable.Throwable(java.lang.String) (/usr/lib/l
> > ibgcj.so.3)
> 
> j2sdk ではなく, /usr/bin にあった gcj を使用しようとしているようです.
> 
> > そこで
> > 教えて欲しいのですが、SCore5.4.0のCDに入っているomni openmpと整合性の合うJDK
> > は、
> > j2sdk-1.3.1-FCS-linuxで問題ないのでしょうか?
> 
> 多分問題ないと思います.
> ちなみに, SCore 5.4.0 の binarry をつくるときに私用したのは
> j2se 1.3.1_02 です.
この対処法を実施しました。
その後、Omniのコンパイラテストを行ったのですが、
それでもはやりエラーを出し実行モジュールができませんでした。
Omniのsmake、smake installでJAVAのリンクが原因であろうエラーが出ました。

…
creating Cxx-front/Makefile
sed: can't read ./Cxx-front/Makefile.in: No such file or directory
…
creating tests/F-test/Makefile
sed: can't read ./tests/F-test/Makefile.in: No such file or directory
creating tests/F-test/OMP-test/Makefile
sed: can't read ./tests/F-test/OMP-test/Makefile.in: No such file or directory
…
for i in ./include exc-tools-java/exc   lib/libompsm lib/libompc
lib/libf2c lib/libtlog lib/runtime C-front Cxx-front F-front
tools/driver tools/wrapper tools/tlogview tools/jmpstat tests doc; do \
        (cd $i; LANG=C LC_ALL=C make); \
done;
rm -f exc.jar
(cd object/Xcodegen; make)
make[2]: Nothing to be done for `all'.
for i in object block openmp util flow tea ../shm ../st ; do \
        (cd $i; CLASSPATH=.:..:../..:$CLASSPATH /usr/bin/javac *.java); \
done
./Xcode.java:4: Class `exc.object.Xcode' already defined in Xcode.java:4.
   public class Xcode {
                ^
1 error
rm -f exc.jar
(cd ../ ; \
        rm -f .classes ; \
        find ./exc ./shm ./st -name '*.class' -print > .classes ; \
        sh ../utils/genjar exc.jar `cat .classes` ; \
        mv exc.jar exc ; \
        rm -f .classes ;)
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: *** No targets.  Stop.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.

どのように行えば正しくOmni OpenMPコンパイラが
インストールすることができるでしょうか?
よろしくお願いいたします。

--
Ritsumeikan Univ. HPC Laboratory
Hayashi Masaki 
hayashi @ hpc.cs.ritsumei.ac.jp




SCore-users-jp メーリングリストの案内