Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Groups
    • Search
    • 官网
    1. Home
    2. mz
    3. Posts
    M
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Posts made by mz

    • scalapack链接缺少_gfortran_transfer_xxxx的问题

      使用这条命令链接scalapack时,mpif90 -hybrid source.o -o test ./libscalapack.a -lxMath_manycore -lgfortran(libscalapack.a来源于路径/usr/sw-mpp/apps/share/lib/)
      ,有如下报错:

      mpif90 -hybrid source.o -o test ./libscalapack.a -lxMath_manycore -lgfortran
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_integer_write'
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_integer_write'
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_integer_write'
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_integer_write'
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_character_write'
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_character_write'
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_integer_write'
      ./libscalapack.a(pxerbla.o): In function `pxerbla_': undefined reference to `_gfortran_transfer_integer_write'
      collect2: ld returned 1 exit status
      

      使用nm /usr/sw-mpp/swcc/sw5gcc-binary/lib | grep gfortran_trasnfer的结果如下,

      $ nm libgfortran.a | grep _gfortran_transfer
      0000000000003264 T slave__gfortran_transfer_array
      00000000000030fc T slave__gfortran_transfer_character
      00000000000031a0 T slave__gfortran_transfer_complex
      0000000000002ef0 T slave__gfortran_transfer_integer
      0000000000003058 T slave__gfortran_transfer_logical
      0000000000002f94 T slave__gfortran_transfer_real
      

      可见,libgfortran.a的确并未包含上面缺失的函数。

      所以,想请教一下大家,这个问题该怎样解决?是1) 需要更换编译器,还是2) 有额外的fortran库包含这些函数,或者是3) 我使用的libscalapack.a的版本不对?

      感谢各位同行以及技术支持的老师们。

      posted in 语言编译
      M
      mz
    • allshare模式下开pthread调用xMath运行时报错?

      在allshare模式下仅仅开1个pthread,在pthread中调用xMath
      链接命令是:mpif90 -hybrid xxxxxxx -lstdc++ -lm -lm_slave -lxMath -allshare -lpthread
      bsub命令是:bsub -b -I -m 1 -p -q q_sw_share -host_stack 1024 -sw3run ./sw3run-all -sw3runarg "-a 1" -cross_size 28000 -n 1 -cgsp 64 ./app
      报错信息为:
      AHTREAD-LIB:Assertion Failed at file:athread_num_threads.c line:66
      ::the new thread number 64 is more than the max thread number 0 can be started!

      如果使用相同的代码,链接纯主核的blas、lapack则没有问题。是不是对pthread + athread的支持不够完善呢,这样的问题该怎样解决?感谢指点。

      posted in 技术交流区
      M
      mz
    • RE: 请问如何在C++的代码中链接xMath库?

      @段晓辉 在 请问如何在C++的代码中链接xMath库? 中说:

      -lxMath -lffio -lfortran

      谢谢指点。我改写了makefile,但是报了这样的错
      sw5CC -hybrid xxxxxxxxxxx -lffio -lfortran -lm -lm_slave -lxMath
      CC ERROR: cannot exec /usr/sw-mpp/swcc/sw5gcc-binary/bin/sw5g++: No such file or directory
      这该怎么解决呢?

      posted in 技术交流区
      M
      mz
    • 请问如何在C++的代码中链接xMath库?

      需要在C++的代码中使用xMath库,其中调用xMath的函数已经用C改写了,使用mpiCC -hybrid链接会报如下图所示的错误0_1547012826800_微信图片_20190109134619.png

      在xMath的用户手册中,说需要使用sw5f90 -hybrid链接。这在C的情况下是正常的,但是在C++的情况下不适用。
      0_1547013056799_微信图片_20190109134956.png

      请问大家有C++代码使用xMath的经验吗?感谢指点。

      posted in 技术交流区
      M
      mz
    • 1 / 1