انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: noyan1367 در 03 تیر 1397، 01:23 بظ
-
درود
دوستان من یک برنامه ای رو میخوام کامپایل کنم که ازmpif90 استفاده میکنه، کامپایلر فورترن دیفالت mpif90 کامپایلر gfortran هست. زمان کامپایل شدن متاسفانه gfortran نمیتونه کامپایل کنه و من باید از ifort استفاده کنم. کلی سرچ کردم ولی به نتیجه ای نرسیدم. کسی میتونه راهنماییم کنه؟
آدرس سورس برنامه:
http://mare2dem.ucsd.edu/?page_id=108 (http://mare2dem.ucsd.edu/?page_id=108)
تو فایل Makefile هم که اینطور هست:
#
# TSCC: Triton Shared Compute Cluster (New Spring 2013). Replaces "triton"
#
# Using intel and openmpi.
#
ifeq "$(CLUSTER_LC)" "tscc"
FC = mpif90
FFLAGS = -O2 -fpp -m64
CC = mpicc
CFLAGS = -O2
# You only need these commands if you are compiling the Metis and SuperLU libs in MARE2DEM/Source/SuperLU and /Metis:
ARCH = xiar
ARCHFLAGS = ruv
RANLIB = ranlib
BLASDEF = -DUSE_VENDOR_BLAS
MKLPATH=${MKL_ROOT}/lib/intel64/
BLASLIB = -L$(MKLPATH) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
SUPERLU_CDEFS = -DAdd_ # -DAdd_ or -DNoChange, this is for the stupid underscore difference between C and Fortran
# use nm <objectfile.o> to see how the symbol endings in the c and fortran files
endif
به جای mpif90 هم که قرار میدم ifort باز به درستی کامپایل نمیشه.
-
«نمیتونه کامپایل کنه» اطلاعات کافیای نیست که بتونیم بگیم مشکل چیه. اطلاعات دقیقتری ارائه بدید.
-
چون کامپایلر دیفالت gfortran هست این خطا رو میده.
gfortran: error: unrecognized command line option ‘-fpp’; did you mean ‘-cpp’?
Makefile:66: recipe for target 'icopy.o' failed
make[3]: *** [icopy.o] Error 1
make[3]: Leaving directory '/home/mohammad67/Desktop/Source/libraries/scalapack-2.0.2/TOOLS/LAPACK'
Makefile:52: recipe for target 'slapackaux' failed
make[2]: *** [slapackaux] Error 2
make[2]: Leaving directory '/home/mohammad67/Desktop/Source/libraries/scalapack-2.0.2/TOOLS'
Makefile:71: recipe for target 'toolslib' failed
make[1]: *** [toolslib] Error 2
make[1]: Leaving directory '/home/mohammad67/Desktop/Source/libraries/scalapack-2.0.2'
mpif90 -O2 -fpp -m64 -c -o kdtree2.o kdtree2.f90
gfortran: error: unrecognized command line option ‘-fpp’; did you mean ‘-cpp’?
Makefile:369: recipe for target 'kdtree2.o' failed
make: *** [kdtree2.o] Error 1
-
درود بر تو
۱. برنامه mpif90 دیگه از دور خارج شده، به جاش از mpifort استفاده کن.
۲. من پیج، مربوط به mpif90 رو بخون:
$ man mpif90
۳. دستور زیر رو توی ترمینال بزن و ببین که mpif90 به چی وصل شده، به احتمال ۹۹ درصد نوشته، gcc:
$ mpif90 -v
۴. این رو هم بخون:
$ man mpifort
-
برای mpif90 و mpifort آموزشی وجود نداره. man که میزنی چیزی نمیاره.
خروجی mpif90 -v هم این هست:
Using built-in specs.
COLLECT_GCC=/usr/bin/gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.3.0-16ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --with-as=/usr/bin/x86_64-linux-gnu-as --with-ld=/usr/bin/x86_64-linux-gnu-ld --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)
-
درود بر تو
۱. برنامه mpif90 دیگه از دور خارج شده، به جاش از mpifort استفاده کن.
۲. من پیج، مربوط به mpif90 رو بخون:
$ man mpif90
۳. دستور زیر رو توی ترمینال بزن و ببین که mpif90 به چی وصل شده، به احتمال ۹۹ درصد نوشته، gcc:
$ mpif90 -v
۴. این رو هم بخون:
$ man mpifort
واسه mpifort از دستور which که استفاده میکنم خروجی میده که کجاست ولی وقتی تو Makefile میذارمش پیداش نمیکنه ](*,) ](*,)
mohammad67@ubuntu:~$ which mpifort
/usr/bin/mpifort
جالب اینکهmpicc مثل پلنگ کار میکنه. ](*,) ](*,) ](*,)
-
متاسفانه اطلاعات کافی نمیدید که بتونیم کمکتون کنیم و مثلا تنها میگید «پیداش نمیکنه». پیشنهادم اینه که ابتدا این لینک رو به صورت کامل بخونید و دوباره سوال خودتون رو بیان کنید: چگونه هوشمندانه سوال کنیم (http://wiki.ubuntu.ir/wiki/Smart_Questions)
-
درود
من اروری که اتفاق افتاده رو گذاشتم،دیگه چی باید میذاشتم. شما اصلا اون رو نگاه نکردید. :o
-
چون کامپایلر دیفالت gfortran هست این خطا رو میده.
gfortran: error: unrecognized command line option ‘-fpp’; did you mean ‘-cpp’?
Makefile:66: recipe for target 'icopy.o' failed
make[3]: *** [icopy.o] Error 1
make[3]: Leaving directory '/home/mohammad67/Desktop/Source/libraries/scalapack-2.0.2/TOOLS/LAPACK'
Makefile:52: recipe for target 'slapackaux' failed
make[2]: *** [slapackaux] Error 2
make[2]: Leaving directory '/home/mohammad67/Desktop/Source/libraries/scalapack-2.0.2/TOOLS'
Makefile:71: recipe for target 'toolslib' failed
make[1]: *** [toolslib] Error 2
make[1]: Leaving directory '/home/mohammad67/Desktop/Source/libraries/scalapack-2.0.2'
mpif90 -O2 -fpp -m64 -c -o kdtree2.o kdtree2.f90
gfortran: error: unrecognized command line option ‘-fpp’; did you mean ‘-cpp’?
Makefile:369: recipe for target 'kdtree2.o' failed
make: *** [kdtree2.o] Error 1
این اروری هست که اتفاق افتاده. دقیقا بعد از اینکه شما گفتچرا اطلاعات کامل نمیدید گذاشتم.
-
من اروری که اتفاق افتاده رو گذاشتم،دیگه چی باید میذاشتم. شما اصلا اون رو نگاه نکردید. :o
خب جواب اون رو که سلمان داد. همینطوری که گفته fpp- توی پارامترهای gfortran نیست و باید اون رو با مطالعهٔ Man Page خود gfortran با پارامترهای درست جایگزین کنید.
-
https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/520467
invoke the Fortran preprocessor (aka, fpp)
"-fpp"
man gfortran
-nocpp
Enable preprocessing. The preprocessor is automatically invoked if
the file extension is .fpp, .FPP, .F, .FOR, .FTN, .F90, .F95, .F03
or .F08. Use this option to manually enable preprocessing of any
kind of Fortran file.
To disable preprocessing of files with any of the above listed
extensions, use the negative form: -nocpp.
The preprocessor is run in traditional mode. Any restrictions of
the file-format, especially the limits on line length, apply for
preprocessed output as well, so it might be advisable to use the
-ffree-line-length-none or -ffixed-line-length-none options.
به جای fpp از cpp استفاده کن.
-
درود
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
-
درود بر تو
۱. برنامه mpif90 دیگه از دور خارج شده، به جاش از mpifort استفاده کن.
۲. من پیج، مربوط به mpif90 رو بخون:
$ man mpif90
۳. دستور زیر رو توی ترمینال بزن و ببین که mpif90 به چی وصل شده، به احتمال ۹۹ درصد نوشته، gcc:
$ mpif90 -v
۴. این رو هم بخون:
$ man mpifort
درود سلمان جان
ببین الان خروجی mpif90 و mpifort میذارم ببینی دوتاش دارن ازgfortran استفاده میکنن. من الان میخوام این تغییر داده بشه به ifort.همین. مچکر.
mohammad67@ubuntu:~/Desktop/Source$ mpif90 -show
gfortran -I/usr/lib/x86_64-linux-gnu/openmpi/include -pthread -I/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr//lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
mohammad67@ubuntu:~/Desktop/Source$ mpifort -show
gfortran -I/usr/lib/x86_64-linux-gnu/openmpi/include -pthread -I/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr//lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
-
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
دوباره بجای اینکه اطلاعات کامل بدید، میگید «درست نمیشه»! اون لینکی که دادم رو بخونید احتمالا بسیار مفید باشه.
-
با سلام
اول دستور زیر رو وارد کنین :
export I_MPI_F90=ifort
بعدش دستور زیر رو وارد کنین :
mpif90 -show
حالا چک کنین ببینین mpif90 رو ifort ست شده یا نه ؟
اگه ست شده بود این خط export رو به فایل .bashrc تون هم اضافه کنین
-
اینو تو سرچ های اولیه که کردم انجام دادم ولی نشد. الانم باز انجام دادم ولی نشد.
mohammad67@ubuntu:~/Desktop/Source$ export I_MPI_F90=ifort
mohammad67@ubuntu:~/Desktop/Source$ mpif90 -show
gfortran -I/usr/lib/x86_64-linux-gnu/openmpi/include -pthread -I/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr//lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
-
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
دوباره بجای اینکه اطلاعات کامل بدید، میگید «درست نمیشه»! اون لینکی که دادم رو بخونید احتمالا بسیار مفید باشه.
شما مو میبینی ولی دوستان پیچش مو ;) ;)
-
اینو تو سرچ های اولیه که کردم انجام دادم ولی نشد. الانم باز انجام دادم ولی نشد.
عجیبه من روی نسخه Intel Parallel Studio XE 2018 با لایسنس قانونی این مشکل رو ندارم :
$ mpif90 -show
gfortran -I/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/include/gfortran/5.1.0 -I/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/include -L/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib/release_mt -L/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib -lmpifort -lmpi -lmpigi -ldl -lrt -lpthread
$ export I_MPI_F90=ifort
$ mpif90 -show
ifort -I/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/include/gfortran/5.1.0 -I/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/include -L/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib/release_mt -L/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib -lmpifort -lmpi -lmpigi -ldl -lrt -lpthread
شما خروجی این دستور رو بذارین تا روی این مشکل دقیق تر بشیم:
mpif90 -fc=ifort -show
شما مو میبینی ولی دوستان پیچش مو ;) ;)
نه دوست عزیز حق با معینه.
شما اطلاعات کافی به ما نمی دین مثلاً اطلاعات زیر مهم هستن :
1.نسخه ی Intel Parallel Studio XE شما
2.نحوه ی نصب
3.نحوه ی ست کردن فایل های اجرایی تا سیستم اون ها رو بخونه
مثلاً شما برای اینکه درست ست بکنین باید خطی مشابه خط زیر رو توی .bashrc تون قرار بدین :
source /opt/intel/compilers_and_libraries/linux/bin/compilervars.sh intel64
4.خروجی خطایی که موقع کامپایل کردن دریافت می کنین
-
درود
خروجی کد:
mpif90 -fc=ifort -show
این هست:
mohammad67@ubuntu:~$ mpif90 -fc=ifort -show
gfortran -fc=ifort
نسخه من:
parallel studio xe 2013 sp1 update3
نحوه نصب با استفاده از ترمینال و در روت.
خروجی خطا زمان کامپایل شدن رو هم گذاشتم.
مشکلی که با ست کردن داشتم تو این تاپیک حل شد.
https://forum.ubuntu-ir.org/index.php/topic,148084.0.html (https://forum.ubuntu-ir.org/index.php/topic,148084.0.html)
-
با توجه به اینکه من به نسخه ی شما دسترسی ندارم خودم نمی تونم چیزی رو تست کنم در نتیجه ازتون می خوام خروجی چند تا چیز رو بدین.
اول خروجی این دستور رو بدین :
cat `which mpif90`
-
ممنون بابت پیگیری :)
اگه منظورت اینه:
mohammad67@ubuntu:~$ which mpif90
/usr/bin/mpif90
و اون چیزی که خودت نوشتی خروجیش اینه:
mohammad67@ubuntu:~$ cat `which mpif90`
ELF>'@HQ@8 @@@@��888�<�< XLXL XL �� hLhL hL TTTDDP�td(:(:(:\\Q�tdR�tdXLXL XL ��/lib64/ld-linux-x86-64.so.2GNUGNU�5��k�c�����Ϧ���cf-��
P
8�-17BE��ĉ��ݣk���|��ȬK���qXĹ�@���9�����(��Tt!�� �j4y8[�����/ n�yM��X=L)�����]?> 1�j"�P �!�P�!�P��P � P ��6�P ��P
(c�P.�5��Plibopen-pal.so.20_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableopal_show_help_stringopal_argv_delete_initopal_finalize_utilopal_argv_joinopal_show_helpopal_install_dirs_expandopal_basenameopal_install_dirsopal_argv_append_nosizeopal_argv_splitopal_util_keyval_parse_finiopal_fewopal_argv_copyopal_argv_insertopal_os_pathopal_argv_freeopal_path_findvopal_init_utilopal_argv_countopal_strerrorlibpthread.so.0__errno_locationlibc.so.6__printf_chkexitstrncmpregexecputsregfree__stack_chk_failputcharreallocstrdupstrlen__fprintf_chkmallocgetenvregcompstderr__cxa_finalize__xstatstrcmp__asprintf_chk__libc_start_main__environ_edata__bss_start_end_IO_stdin_usedGLIBC_2.2.5GLIBC_2.3.4GLIBC_2.8GLIBC_2.4/usr/lib/x86_64-linux-gnu/openmpi/lib�ui�XL(`L�P �O �O �O �O )�O , P 1�P 4�P 8�P 6�N �N �N �N �N �N �N�N �N
�N
�N
OO O O O (O 0O 8O @O HO PO XO `O hO pO xO �O �O !�O "�O #�O $�O %�O &�O '�O (�O *�O +H�H��> H��t��H���5J= �%L= @�%J= h������%B= h������%:= h������%2= h������%*= h������%"= h������%= h������%= h�p����%
= �`����%= h �P����%�< h
�@����%�< h
�0����%�< h
�����%�< h�����%�< h������%�< h������%�< h������%�< h������%�< h������%�< h������%�< h������%�< h������%�< h�p����%�< h�`����%�< h�P����%z< h�@����%r< h�0����%j< h� ����%b< h�����%Z< h�����%R< h������%J< h ������%B< h!������%:< h"������%2< h#������%*< h$������%"< h%������%< h&������%2< f�AWAVAUATUSH��H�|$<H�t$0H�|$<H�t$0�D$LH�D$PdH�%(H��$81�H�D$X�������A��t,H��$8dH3
%(D����H< L��"H��"H�D$I��L��1�������H�|$`H����H�5���������D$�QH�|$`������|$<D�5; H�L�$E��L���E1�1�H��; H�<(H�����%���������1�L�,�-fDE1�1�1�L��L���f�����L��tyH������I9�tQH�J; L��H�(H�4�������t��$9D$<�d: ������H�D$0H��:���f.�A��H�ŨD;56: �:����������$9D$<D�5: �nMc�H�-�: IiިH�L�cL�k(M��t[M��tVH��M��L���L��1������H�|$`����H��I���r H�|$`�
���H�{8H��t�����L���%���H�C8Hc�9 H�5� Hi��H�H�}H�U@�lHci9 Hi��H: H�p0H�xH�PH�FHcC9 H�5� Hi��H�9 H�xH�PX�Hc9 H�5� Hi��H�9 H�xH�P`��Hc�8 HiۨH�9 H���H���0H�5C H����������H�= H�E1�L�D$�H�5" �39 H�|$PA��C���H�|$X�9���H�D$H��H�������1��=f8 �@D�l$H� 9 H�H�;H��t�����H�H��t�����H�{8H��t�}���H�{H��t�o���H�{H��t�a���H�{ H��t�S���H�{(H��t�E���H�{0H��t�7���H�{@�����H�{H�����H�{P�|���H�{X�s���H�{`�j���H�{h�a���H�{pH��t�����H�{xH��t�����H���H��t�����H���H��t�����H���H��t�����H���H��t�����H���H��t�����A��H�ŨD;-&7 �����H�=�7 �l����g�����DE�����H�L$`H�=�7 H� �1��]���H�|$`�3���D�d$D������H�L$H�=j7 H��I���1��$��������E�������D�5�6 E��D�5�6 �r���H�|$0� � ���H��I��E1�H�L$�H�5�H�=�1���6 H��������������
$9L$<�(6 ���������놀}twH���1�1�H��1��q���H��$�H�ƿ�|�����tIHc�5 H�H�=%j�H�L$ H�5`Hi��Hu6 L���L�1��B6 _AXH�D$0H��q���H��H�D$X��������D$L�� H�D$XA�<L�-L�%1��D$H�$H�D$L�D$H�DL��E��I��@H�T$XHcŹL��H��H����tMH�5�H���������t5H�5��H���������tH�5��H���i���������H��L�����(H�5r�H���9������
H�5h�H���������iH�5K�H���������MH�5A�
H����������H�5�H�����������H�5��H����������gH�5��H���u������H�5��H���Y�������H�5��
H�5��H�����������H�5�����5��
H�����������H�5]H����������H�5@����H�H���y�������A��H�4$H�|������5�����9l$L������|$L��E��I��t7A��t�|$t*A����$M���H�t$XH�|$L�����A�������E��A���������H�D$PH�H�|$P�X�H�5�=~1�A���2 �9���M�����M���0�x���H�5oH���6�������H�5[H����������H�5GH���������H�53H����������XH�5H����������H�5H����������
H�H�����������H�5�H�����������H�5�H���~�������H�5�H���g�������H�5�H���P�������H�5�H���9�����tcH�5�H���&�����tPH�5�H��������t=H�5rH��������t*H�5lH���������tH�5gH����������WA�������Hc�0 � Hi��H/1 H�x8�����H��H�D$P�����A������A����D$�~���H�|$`�����H�/M��L���L��1��M���H�|$`�S���H��I���R���H�|$`�]����g���A����D$�%���D��H�\$P��t1Hc�/ D��H��Hi��H�0 H�PP�����H�|$P�����A��H�T$XD��H�������H�|$P�����A�t-Hc�/ H�߉�HiҨH20 H�R@�Y���H�|$P�������t-HcX/ H�߉�HiҨH0 H�RH�(���H�|$P�~���A�� �=A��H�|$P��� E1������H�������H�|$P�n���Hc�. H�5
E1�Hi��H�/ H�x`�� H�|$P�<���Hc�. H�5�E1�Hi��He/ H�xX�� H�|$P�
���Hc�. H�5�E1�Hi��H3/ H�x@�Z H�|$P�����Hc]. jH�5~H�=�1�Hi��H�. �L�H L�@H�D$@H1������H��H��Y^tH�5��H��1�����H���W���E1�H�|$P�b���H�D$0H�=�. H�+I�ؾA�H1��?���H�D$0H�=c. H��H1�����H�|$P�
���Hc�- H�5�H�=�E1�1�Hi��H+. L�@H�D$0H1��(���H��H���7����P���H��- H�?1�1�����H��H����H�D$PH�=kE1��H�A�H1���- �w���H�|$P��_���Hc�, ��H��HiҨH�- H�RX�����H�|$P�
���A��Hc�, 1�1�Hi��H^- H�PxH���1������L��$�H�ƿI��L��L�L������$Hcf, 1�1�Hi��H- H�PpH���1������L�LH�ƿH��L�������A��D�$tP��t E���L���d���H���\���Hc�+ D��H��Hi��H�, H�Ph�����H�|$P���������A�ƀ��E��t�L������H���
���Hc�+ D��H��Hi��HO, H�P`�v�����A�<�����A��@�����A�π�����H�D$PH�8�����H�D$PL��H�H�|$P�����T$`A��A����A�L$������uhA��H�|$P������ �����H��H���^���H�|$P�l���H�=�+ H�vI��L���1��T���L���,���H���$��������H�|$P� �[����|$`H��H�-=+ �8���H�I���jH�D$`I��H�5�H�=�H1���XZ�`�����A���1����΅�A��u����#����B����K���H�5H���l��������;-t A���D$�D$�G������J��������H�D$ D�|$(�l$,�D$ 9�) ��Hil$ �H��* H�<(H�����
���E1��D$8D9|$8~{H�f* L��H�(J�4��������ufE1�1�1�H��L��I���7�����t+L���[�����H�4$H�|���A������������L��D�|$(�l$,�'����m���H�D$ �:���D�|$(�l$,�D$�]��f.�]�@f.�H�=�( H�5�( UH)�H��H��H��H��?H�H��tH�Q( H��t
]��f�]�@f.��=) u/H�='( UH��t
H�=*( ������H�����( ]����fDUH��]�f���fDAVAUATUSH��dH�%(H�D1�I��H���H��L�������H�<$�����H��I��t*H�<$�����I�<$H��t�+���� L�������I�$��H�<$��I��H�پL��1��c���H�<$�j���H��I��u�H�<$�y����=�������Df.��' ATI��USH�=�' �h��H�H���-�& H��H��H�������H��X���H�v' �Q���H�H�H�H�C8H�CH�CH�C H�C(H�C0����H�C@H������H�CHH������H�CPH������H�CXH������H�C`H������M��H�ChH�H�CpH�CxHǃ�Hǃ�Hǃ�Hǃ�Hǃ�tA�<$uH�;�����H��-�% []A\�@�;L�������H��Hcq% H��H��H�& H��H�8�����HcO% ��H�
�H�
�H��% H�<�H������H��[]A\�����@f.�AVAUATUSL�'M��t}H��I��E1��0DH�H�5�
�1�A�H������H�L�#M��t=L�������L��H��L��H���<�����u�E��t�� � ���L�������H����@E��u []A\A]A^�[]A\A]A^�
������ATL�%Z
USH��H��H���L��H��dH�%(H�D1�������)Ћ($ ����������H�=
� H����uRH��t-Hc�# H��H��H��H��$ H���c���H��H�DdH3%(�JH��[]A\�H�=�� H����uEH��t�Hc�# H��H��H��H�7$ H�������H�C8�����u\H���T�����f�H�=lH����ueH���l���Hc5# H��H��H��H��# H�������H�C�A���f�1�������H��L��������)��������@H�=�
H������H�={H������H�=�H������H�=�H�����-H�=�
�H�����_H�=�
H������H���O���Hc" H��H��H��H��" H�������H�Cp�$���@H������Hc�! H��H��H��H��" H���M���H�C �����@� H�������I��Hc�! H�R" H��H��H��H�x@�����Hc~! ��H�
�H�
�H�%" H�|�@L���H���HcY! H�-
" H��H��H�D�H�X@H�;H��t%��{���H�;H��H9��{���H�+H�H�;H��u�L��������7���� H���"���I��Hc� L��! H��H��I��H�xH����Hc� ��H�
�H�
�H�t! H�|�HL�������Hc� L�Y! H��H��I��H�XHH�;H���q���D�����H�;H��H9������H�+H�H�;H��u��C���� H���r���I��Hc@ L�� H��H��I��H�xP�l���Hc ��H�
�H�
� H��H��I��H�XPH�;H�������D����H�;H��H9�����H�+H�H�;H��u������� H�������I��Hc� H�5A H��H��H��H�xX�����Hcm ��H�
�H�
�H� H�|�XL���7���HcH H�=� H��H��H��H�XXH�;H������D�c���H�;H��H9��c���H�+H�H�;H��u������� H������H��Hc�� H��H��H��H�x`�
���Hc� H�
�H�
�H�f H�|�`H�ډ������H���O��������H�=
�H������H�������Hck H��HiۨH �����H�Cx�|���� H���g���H��Hc5 H��H��H�� H��H�xh�a���Hc H�
�H�
���Hc� H��HiۨH} �H���H��������H�5LH���������u4H�������Hc� H��HiۨH8 ����H�C������u���H�5H���������u/H�������HcJ H��HiۨH� �����H�C(�[���H�5�H���T�����u/H���?���Hc H��HiۨH� �z���H�C0����H�5�H����������H�������Hc� H��HiۨHi �����H���Hc� HiۨHH H���H�5OH���������uH�H�5E�������������H�4H��H���1��h���H�4$H�{@�����H�<$������U���H�51H���N�������Hc H�� H��HiۨH�H��tH���.����� H���H�� Hc�HiۨH�H���H�5�H��������������H��H��H���1������H�4$H�{X�����H�<$����������H�5aH���������tlH�5hH����������y���HcB H�� H��HiۨH�H��tH���i���� H���H�� Hc�HiۨH�H����6���H�=������H������Hc� H��HiۨH �
���H���Hc� HiۨH^ H�������f�AWAVI��AUATL�%� UH�-� SA��I��L)�H�H���w���H��t 1��L��L��D��A��H��H9�u�H�[]A\A]A^A_Ðf.���H�H��%s_MPI%s%s_%scompiler_argslanguagecompilerprojectpreprocessor_flagscompiler_flagscompiler_flags_prefixlinker_flagslibs_staticdyn_lib_filestatic_lib_filerequired_fileproject_shortcompiler_envcompiler_flags_env/usr/includeFortran-I%s/usr/lib-L%sopalincludedirEXPANDING!opallibdir/%s%s%s-wrapper-data.txtno-options-supporthelp-opal-wrapper.txtCPPFLAGSLDFLAGSLIBSnot supportedno-language-supportfile-not-found--showme--show--showme:command--showme:compile--showme:link--showme:incdirs-I--showme:libdirs-L--showme:libs-l--showme:version--showme:helpusage--showme:%s: unrecognized option: %s
-c-E-M-S-lpmpi-Wl,-static-Wl,--static-Wl,-Bstatic-Wl,-dynamic-Wl,--dynamic-Wl,-Bdynamic--openmpi:linkallno-compiler-specifiedno-compiler-foundspawn-failedCannot open configuration file %s
Error parsing data file %s: %s
Type '%s --showme:help' for usage.
The linkall option has failed as we were unable to find either static or dynamic libs
Files looked for:
Static: %s
Dynamic: %s
;\
������������������x���������,����d�����X���h�����zRx
�X���+zRx
�$h����FJ
�?;*3$"D���@\�����B�B�B �A(�A0�D@u
0A(A BBA
4������H�D�A �k
AE
ZAH�l����B�B�B �A(�A0��
(A BBA
A(A BB0$����� B�H�A �U0�
AAD
�X����,B�B�B �B(�A0�A8�G�m
8A0A(B BBA
��I�s�B�H�a�^�A���J�^�A�D�����eB�B�E �B(�H0�H8�M@r8A0A(B BB$���(�'��
�5XL `L ���o�� (
,
` �N ��
���o���o�
���o���o|
���ohL Vfv��������&6FVfv��������&6FVfv����P ������������35f49c6b9663bbf69bbcf3cfa61a8588e66366.debug��
�.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.data.bss.gnu_debuglink
88TT !tt$4���o��>
��XF,N���o|
|
r[���o�
�
pj`
`
-
ممنون بابت پیگیری :)
خواهش می کنم دوست عزیز
اگه منظورت اینه:
نه منظورم قسمت دوم بودش ولی همین خروجی هم به رفع مشکل خیلی کمک می کنه.
فکر می کنم مشکل شما رو تونستم تشخیص بدم ...
مشکل شما این هستش که mpif90 شما به /usr/bin/mpif90.openmpi لینک شده (/usr/bin/mpif90 -> /etc/alternatives/mpif90 -> /usr/bin/mpif90.openmpi)
و تا جایی که اطلاع دارم openmpi-bin موجود توی مخازن از ifort پشتیبانی نمی کنه (البته شما می تونین openmpi رو برای ifort کامپایل کنین):
mpif90 -fc=ifort -show
gfortran -fc=ifort
و در مورد راه حل این مشکل ...
parallel studio ها خودشون فایل های اجرایی MPI رو دارن و در نتیجه شما نیازی به استفاده از MPI های موجود توی مخازن (openmpi یا mpich) ندارید فقط کافیه PATH مربوط به اونا رو ست کنین (من نحوه ی ست کردن شما رو نیگاه کردم شما تمام ابزارها و کتابخانه های اینتل رو ست نکردین).
پس اول از همه openmpi رو پاک کنین :
sudo apt purge openmpi-bin mpich
sudo apt autoremove
بعدش mpi مربوط به اینتل رو ست کنین :
برای اینکار اول باید دنبال اسکریپت compilervars.sh روی سیستمتون باشین
و بعد از پیدا کردن این اسکریپت ، با دستوری مشابه دستور زیر اونو توی بش source کنین (با قرار دادن خط زیر توی فایل ~/.bashrc تون):
source /opt/intel/bin/compilervars.sh intel64
اگه نتونستین این فایل رو پیدا کنین یا توی ست کردن اون مشکل داشتین اول این دستور رو بزنین (یکم باید صبر کنین):
sudo updatedb
و بعدش خروجی این دستور رو بذارین :
locate compilervars.sh
حالا که شما تمام کتابخانه ها و باینری های اینتل رو ست کردین باید بتونین از mpif90 اینتل استفاده کنین :
$ which mpif90
/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin/mpif90
پ.ن:mpich موجود توی مخازن از ifort پشتیبانی می کنه و می تونین به جای mpi اینتل از اون استفاده کنین :
sudo apt install mpich
که :
$ mpif90.mpich -fc=ifort -show
ifort -Wl,-z,relro -I/usr/include/x86_64-linux-gnu/mpich -I/usr/include/x86_64-linux-gnu/mpich -L/usr/lib/x86_64-linux-gnu -lmpichfort -lmpich
-
درود
من اول که parallel studio رو نصب کردم تو ست کردن همین کارو میخواستم انجام بدم که نشد با این ارور مواجه بودم(که هنوزم هست):
mohammad67@ubuntu:/opt/intel/bin$ ./compilervars.sh intel64
./compilervars.sh: 40: /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh: [[: not found
با کلی سرچ کردن اون راه حل رو پیدا کردم که تو این تاپیک
https://forum.ubuntu-ir.org/index.php/topic,148084.msg1156506.html#msg1156506 (https://forum.ubuntu-ir.org/index.php/topic,148084.msg1156506.html#msg1156506)
گفتم که چندتا اسکریپت رو به bashrc اضافه کردمو حداقل میتونستم از کامپایلرا هرجای سیستم بودم استفاده کنم.
الان openmpi و mpich رو حذف کردم. اگه بتونید کمک کنید که اون ارور بالایی برطرف بشه فک کنم درست بشه این ست کردن ifort برای mpif90.
بازم تشکر میکنم.
-
به نظر مشکل پیچیده ای نمیاد شما خروجی این دستور رو بذارین تا بررسی کنیم کجای خط 40 ام اون فایل مشکل داره :
cat /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh
در ضمن خروجی این دستور رو هم بذارین :
source /opt/intel/bin/compilervars.sh intel64
چون . و source تفاوت هایی هم با هم دارن.
پ.ن:اگه دستور دوم خطایی ندادش نیازی به گذاشتن خروجی دستور اول نیست همون خط دوم رو توی فایل ~/.bashrc تون قرار بدین.
-
مرسی از امیدواری 8) ;)
خروجی دستور اول این هست نمیدونم صحیح هست یا نه:
mohammad67@ubuntu:~$ cat /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh
#! /bin/sh
#
# Copyright (C) 1985-2014 Intel Corporation. All rights reserved.
#
# The information and source code contained herein is the exclusive property
# of Intel Corporation and may not be disclosed, examined, or reproduced in
# whole or in part without explicit written authorization from the Company.
#
export IPPROOT=/opt/intel/composer_xe_2013_sp1.3.174/ipp
export CPATH=$IPPROOT/include:$CPATH
if [ "`uname`" = "Darwin" ]; then
# DYLD_LIBRARY_PATH is used on MAC OS*
if [ -z "${DYLD_LIBRARY_PATH}" ]
then
DYLD_LIBRARY_PATH="$IPPROOT/lib"; export DYLD_LIBRARY_PATH
else
DYLD_LIBRARY_PATH="$IPPROOT/lib:${DYLD_LIBRARY_PATH}"; export DYLD_LIBRARY_PATH
fi
DYLD_LIBRARY_PATH="$IPPROOT/../compiler/lib:${DYLD_LIBRARY_PATH}"; export DYLD_LIBRARY_PATH
if [ -z "${LIBRARY_PATH}" ]
then
LIBRARY_PATH="$IPPROOT/lib:"; export LIBRARY_PATH
else
LIBRARY_PATH="$IPPROOT/lib:${LIBRARY_PATH}"; export LIBRARY_PATH
fi
LIBRARY_PATH="$IPPROOT/../compiler/lib:${LIBRARY_PATH}"; export LIBRARY_PATH
if [ -z "${NLSPATH}" ]
then
NLSPATH="$IPPROOT/lib/locale/en_US/%N"; export NLSPATH
else
NLSPATH="$IPPROOT/lib/locale/en_US/%N:${NLSPATH}"; export NLSPATH
fi
else
if [[ "$1" != "ia32" && "$1" != "intel64" && "$1" != "ia32_intel64" ]]; then
echo "ERROR: Unknown switch '$1'. Accepted values: ia32, intel64, ia32_intel64"
exit 1;
fi
arch=$1
if [ "$arch" = "ia32_intel64" ]; then arch=intel64; fi
if [ -z "${LD_LIBRARY_PATH}" ]
then
LD_LIBRARY_PATH="$IPPROOT/lib/$arch"; export LD_LIBRARY_PATH
else
LD_LIBRARY_PATH="$IPPROOT/lib/$arch:${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH
fi
LD_LIBRARY_PATH="$IPPROOT/../compiler/lib/$arch:${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH
if [ -z "${LIBRARY_PATH}" ]
then
LIBRARY_PATH="$IPPROOT/lib/$arch"; export LIBRARY_PATH
else
LIBRARY_PATH="$IPPROOT/lib/$arch:${LIBRARY_PATH}"; export LIBRARY_PATH
fi
LIBRARY_PATH="$IPPROOT/../compiler/lib/$arch:${LIBRARY_PATH}"; export LIBRARY_PATH
if [ -z "${NLSPATH}" ]
then
NLSPATH="$IPPROOT/lib/$arch/locale/%l_%t/%N"; export NLSPATH
else
NLSPATH="$IPPROOT/lib/$arch/locale/%l_%t/%N:${NLSPATH}"; export NLSPATH
fi
if [ -d "/opt/intel/mic" ]
then
MIC_LD_LIBRARY_PATH="$IPPROOT/lib/lib/mic:${MIC_LD_LIBRARY_PATH}"; export MIC_LD_LIBRARY_PATH
fi
fi
دستور دوم خروجی نداشت.
-
اینکه دستور دوم خروجی نداشت یعنی همه چی اوکیه
شما این خط رو توی فایل .bashrc تون قرار بدین (یا اگه برای تمام یوزرها می خواین توی /etc/bash.bashrc قرار بدین):
source /opt/intel/bin/compilervars.sh intel64
بعدش توی ترمینال جدید خروجی این دستور رو چک کنین :
mpif90 -fc=ifort -show
ببینین ifort شده یا نه ؟
-
بازم ست نشده ](*,) ](*,)
mohammad67@ubuntu:~$ mpif90 -fc=ifort -show
gfortran -fc=ifort
mohammad67@ubuntu:~$ mpif90 -show
gfortran -I/usr/lib/x86_64-linux-gnu/openmpi/include -pthread -I/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr//lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
-
بازم openmpi هستش.
خروجی این دستورات رو بذارین :
cat ~/.bashrc
cat /etc/bash.bashrc
which mpif90
ll /usr/bin/mpif90
dpkg -l | grep mpi
-
اولی:
mohammad67@ubuntu:~$ cat ~/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
export CWPROOT=/home/mohammad67/Desktop/SeisUnix-master
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/mohammad67/Desktop/SeisUnix-master/bin:/home/mohammad67/Desktop/SeisUnix-master/bin
export LDLIBRARY="/opt/intel/lib"
export DYLDLIBRARY="/opt/intel/lib"
export MANPATH="/opt/intel/man"
export PATH=/opt/intel/bin:$PATH
source /opt/intel/bin/compilervars.sh intel64
دومی:
mohammad67@ubuntu:~$ cat /etc/bash.bashrc
# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
# ;;
#*)
# ;;
#esac
# enable bash completion in interactive shells
#if ! shopt -oq posix; then
# if [ -f /usr/share/bash-completion/bash_completion ]; then
# . /usr/share/bash-completion/bash_completion
# elif [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
# fi
#fi
# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then
cat <<-EOF
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
EOF
fi
esac
fi
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
export LDLIBRARY="/opt/intel/lib"
export DYLDLIBRARY="/opt/intel/lib"
export MANPATH="/opt/intel/man"
export PATH=/opt/intel/bin:$PATH
source /opt/intel/bin/compilervars.sh intel64
سومی:
mohammad67@ubuntu:~$ which mpif90
/usr/bin/mpif90
چهارمی:
mohammad67@ubuntu:~$ ll /usr/bin/mpif90
lrwxrwxrwx 1 root root 24 Jun 13 17:04 /usr/bin/mpif90 -> /etc/alternatives/mpif90*
آخری:
ii compiz 1:0.9.13.1+18.04.20180302-0ubuntu1 all OpenGL window and compositing manager
ii compiz-core 1:0.9.13.1+18.04.20180302-0ubuntu1 amd64 OpenGL window and compositing manager
ii compiz-gnome 1:0.9.13.1+18.04.20180302-0ubuntu1 amd64 OpenGL window and compositing manager - GNOME window decorator
ii compiz-plugins-default:amd64 1:0.9.13.1+18.04.20180302-0ubuntu1 amd64 OpenGL window and compositing manager - default plugins
ii g++ 4:7.3.0-3ubuntu2 amd64 GNU C++ compiler
ii g++-7 7.3.0-16ubuntu3 amd64 GNU C++ compiler
ii g++-7-multilib 7.3.0-16ubuntu3 amd64 GNU C++ compiler (multilib support)
ii g++-multilib 4:7.3.0-3ubuntu2 amd64 GNU C++ compiler (multilib files)
ii gcc 4:7.3.0-3ubuntu2 amd64 GNU C compiler
ii gcc-4.8-base:amd64 4.8.5-4ubuntu8 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-7 7.3.0-16ubuntu3 amd64 GNU C compiler
ii gcc-7-base:amd64 7.3.0-16ubuntu3 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-7-multilib 7.3.0-16ubuntu3 amd64 GNU C compiler (multilib support)
ii gcc-8-base:amd64 8-20180414-1ubuntu2 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-8-base:i386 8-20180414-1ubuntu2 i386 GCC, the GNU Compiler Collection (base package)
ii gcc-multilib 4:7.3.0-3ubuntu2 amd64 GNU C compiler (multilib files)
ii gfortran 4:7.3.0-3ubuntu2 amd64 GNU Fortran 95 compiler
ii gfortran-7 7.3.0-16ubuntu3 amd64 GNU Fortran compiler
ii libcompizconfig0:amd64 1:0.9.13.1+18.04.20180302-0ubuntu1 amd64 Settings library for plugins - OpenCompositing Project
ii libdecoration0:amd64 1:0.9.13.1+18.04.20180302-0ubuntu1 amd64 Compiz window decoration library
ii libexempi3:amd64 2.4.5-2 amd64 library to parse XMP metadata (Library)
ii libllvm6.0:amd64 1:6.0-1ubuntu2 amd64 Modular compiler and toolchain technologies, runtime library
ii libmagic-mgc 1:5.32-2ubuntu0.1 amd64 File type determination library using "magic" numbers (compiled magic file)
ii libmpich-dev 3.3~a2-4 amd64 Development files for MPICH
ii libmpich12:amd64 3.3~a2-4 amd64 Shared libraries for MPICH
ii libmpich2-3 1.4.1-4.2ubuntu1 amd64 Shared libraries for MPICH2
ii libopenmpi-dev 2.1.1-8 amd64 high performance message passing library -- header files
ii libopenmpi2:amd64 2.1.1-8 amd64 high performance message passing library -- shared library
ii liborc-0.4-0:amd64 1:0.4.28-1 amd64 Library of Optimized Inner Loops Runtime Compiler
ii libxkbcommon0:amd64 0.8.0-1 amd64 library interface to the XKB compiler - shared library
ii make-guile 4.1-9.1ubuntu1 amd64 utility for directing compilation with guile support
ii mpich 3.3~a2-4 amd64 Implementation of the MPI Message Passing Interface standard
ii openmpi-common 2.1.1-8 all high performance message passing library -- common files
ii openmpi-doc 2.1.1-8 all high performance message passing library -- man pages
ii pkg-config 0.29.1-0ubuntu2 amd64 manage compile and link flags for libraries
ii uil 2.3.8-2build1 amd64 Motif - UIL (User Interface Language) compiler
mohammad67@ubuntu:~$
-
به دلیل وجود خط زیر توی فایل ~/.bashrc تون :
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/mohammad67/Desktop/SeisUnix-master/bin:/home/mohammad67/Desktop/SeisUnix-master/bin
باینری های موجود در /usr/bin توی اولویت قرار می گیرن و بش اول اونا رو مد نظر قرار می ده و از اون جایی که openmpi و mpich هنوز کامل پاک نشدن بش اونا رو به mpi اینتل ترجیح می ده
پس با این دستورات اونا رو کامل پاک کنین :
sudo apt purge mpich openmpi-common openmpi-doc
sudo apt autoremove
حالا تست کنین ببینین خروجی این دستور چیه :
mpif90 -fc=ifort -show
-
اونارو پاک کردم.
اینم خروجی دستور:
mohammad67@ubuntu:~$ mpif90 -fc=ifort -show
Command 'mpif90' not found, but can be installed with:
sudo apt install libmpich-dev
sudo apt install libopenmpi-dev
-
به دلیل وجود خط زیر توی فایل ~/.bashrc تون :
کد: [انتخاب]
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/mohammad67/Desktop/SeisUnix-master/bin:/home/mohammad67/Desktop/SeisUnix-master/bin
باینری های موجود در /usr/bin توی اولویت قرار می گیرن و بش اول اونا رو مد نظر قرار می ده و از اون جایی که openmpi و mpich هنوز کامل پاک نشدن بش اونا رو به mpi اینتل ترجیح می ده
اینو یه نرم افزار به اسم seismicunix نصب کردم خودش اضافه کرده.
-
احتمال داره نسخه ی 13 parallel studio که شما استفاده می کنین mpi اینتل رو نداشته باشه (چون من هم به این نسخه دسترسی ندارم نمی تونم این قضیه رو چک کنم)
ولی اشکال نداره شما می تونین از mpich استفاده کنین که از ifort هم پشتیبانی می کنه :
sudo apt install mpich
حالا دیگه خروجی این دستور نباید gfortran باشه :
mpif90 -fc=ifort -show
اگه این دستور خطا داد یا کار نکرد این دستور رو چک کنین :
mpif90.mpich -fc=ifort -show
-
علی جان واقعا مچکرم.
درست شد با اون دستور.
mohammad67@ubuntu:~$ mpif90 -fc=ifort -show
ifort -Wl,-Bsymbolic-functions -Wl,-z,relro -I/usr/include/mpich -I/usr/include/mpich -L/usr/lib/x86_64-linux-gnu -lmpichfort -lmpich
ولی وقتی خالی میزنی یعنی ست نمیکنی کامپایلر رو باز gfortranنشون میده.
mohammad67@ubuntu:~$ mpif90 -show
gfortran -Wl,-Bsymbolic-functions -Wl,-z,relro -I/usr/include/mpich -I/usr/include/mpich -L/usr/lib/x86_64-linux-gnu -lmpichfort -lmpich
الان اون کد مورد نظرمو کامپایل کردم باز از gfortran استفاده کرد. ](*,)
-
خواهش می کنم دوست من.
در مورد ست کردن کامپایلر پیش فرض اول شما باید کامپایلر دلخواهتون رو export کنین :
export MPICH_FC=ifort
بعدش امتحان کنین :
mpif90 -show
در ضمن می تونین اون خط export رو توی فایل .bashrc تون قرار بدین تا همواره ifort استفاده بشه.
-
بازم تشکر میکنم ازت علی جان. :)
-
خواهش می کنم
مشکلتون حل شد ؟
-
اون مرحله رو رد کرد. بدبختانه تو آخرین مرحله کامپایل باز به ویژگی های MPI گیر داده و اجرا نشد.
mpif90 -O2 -fpp -m64 -c -o Occam.o Occam.f90
Occam.f90(57): error #7013: This module file was not generated by any release of this compiler. [MPI]
use mpi
--------^
Occam.f90(1399): error #6404: This name does not have a type, and must have an explicit type. [MPI_INTEGER]
call mpi_bcast(sizeM, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr)
-----------------------------^
Occam.f90(1399): error #6404: This name does not have a type, and must have an explicit type. [MPI_COMM_WORLD]
call mpi_bcast(sizeM, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr)
---------------------------------------------^
compilation aborted for Occam.f90 (code 1)
Makefile:369: recipe for target 'Occam.o' failed
make: *** [Occam.o] Error 1
علی جان میشه سورس کد رو بگیری رو parallel studio 18 که داری یه امتحان کنی ببینی کامپایل میشه؟
سورس کد رو از اینجا میتونی دانلود کنی:
http://mare2dem.ucsd.edu/?page_id=108 (http://mare2dem.ucsd.edu/?page_id=108)
دستور کامپایلش خیلی راحته:
make CLUSTER=tscc
-
با دستوری که دادین ، برای منم تو همون مرحله گیر کردش :
Occam.f90(57): error #7013: This module file was not generated by any release of this compiler. [MPI]
use mpi
--------^
Occam.f90(1399): error #6404: This name does not have a type, and must have an explicit type. [MPI_INTEGER]
call mpi_bcast(sizeM, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr)
-----------------------------^
Occam.f90(1399): error #6404: This name does not have a type, and must have an explicit type. [MPI_COMM_WORLD]
call mpi_bcast(sizeM, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr)
---------------------------------------------^
compilation aborted for Occam.f90 (code 1)
make: *** [Makefile:369: Occam.o] Error 1
-
فک کنم باید با openmpi کامپایل بشه. :(
-
بدون مشکل تونستم کامپایلش کنم :
make[1]: Leaving directory '/home/asus/Source/libraries/SuiteSparse/UMFPACK'
mpif90 -O2 -fpp -fc=ifort kdtree2.o fem2D_utilities.o binaryTree.o call_triangle.o sort.o c_fortran_zgssv.o superlu_zsolver.o umf4_f77zwrapper.o umfpack_zsolver.o string_helpers.o triangle.o mt1D.o EMconstants.o em2dkx.o Occam.o c_fortran_triangle.o FilterModules.o mare2dem_common.o spline_kx_module.o mare2dem_worker.o mare2dem_io.o mare2dem_mpi.o EM2D.o RunMARE2DEM.o ./libraries/SuperLU_4.0/libsuperlu_4.0.a ./libraries/SuiteSparse/UMFPACK/Lib/libumfpack.a ./libraries/SuiteSparse/AMD/Lib/libamd.a ./libraries/SuiteSparse/CHOLMOD/Lib/libcholmod.a ./libraries/SuiteSparse/COLAMD/Lib/libcolamd.a ./libraries/SuiteSparse/CAMD/Lib/libcamd.a ./libraries/SuiteSparse/CCOLAMD/Lib/libccolamd.a ./libraries/metis-4.0/libmetis.a ./libraries/scalapack-2.0.2/libscalapack.a \
-L/opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/lib/intel64 -I/opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/include -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -o MARE2DEM
اینم خروجی :
mpirun -np 2 ./MARE2DEM
که نیشون می ده به درستی کار می کنه (البته MARE2DEM باید با یک آرگومان ران بشه ولی من همین طوری فقط اجراش کردم تا ببینم اوضاع چطوره) :
============================= MARE2DEM ===================================
MARE2DEM: Modeling with Adaptively Refined Elements for 2.5D EM
Version: 10 March 2014
A parallel goal-oriented adaptive finite element forward and inverse
modeling code for electromagnetic fields from electric dipoles, magnetic
dipoles and magnetotelluric sources in triaxially anisotropic conducting
media. Iterative adaptive mesh refinement is accomplished using the
goal-oriented error estimation method described in Key and Ovall (2011).
Inversion is accomplished by the Occam method (Constable et al., 1987).
This work was supported by:
The Seafloor Electromagnetic Methods Consortium
at Scripps Institution of Oceanography
See this URL for a list of current SEMC funding sponsors:
http://marineemlab.ucsd.edu/semc.html
Copyright (C) 2008-2014
Kerry Key
Scripps Institution of Oceanography
University of California, San Diego
This file is part of MARE2DEM.
MARE2DEM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
MARE2DEM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with MARE2DEM. If not, see <http://www.gnu.org/licenses/>.
==========================================================================
MARE2DEM is using one manager node and 1 compute nodes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MARE2DEM error, no command line arguments given!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Usage: MARE2DEM <-F, -FJ or -FF> <resistivity file> <output root name>
MARE2DEM has three optional flags (*normal inversion uses no flags):
-F Computes the forward response of the input model only.
The forward response is output to <resistivity file>.resp
-FJ Computes the forward response and the model Jacobian matrix.
The forward response is output to <resistivity file>.resp
The Jacaobian matrix is output to <resistivity file>.jacobian
-FF Computes the forward response of the input model and
outputs all 3 components of E and H for all combinations of
transmitters, receivers and frequencies in the data file.
Ignores the data array section of the data file. The fields
The fields are output to <resistivity file>.fieldsMT and
and <resistivity file>.fieldsCSEM
MARE2DEM has one required parameter:
<resistivity file root> - This is the name of the input resistivity
file. By convention, this file should have the extension .resistivity.
For example inputModel.0.resistivity. The model found by each
inversion iteration is then output to a new resistivity file with the
iteration number incremented. For example: inputModel.1.resistivity,
inputModel.2.resistivity, ... The corresponding model responses are
written to inputModel.1.resp, inputModel.2.resp,...
MARE2DEM has the optional parameter:
<output file root> - With this option, the output files are
named <outputfileroot>.1.resistivity, <outputfileroot>.1.resp,
named <outputfileroot>.2.resistivity, <outputfileroot>.2.resp,...
Shutting down the worker processors:
Worker: 1 is done with mare2dem...
و اما دلیل اون خطا Makefile بودش که پارامتر ها به درستی ست نشده بودن (مثلاً MKL_ROOT باید به MKLROOT تغییر پیدا می کرد و چند مورد دیگه)
در نتیجه من قسمت tscc از Makefile رو به صورت زیر تغییر دادم :
ifeq "$(CLUSTER_LC)" "tscc"
FC = mpif90
FFLAGS = -O2 -fpp -fc=ifort
CC = mpicc
CFLAGS = -O2
# You only need these commands if you are compiling the Metis and SuperLU libs in MARE2DEM/Source/SuperLU and /Metis:
ARCH = xiar
ARCHFLAGS = ruv
RANLIB = ranlib
BLASDEF = -DUSE_VENDOR_BLAS
MKLPATH=$(MKLROOT)/lib/intel64
MKLINCLUDE=$(MKLROOT)/include
BLASLIB = -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
# -DAdd_ or -DNoChange, this is for the stupid underscore difference between C and Fortran
SUPERLU_CDEFS = -DAdd_
endif
ولی باز یه خطای جدید دادش که با سرچ زدن فهمیدم مشکل از فایل rename.h هستش و خط آخر اونو از :
#define log2 __log2
به این تغییر دادم :
#define log2 METIS__log2
و در نهایت دستورات زیر رو زدم تا پارامترهای لازم ست بشن :
export I_MPI_F77=ifort
exoprt I_MPI_F90=ifort
export I_MPI_FC=ifort
export I_MPI_CC=icc
export I_MPI_SHM_LMT=shm
source /opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/bin/mklvars.sh intel64
PATH="$HOME/Source:$PATH"
PATH="/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin:$PATH"
و در نهایت با دستور زیر کامپایل رو انجام دادم :
make CLUSTER=tscc
البته من کامپایل رو با intel mpi انجام دادم که شما نداشتینش و اگه بعد انجام کارهایی که گفتم بازم به مشکل برخوردین من توضیه می کنم از آخرین نسخه از parallel studio استفاده کنین تا بتونین از کتابخونه ها و Mpi های اینتل استفاده کنین.
-
درود
من همه دستورات به غیر از این سه تارو انجام دادم ولی باز همون خطای قبلی اتفاق افتاد.
source /opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/bin/mklvars.sh intel64
PATH="$HOME/Source:$PATH"
PATH="/opt/intel/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin:$PATH"
من فقط همین نسخه رو با لایسنس قانونی دارم. حالا باید یه راه حلی برای این پیدا کنم.
بازم ازت تشکر میکنم. :)
-
خواهش می کنم.
ولی بازم چک کنین ببینین رو سیستمون Intel MPI هستش یا نه.
مثلاً چک کنین ببینین دستور mpiifort یا mpiicc کار می کنن یا اینکه چک کنین ببینین دستور زیر رو سیستمتون خروجی داره یا نه :
echo $MKLROOT
یا مثلاً اسکریپت mklvars.sh روی سیستمون وجود داره یا نه.
اگه دستوراتی عین mpiifort جواب ندادن باید خودتون یه فکری برای لایسنس و نصب نسخه ی آخر بکنین.
-
اسکریپت mklvars.sh آره هست.
مسیرشم با اون دستوری که گفتی اینه:
mohammad67@ubuntu:~$ echo $MKLROOT
/opt/intel/composer_xe_2013_sp1.3.174/mkl
mpiifortو mpiicc رو ندارم.فقط mpifort و mpicc هستن.
mohammad67@ubuntu:~$ which mpiifort
mohammad67@ubuntu:~$ which mpiicc
mohammad67@ubuntu:~$ which mpicc
/usr/bin/mpicc
mohammad67@ubuntu:~$ which mpifort
/usr/bin/mpifort
-
اگه mpiifort رو داشته باشین می تونیم اینو با موفقیت کامپایلش کنیم.
خروجی این دستور رو چک کنین :
locate mpiifort
-
خروجی نداره. ](*,)
mohammad67@ubuntu:~$ locate mpiifort
mohammad67@ubuntu:~$ locate mpiifort
-
من اون ارور use mpi رو با mpiifort تونسته بودم رفعش کنم
ولی خب دیگه الان مطمئن شدیم که کتابخونه های mpi اینتل و ابزارهایی عین mpiifort و mpiicc رو سیستم شما نصب نیستن و چاره ای به ذهن من نمی رسه جز استفاده از نسخه ی آخر و کامل این پکیج
-
ممنون علی جان.کلی وقت گذاشتی. :)
حالا اگه نسخه ۲۰۱۸ رو پیدا کردم و نصب کردم ازت راهنمایی میگیرم.
-
ممنون علی جان.کلی وقت گذاشتی. :)
خواهش می کنم :)
حالا اگه نسخه ۲۰۱۸ رو پیدا کردم و نصب کردم ازت راهنمایی میگیرم.
اگه پیدا کردین که چه بهتر ...
اگه هم پیدا نکردین می تونین ، خودتون openmpi یا mpich رو برای ifort کامپایل کنین (به جای نسخه ی موجود تو مخازن). این طوری فک کنم این مشکل رو بشه حل کرد.
پ.ن:برای کامپایل mpich برای ifort کانفیگش رو این طوری در نظر بگیرین :
./configure --prefix /opt/mpich_intel CC=icc CXX=icpc F77=ifort FC=ifort CFLAGS=-m64 CXXFLAGS=-m64 FFLAGS=-m64 FCFLAGS=-m64
و به این صورت کامپایل و نصبش کنین :
make
sudo make install
و بعدش mpich مخازن رو پاک کنین و path مربوط به mpich که خودتون کامپایل کردین رو به بش بدین.
و در نهایت کامپایل پکیج مورد نظرخودتون رو تست کنین.
-
علی جان درود
من بلاخره تونستم ۲۰۱۸ رو نصب کنم و همه کارایی که گفتی انجام دادم ولی باز یه مشکل دیگه پیش اومد ](*,)
mamad@ubuntu:~/Desktop/Source$ which mpif90
/opt/intel/compilers_and_libraries_2018.3.222/linux/mpi/intel64/bin/mpif90
mamad@ubuntu:~/Desktop/Source$ mpif90 -show
ifort -I/opt/intel/compilers_and_libraries_2018.3.222/linux/mpi/intel64/include/gfortran -I/opt/intel/compilers_and_libraries_2018.3.222/linux/mpi/intel64/include -L/opt/intel/compilers_and_libraries_2018.3.222/linux/mpi/intel64/lib/release_mt -L/opt/intel/compilers_and_libraries_2018.3.222/linux/mpi/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/intel/compilers_and_libraries_2018.3.222/linux/mpi/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/compilers_and_libraries_2018.3.222/linux/mpi/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib -lmpifort -lmpi -lmpigi -ldl -lrt -lpthread
mamad@ubuntu:~/Desktop/Source$ ifort -v
ifort version 18.0.3
mamad@ubuntu:~/Desktop/Source$ icc -v
icc version 18.0.3 (gcc version 7.3.0 compatibility)
این هم مشکل جدید: ](*,)
mamad@ubuntu:~/Desktop/Source$ make CLUSTER=tscc
#
#
# Making SuperLU Sparse Linear Solver Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/SuperLU_4.0'
( cd SRC; make )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/SuperLU_4.0/SRC'
mpicc -O2 -DAdd_ -DUSE_VENDOR_BLAS -c sgssv.c
In file included from slu_sdefs.h(80),
from sgssv.c(12):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for sgssv.c (code 2)
Makefile:147: recipe for target 'sgssv.o' failed
make[2]: *** [sgssv.o] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuperLU_4.0/SRC'
Makefile:36: recipe for target 'superlulib' failed
make[1]: *** [superlulib] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuperLU_4.0'
#
#
# Making Metis Graph Partitioning Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/metis-4.0'
(cd Lib ; make )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/metis-4.0/Lib'
mpicc -O2 -I. -c coarsen.c
In file included from ./metis.h(27),
from coarsen.c(13):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for coarsen.c (code 2)
Makefile:21: recipe for target 'coarsen.o' failed
make[2]: *** [coarsen.o] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/metis-4.0/Lib'
Makefile:4: recipe for target 'default' failed
make[1]: *** [default] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/metis-4.0'
#
#
# Making UMFPack Sparse Linear Solver Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
( cd ../AMD ; make library )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
( cd Lib ; make )
make[3]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
mpicc -O2 -I../Include -I../../UFconfig -DDINT -c ../Source/amd_aat.c -o amd_i_aat.o
In file included from ../Include/amd_internal.h(77),
from ../Source/amd_aat.c(19):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for ../Source/amd_aat.c (code 2)
GNUmakefile:37: recipe for target 'amd_i_aat.o' failed
make[3]: *** [amd_i_aat.o] Error 2
make[3]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
Makefile:26: recipe for target 'library' failed
make[2]: *** [library] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
Makefile:16: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
#
#
# Making UMFPack Sparse Linear Solver Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
( cd ../AMD ; make library )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
( cd Lib ; make )
make[3]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
mpicc -O2 -I../Include -I../../UFconfig -DDINT -c ../Source/amd_aat.c -o amd_i_aat.o
In file included from ../Include/amd_internal.h(77),
from ../Source/amd_aat.c(19):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for ../Source/amd_aat.c (code 2)
GNUmakefile:37: recipe for target 'amd_i_aat.o' failed
make[3]: *** [amd_i_aat.o] Error 2
make[3]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
Makefile:26: recipe for target 'library' failed
make[2]: *** [library] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
Makefile:16: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
#
#
# Making UMFPack Sparse Linear Solver Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
( cd ../AMD ; make library )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
( cd Lib ; make )
make[3]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
mpicc -O2 -I../Include -I../../UFconfig -DDINT -c ../Source/amd_aat.c -o amd_i_aat.o
In file included from ../Include/amd_internal.h(77),
from ../Source/amd_aat.c(19):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for ../Source/amd_aat.c (code 2)
GNUmakefile:37: recipe for target 'amd_i_aat.o' failed
make[3]: *** [amd_i_aat.o] Error 2
make[3]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
Makefile:26: recipe for target 'library' failed
make[2]: *** [library] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
Makefile:16: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
#
#
# Making UMFPack Sparse Linear Solver Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
( cd ../AMD ; make library )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
( cd Lib ; make )
make[3]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
mpicc -O2 -I../Include -I../../UFconfig -DDINT -c ../Source/amd_aat.c -o amd_i_aat.o
In file included from ../Include/amd_internal.h(77),
from ../Source/amd_aat.c(19):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for ../Source/amd_aat.c (code 2)
GNUmakefile:37: recipe for target 'amd_i_aat.o' failed
make[3]: *** [amd_i_aat.o] Error 2
make[3]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
Makefile:26: recipe for target 'library' failed
make[2]: *** [library] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
Makefile:16: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
#
#
# Making UMFPack Sparse Linear Solver Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
( cd ../AMD ; make library )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
( cd Lib ; make )
make[3]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
mpicc -O2 -I../Include -I../../UFconfig -DDINT -c ../Source/amd_aat.c -o amd_i_aat.o
In file included from ../Include/amd_internal.h(77),
from ../Source/amd_aat.c(19):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for ../Source/amd_aat.c (code 2)
GNUmakefile:37: recipe for target 'amd_i_aat.o' failed
make[3]: *** [amd_i_aat.o] Error 2
make[3]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
Makefile:26: recipe for target 'library' failed
make[2]: *** [library] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
Makefile:16: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
#
#
# Making UMFPack Sparse Linear Solver Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
( cd ../AMD ; make library )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
( cd Lib ; make )
make[3]: Entering directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
mpicc -O2 -I../Include -I../../UFconfig -DDINT -c ../Source/amd_aat.c -o amd_i_aat.o
In file included from ../Include/amd_internal.h(77),
from ../Source/amd_aat.c(19):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for ../Source/amd_aat.c (code 2)
GNUmakefile:37: recipe for target 'amd_i_aat.o' failed
make[3]: *** [amd_i_aat.o] Error 2
make[3]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD/Lib'
Makefile:26: recipe for target 'library' failed
make[2]: *** [library] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/AMD'
Makefile:16: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/SuiteSparse/UMFPACK'
#
#
# Making ScaLAPACK Library:
#
#
make[1]: Entering directory '/home/mamad/Desktop/Source/libraries/scalapack-2.0.2'
( cd BLACS; make lib )
make[2]: Entering directory '/home/mamad/Desktop/Source/libraries/scalapack-2.0.2/BLACS'
( cd SRC ; make )
make[3]: Entering directory '/home/mamad/Desktop/Source/libraries/scalapack-2.0.2/BLACS/SRC'
mpicc -c -DAdd_ -O2 BI_HypBS.c
In file included from Bconfig.h(14),
from Bdef.h(7),
from BI_HypBS.c(1):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for BI_HypBS.c (code 2)
Makefile:92: recipe for target 'BI_HypBS.o' failed
make[3]: *** [BI_HypBS.o] Error 2
make[3]: Leaving directory '/home/mamad/Desktop/Source/libraries/scalapack-2.0.2/BLACS/SRC'
Makefile:11: recipe for target 'lib' failed
make[2]: *** [lib] Error 2
make[2]: Leaving directory '/home/mamad/Desktop/Source/libraries/scalapack-2.0.2/BLACS'
Makefile:59: recipe for target 'blacslib' failed
make[1]: *** [blacslib] Error 2
make[1]: Leaving directory '/home/mamad/Desktop/Source/libraries/scalapack-2.0.2'
mpicc -O2 -I./libraries/SuperLU_4.0/SRC -I./libraries/SuiteSparse/UMFPACK/Include -I./libraries/SuiteSparse/UFconfig -I./libraries/SuiteSparse/AMD/Include -I./libraries/SuiteSparse/CCOLAMD/Include -I./libraries/SuiteSparse/CAMD/Include -I./libraries/SuiteSparse/CHOLMOD/Include -I./libraries/SuiteSparse/COLAMD/Include -c -o c_fortran_zgssv.o c_fortran_zgssv.c
In file included from ./libraries/SuperLU_4.0/SRC/slu_zdefs.h(80),
from c_fortran_zgssv.c(13):
/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
^
compilation aborted for c_fortran_zgssv.c (code 2)
Makefile:373: recipe for target 'c_fortran_zgssv.o' failed
make: *** [c_fortran_zgssv.o] Error 2
-
ممنون علی جان.کلی وقت گذاشتی. :)
خواهش می کنم :)
حالا اگه نسخه ۲۰۱۸ رو پیدا کردم و نصب کردم ازت راهنمایی میگیرم.
اگه پیدا کردین که چه بهتر ...
اگه هم پیدا نکردین می تونین ، خودتون openmpi یا mpich رو برای ifort کامپایل کنین (به جای نسخه ی موجود تو مخازن). این طوری فک کنم این مشکل رو بشه حل کرد.
پ.ن:برای کامپایل mpich برای ifort کانفیگش رو این طوری در نظر بگیرین :
./configure --prefix /opt/mpich_intel CC=icc CXX=icpc F77=ifort FC=ifort CFLAGS=-m64 CXXFLAGS=-m64 FFLAGS=-m64 FCFLAGS=-m64
و به این صورت کامپایل و نصبش کنین :
make
sudo make install
و بعدش mpich مخازن رو پاک کنین و path مربوط به mpich که خودتون کامپایل کردین رو به بش بدین.
و در نهایت کامپایل پکیج مورد نظرخودتون رو تست کنین.
درود
من الان یه کد دیگه که ازmpi استفاده میکرد رو هم امتحان کردم خطاهای مشابه این کد داشت و نمیتونست کامپایل کنه.
MPI/MPI_declaration.f90(5): error #5102: Cannot open include file 'mpif.h'
include 'mpif.h'
--------^
MPI/MPI_declaration.f90(91): error #6404: This name does not have a type, and must have an explicit type. [MPI_CHARACTER]
CALL MPI_PACK_SIZE(80, MPI_CHARACTER, MPI_COMM_WORLD, Nbytes1, ierr)
------------------------------^
MPI/MPI_declaration.f90(91): error #6404: This name does not have a type, and must have an explicit type. [MPI_COMM_WORLD]
CALL MPI_PACK_SIZE(80, MPI_CHARACTER, MPI_COMM_WORLD, Nbytes1, ierr)
---------------------------------------------^
MPI/MPI_declaration.f90(92): error #6404: This name does not have a type, and must have an explicit type. [MPI_INTEGER]
CALL MPI_PACK_SIZE(6, MPI_INTEGER, MPI_COMM_WORLD, Nbytes2, ierr)
-----------------------------^
MPI/MPI_declaration.f90(93): error #6404: This name does not have a type, and must have an explicit type. [MPI_LOGICAL]
CALL MPI_PACK_SIZE(3, MPI_LOGICAL, MPI_COMM_WORLD, Nbytes3, ierr)
-----------------------------^
compilation aborted for MPI/MPI_declaration.f90 (code 1)
Makefile:104: recipe for target 'objs/3D_MT/IFortReleaseMPI/MPI_declaration.o' failed
make: *** [objs/3D_MT/IFortReleaseMPI/MPI_declaration.o] Error 1
فکر کنم اگر بتونم برای اجرا کردن mpi intel رو ست کنم(که به نظرم هست. تو جواب قبلی خروجیارو برات فرستادم) مشکلم حل بشه.
-
علی جان درود
ًآقا شرمنده پیام بی ربط می دم
شما آقای رزم دیده رو می شناسین ؟ چون من یه کار واجبی با ایشون دارم و ازشون یه ایمیل داشتم که هر چقدر به اون ایمیل پیام می دم ، جواب نمی دن.
چند وقتی هم هستش که توی فروم نیستن خواستم اگه می شناسینشون یه راه ارتباطی ازشون به منم بدین.
-
درود
نه والا من نمیشناسمش،همین جا تو همین تاپیک به من کمک میکرد،الانم مشکل جدید داشتم اینجا مطرح کردم هنوز جواب نداده. :oops:
-
سلام
@majid.ee
والا من ایمیلی از طرف شما دریافت نکردم به احتمال زیاد آدرس ایمیل رو اشتباه وارد می کنین.
به دلیل مشغله ی زیادی که دارم فرصت نمی کنم به فروم زیاد سر بزنم ولی مطمئن باشین اگه ایمیل به دستم برسه جواب می دم.
مثلاً در مورد همین تاپیک ، من اطلاعی نداشتم که موضوع دوباره به جریان افتاده و یکی از دوستان بهم ایمیل دادن و منو در جریان قرار دادن.
@noyan1367
ارور زیر به دلیل این هستش که توزیع مورد استفاده ی شما جزو توزیع ها و نسخه های پیشنهادی اینتل نیستش مثلاً اگه از اوبونتو 18.04 استفاده می کنین قراره توی Intel Parallel Studio XE 2019 ازش به صورت رسمی پشتییبانی بشه
برای اطلاعات بیشتر در مورد پیشتیبانی رسمی اینتل این لینک رو مطالعه کنین :
https://software.intel.com/en-us/parallel-studio-xe/documentation/system-requirements (https://software.intel.com/en-us/parallel-studio-xe/documentation/system-requirements)
پس با توجه به توضیحات بالا ما مجبوریم که این تداخل math.h توزیع و math.h اینتل رو دور بزنیم. یکی از ساده ترین کارهایی که می شه انجام داد به این صورت هستش :
1.اول فایل زیر رو با دسترسی روت باز کنین :
sudo nano /opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/include/math.h
2.بعد توش دنبال خطی به صورت زیر بگردین :
_LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
3.بعد اون خط رو به صورت زیر تغییر بدین :
_LIBIMF_EXTERN_C _LIBIMF_PUBVAR _LIB_VERSIONIMF;
(در واقع قسمت _LIB_VERSIONIMF_TYPE رو پاک کنین)
4.بعدش فایل رو سیو کنین و کامپایل رو تست کنین.
-
در واقع تو راه بالا ما میایم و math.h اینتل رو ادیت می زنیم تا اون قسمتش که با math.h سیستم تداخل داشت برطرف بشه.
ولی راه های دیگه ای هم وجود داره:
1.استفاده از اپشن -D__PURE_INTEL_C99_HEADERS__ در میک فایلتون.
این اپشن کامپایلر رو فورس می کنه تا از math.h اینتل استفاده کنه.
و به نظر من بهترین راه ممکن همین راه هستش.
در واقع تو این راه قسمت tscc میک فایل شما باید به این صورت باشه :
ifeq "$(CLUSTER_LC)" "tscc"
FC = mpiifort
FFLAGS = -O2 -fpp -fc=ifort
CC = mpiicc
CFLAGS = -O2 -D__PURE_INTEL_C99_HEADERS__
# You only need these commands if you are compiling the Metis and SuperLU libs in MARE2DEM/Source/SuperLU and /Metis:
ARCH = xiar
ARCHFLAGS = ruv
RANLIB = ranlib
BLASDEF = -DUSE_VENDOR_BLAS
MKLPATH=$(MKLROOT)/lib/intel64
MKLINCLUDE=$(MKLROOT)/include
BLASLIB = -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
# -DAdd_ or -DNoChange, this is for the stupid underscore difference between C and Fortran
SUPERLU_CDEFS = -DAdd_
endif
فقط باید دقت کنین که اگه نرم افزاری که شما نصب می کنین چندین میک فایل داشته باشه (مثلاً کتابخونه ها و یا ابزارهای جانبی داشته باشه که اونا هم در طول پروسه با میک فایل جداگانه کامپایل می شن ، شما این آپشن رو با میک فایل اون ها هم باید اضافه کنین.
2.و راه سوم هم ادیت math.h سیستم هستش تا اون رو با math.h اینتل هماهنگ کنیم
ولی چون من این راه رو توصیه نمی کنم و باعث ناپایداری سیستم می شه توضیح بیشتری نمی دم وفقط می گم چنین راهی هم وجود داره ولی شما انجامش ندین
-
از اونجایی که حدس می زنم برای راه دوم (که در واقع استانداردترین راه ممکن هستش و هیچ نیازی به دستکاری math.h اینتل و سیستم ندارین) مشکل داشته باشین ، من تمام makefile هایی که نیازمند تغییر بودن (بهشون آپشن -D__PURE_INTEL_C99_HEADERS__ باید اضافه می شد) رو تغییر دادم و به ترتیب فولدرهایی که سورس MARE2DEM قرار دارن توی فایل زیپ قرار دادم. (فایل ضمیمه شده)
شما این فایل هایی که توی فایل زیپ هستند رو با اون فایل های اصلی که توی پوشه ی source وجود داره جایگزین کنین (چینش فولدرها به همون ترتیب اصلی هستش تا شما توی جایگزینی فایل ها دچار سردرگمی نشین)
بعد از جایگزینی تمام فایل ها مراحل زیر رو دنبال کنین.
1.اول دستورات زیر رو وارد کنین : (توی دستورات به جای PATH باید مسیری که فایل زیپ رو توش اکسترکت کردین رو بذارین و می تونه پوشه ی home و Downloads و ... باشه.)
make -C /PATH/Source/libraries/SuiteSparse/UMFPACK/Lib/
make -C /PATH/Source/libraries/SuiteSparse/CHOLMOD/Lib/
make -C /PATH/Source/libraries/SuiteSparse/COLAMD/Lib/
make -C /PATH/Source/libraries/SuiteSparse/CCOLAMD/Lib/
make -C /PATH/Source/libraries/SuiteSparse/CAMD/Lib/
2. در نهایت بعد از کامپایل کتابخانه ها ، با دستور زیر تو مسیر /PATH/Source کامپایل نهایی رو انجام بدین :
$ make CLUSTER=tscc
-
درود
من بازم خیلی تشکر میکنم از وقتی که گذاشتی و اینکه مشکل من حل شد.
برای کامپایل کردن کتابخونه ها اون مسیری که فایلی که ضمیمه کرده بودی رو گذاشتم اشتباه بود چون همچین فایل هایی نداشت. در واقع فکر کنم باید مسیری اصلی کد رو میدادم که دادم درست شد و کتابخونه هارو کامپایل کرد.
این اخطار رو هم در مورد همش میداد:
make: warning: Clock skew detected. Your build may be incomplete.
make: Leaving directory '/home/mamad/Desktop/test/Source/libraries/SuiteSparse/CAMD/Lib'
و در نهایت این مشکل حل شد و کد به درستی کامپایل و اجرا شد. \\:D/ \\:D/
-
خواهش می کنم خوش حالم که مشکلتون حل شد.
بله فایل ضمیمه فقط برای این بود که اون فایل ها رو با فایل های اولیه جایگزین کنین و بعدش کلا پاکش کنین بره.
شما باید اون دستورات make رو توی سورس اصلی ران می کردین. که اون طور که گفتین همین کار رو انجام دادین.