[SCore-users-jp] OpenMP-MPI

kameyama @ pccluster.org kameyama @ pccluster.org
2002年 7月 10日 (水) 14:54:52 JST


亀山です.

本格的には Omni を optional compiler として
mpi を作り直す必要があるのですが...

In article <200207100538.AA00207 @ crcpc79.crc.co.jp> iriya @ crc.co.jp (入谷 佳一) wrotes:
> >まずは、mpicc -v でリンクするパスをしらべて、omccでコンパイル、
> >必要なライブラリをリンクすればできるとおもいます。
> mpif77 -v で出てきたリストから,mpiのライブラリをリンクすると
> 以下のようになり,リンクに失敗してしまいました.
>  
> ompf77 -o a.out a.f  -static -fconserve-space \
>   -L/opt/score5.0.0/mpi/mpich-1.2.0/i386-redhat7-linux2_4/lib \
>   -lmpich -lmpichf
> 
> Compiling 'a.f'...
>   MAIN a:
> a.o: In function `__Omni_FortranEntryPoint':
> a.o(.text+0xb0): undefined reference to `mpi_init_'
> a.o(.text+0xcd): undefined reference to `mpi_comm_rank_'
> a.o(.text+0xea): undefined reference to `mpi_comm_size_'
> a.o(.text+0x155): undefined reference to `mpi_wtime_'
> a.o(.text+0x17d): undefined reference to `mpi_barrier_'
> a.o(.text+0x18a): undefined reference to `mpi_finalize_'
> collect2: ld returned 1 exit status
> Error 1

Omni の Fortran compiler は Fortran の呼び出しに _ を使用するようです.

>          U MPI_Init
> 00000000 W mpi_init__
> 00000000 T pmpi_init__

これに対して, default の gcc の mpi は Fortran の呼び出しに __ を
使用します.

この件に関しましては
    /opt/score5.0.0/mpi/mpich-1.2.0/i386-redhat7-linux2_4/lib
の代わりに
    /opt/score5.0.0/mpi/mpich-1.2.0/i386-redhat7-linux2_4_gnu1ul/lib
(g77 で -second-underscore option をつけたときの環境です.)
を使用すればクリアできると思います.

更に SCore 関連の library
    -L/opt/score5.0.0/lib/i386-redhat7-linux2_4 -lscoreusr -lscorecommon -lpm -lscwrap
も指定する必要があります.

                       from Kameyama Toyohisa



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