انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: noyan1367 در 03 تیر 1397، 01:23 ب‌ظ

عنوان: تغییر کامپایلر دیفالت mpif90(حل شد)
ارسال شده توسط: 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 باز به درستی کامپایل نمیشه.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: nixoeen در 03 تیر 1397، 01:36 ب‌ظ
«نمی‌تونه کامپایل کنه» اطلاعات کافی‌ای نیست که بتونیم بگیم مشکل چیه. اطلاعات دقیق‌تری ارائه بدید.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 03 تیر 1397، 06:23 ب‌ظ
چون کامپایلر دیفالت 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
ارسال شده توسط: سلمان م. در 04 تیر 1397، 01:56 ب‌ظ
درود بر تو

۱. برنامه mpif90 دیگه از دور خارج شده، به جاش از mpifort استفاده کن.

۲. من پیج، مربوط به mpif90 رو بخون:
$ man mpif90

۳. دستور زیر رو توی ترمینال بزن و ببین که mpif90 به چی وصل شده، به احتمال ۹۹ درصد نوشته، gcc:
$ mpif90 -v

۴. این رو هم بخون:
$ man mpifort
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 04 تیر 1397، 06:51 ب‌ظ
برای 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
ارسال شده توسط: noyan1367 در 04 تیر 1397، 06:53 ب‌ظ
درود بر تو

۱. برنامه mpif90 دیگه از دور خارج شده، به جاش از mpifort استفاده کن.

۲. من پیج، مربوط به mpif90 رو بخون:
$ man mpif90

۳. دستور زیر رو توی ترمینال بزن و ببین که mpif90 به چی وصل شده، به احتمال ۹۹ درصد نوشته، gcc:
$ mpif90 -v

۴. این رو هم بخون:
$ man mpifort
واسه mpifort از دستور which که استفاده میکنم خروجی میده که کجاست ولی وقتی تو Makefile میذارمش پیداش نمیکنه ](*,) ](*,)
mohammad67@ubuntu:~$ which mpifort
/usr/bin/mpifort
جالب اینکهmpicc مثل پلنگ کار میکنه. ](*,) ](*,) ](*,)
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: nixoeen در 05 تیر 1397، 07:22 ب‌ظ
متاسفانه اطلاعات کافی نمیدید که بتونیم کمکتون کنیم و مثلا تنها میگید «پیداش نمی‌کنه». پیشنهادم اینه که ابتدا این لینک رو به صورت کامل بخونید و دوباره سوال خودتون رو بیان کنید: چگونه هوشمندانه سوال کنیم (http://wiki.ubuntu.ir/wiki/Smart_Questions)
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 06 تیر 1397، 07:46 ب‌ظ
درود
من اروری که اتفاق افتاده رو گذاشتم،دیگه چی باید میذاشتم. شما اصلا اون رو نگاه نکردید. :o
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 06 تیر 1397، 07:47 ب‌ظ
چون کامپایلر دیفالت 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
ارسال شده توسط: nixoeen در 08 تیر 1397، 01:56 ق‌ظ
من اروری که اتفاق افتاده رو گذاشتم،دیگه چی باید میذاشتم. شما اصلا اون رو نگاه نکردید. :o
خب جواب اون رو که سلمان داد. همینطوری که گفته fpp- توی پارامترهای gfortran نیست و باید اون رو با مطالعهٔ Man Page خود gfortran با پارامترهای درست جایگزین کنید.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: alend در 08 تیر 1397، 04:55 ق‌ظ
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 استفاده کن.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 08 تیر 1397، 10:08 ق‌ظ
درود
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 08 تیر 1397، 02:11 ب‌ظ
درود بر تو

۱. برنامه 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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: nixoeen در 08 تیر 1397، 05:38 ب‌ظ
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
دوباره بجای اینکه اطلاعات کامل بدید، میگید «درست نمیشه»! اون لینکی که دادم رو بخونید احتمالا بسیار مفید باشه.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 08 تیر 1397، 09:03 ب‌ظ
با سلام

اول دستور زیر رو وارد کنین :
export I_MPI_F90=ifort
بعدش دستور زیر رو وارد کنین :
mpif90 -show
حالا چک کنین ببینین mpif90 رو ifort ست شده یا نه ؟

اگه ست شده بود این خط export رو به فایل .bashrc تون هم اضافه کنین
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 09 تیر 1397، 04:20 ب‌ظ
اینو تو سرچ های اولیه که کردم انجام دادم ولی نشد. الانم باز انجام دادم ولی نشد.
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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 09 تیر 1397، 04:20 ب‌ظ
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
دوباره بجای اینکه اطلاعات کامل بدید، میگید «درست نمیشه»! اون لینکی که دادم رو بخونید احتمالا بسیار مفید باشه.
شما مو میبینی ولی دوستان پیچش مو ;) ;)
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 09 تیر 1397، 04:55 ب‌ظ
اینو تو سرچ های اولیه که کردم انجام دادم ولی نشد. الانم باز انجام دادم ولی نشد.
عجیبه من روی نسخه 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 intel644.خروجی خطایی که موقع کامپایل کردن دریافت می کنین
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 10 تیر 1397، 10:27 ق‌ظ
درود
خروجی کد:
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)
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 11 تیر 1397، 02:09 ب‌ظ
با توجه به اینکه من به نسخه ی شما دسترسی ندارم خودم نمی تونم چیزی رو تست کنم در نتیجه ازتون می خوام خروجی چند تا چیز رو بدین.

اول خروجی این دستور رو بدین :

cat `which mpif90`
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 11 تیر 1397، 03:27 ب‌ظ
ممنون بابت پیگیری :)
اگه منظورت اینه:
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
ارسال شده توسط: علی رزم دیده در 11 تیر 1397، 06:31 ب‌ظ
ممنون بابت پیگیری  :)
خواهش می کنم دوست عزیز


اگه منظورت اینه:
نه منظورم قسمت دوم بودش ولی همین خروجی هم به رفع مشکل خیلی کمک می کنه.


فکر می کنم مشکل شما رو تونستم تشخیص بدم ...
مشکل شما این هستش که 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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 12 تیر 1397، 10:30 ق‌ظ
درود
من اول که 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.
بازم تشکر میکنم.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 12 تیر 1397، 10:35 ب‌ظ
به نظر مشکل پیچیده ای نمیاد شما خروجی این دستور رو بذارین تا بررسی کنیم کجای خط 40 ام اون فایل مشکل داره :
cat /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh
در ضمن خروجی این دستور رو هم بذارین :
source /opt/intel/bin/compilervars.sh intel64
چون . و source تفاوت هایی هم با هم دارن.

پ.ن:اگه دستور دوم خطایی ندادش نیازی به گذاشتن خروجی دستور اول نیست همون خط دوم رو توی فایل ~/.bashrc تون قرار بدین.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 12 تیر 1397، 10:54 ب‌ظ
مرسی از امیدواری 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
دستور دوم خروجی نداشت.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 12 تیر 1397، 11:14 ب‌ظ
اینکه دستور دوم خروجی نداشت یعنی همه چی اوکیه
شما این خط رو توی فایل .bashrc تون قرار بدین (یا اگه برای تمام یوزرها می خواین توی /etc/bash.bashrc قرار بدین):
source /opt/intel/bin/compilervars.sh intel64
بعدش توی ترمینال جدید خروجی این دستور رو چک کنین :
mpif90 -fc=ifort -show
ببینین ifort شده یا نه ؟
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 13 تیر 1397، 09:25 ق‌ظ
بازم ست نشده ](*,) ](*,)
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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 13 تیر 1397، 10:47 ق‌ظ
بازم openmpi هستش.
خروجی این دستورات رو بذارین :
cat ~/.bashrc
cat /etc/bash.bashrc
which mpif90
ll /usr/bin/mpif90
dpkg -l | grep mpi
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 13 تیر 1397، 02:04 ب‌ظ
اولی:
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:~$
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 13 تیر 1397، 03:21 ب‌ظ
به دلیل وجود خط زیر توی فایل ~/.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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 13 تیر 1397، 03:42 ب‌ظ
اونارو پاک کردم.
اینم خروجی دستور:
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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 13 تیر 1397، 03:44 ب‌ظ
نقل‌قول
به دلیل وجود خط زیر توی فایل ~/.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 نصب کردم خودش اضافه کرده.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 13 تیر 1397، 03:53 ب‌ظ
احتمال داره نسخه ی 13 parallel studio که شما استفاده می کنین mpi اینتل رو نداشته باشه (چون من هم به این نسخه دسترسی ندارم نمی تونم این قضیه رو چک کنم)

ولی اشکال نداره شما می تونین از mpich استفاده کنین که از ifort هم پشتیبانی می کنه :
sudo apt install mpich
حالا دیگه خروجی این دستور نباید gfortran باشه :
mpif90 -fc=ifort -show
اگه این دستور خطا داد یا کار نکرد این دستور رو چک کنین :
mpif90.mpich -fc=ifort -show
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90(حل شد)
ارسال شده توسط: noyan1367 در 13 تیر 1397، 04:36 ب‌ظ
علی جان واقعا مچکرم.
درست شد با اون دستور.
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 استفاده کرد. ](*,)
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 13 تیر 1397، 04:54 ب‌ظ
خواهش می کنم دوست من.

در مورد ست کردن کامپایلر پیش فرض اول شما باید کامپایلر دلخواهتون رو export کنین :
export MPICH_FC=ifort
بعدش امتحان کنین :
mpif90 -show
در ضمن می تونین اون خط export رو توی فایل .bashrc تون قرار بدین تا همواره ifort استفاده بشه.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 13 تیر 1397، 06:08 ب‌ظ
بازم تشکر میکنم ازت علی جان. :)
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 13 تیر 1397، 06:11 ب‌ظ
خواهش می کنم
مشکلتون حل شد ؟
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 13 تیر 1397، 07:06 ب‌ظ
اون مرحله رو رد کرد. بدبختانه تو آخرین مرحله کامپایل باز به ویژگی های 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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 13 تیر 1397، 10:24 ب‌ظ
با دستوری که دادین ، برای منم تو همون مرحله گیر کردش :
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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 13 تیر 1397، 11:36 ب‌ظ
فک کنم باید با openmpi کامپایل بشه. :(
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 14 تیر 1397، 01:40 ق‌ظ
بدون مشکل تونستم کامپایلش کنم :
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 های اینتل استفاده کنین.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 14 تیر 1397، 09:35 ق‌ظ
درود
من همه دستورات به غیر از این سه تارو انجام دادم ولی باز همون خطای قبلی اتفاق افتاد.
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"
من فقط همین نسخه رو با لایسنس قانونی دارم. حالا باید یه راه حلی برای این پیدا کنم.
بازم ازت تشکر میکنم. :)
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 14 تیر 1397، 12:38 ب‌ظ
خواهش می کنم.

ولی بازم چک کنین ببینین رو سیستمون Intel MPI هستش یا نه.

مثلاً چک کنین ببینین دستور mpiifort یا mpiicc کار می کنن یا اینکه چک کنین ببینین دستور زیر رو سیستمتون خروجی داره یا نه :
echo $MKLROOT
یا مثلاً اسکریپت mklvars.sh روی سیستمون وجود داره یا نه.

اگه دستوراتی عین mpiifort جواب ندادن باید خودتون یه فکری برای لایسنس و نصب نسخه ی آخر بکنین.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 14 تیر 1397، 01:08 ب‌ظ
اسکریپت 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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 14 تیر 1397، 02:03 ب‌ظ
اگه mpiifort رو داشته باشین می تونیم اینو با موفقیت کامپایلش کنیم.

خروجی این دستور رو چک کنین :
locate mpiifort
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 14 تیر 1397، 03:41 ب‌ظ
خروجی نداره.  ](*,)
mohammad67@ubuntu:~$ locate mpiifort
mohammad67@ubuntu:~$ locate mpiifort
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 14 تیر 1397، 03:54 ب‌ظ
من اون ارور use mpi رو با mpiifort تونسته بودم رفعش کنم

ولی خب دیگه الان مطمئن شدیم که کتابخونه های mpi اینتل و ابزارهایی عین mpiifort و mpiicc رو سیستم شما نصب نیستن و چاره ای به ذهن من نمی رسه جز استفاده از نسخه ی آخر و کامل این پکیج
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 14 تیر 1397، 04:05 ب‌ظ
ممنون علی جان.کلی وقت گذاشتی. :)
حالا اگه نسخه ۲۰۱۸ رو پیدا کردم و نصب کردم ازت راهنمایی میگیرم.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 15 تیر 1397، 02:28 ق‌ظ
ممنون علی جان.کلی وقت گذاشتی. :)
خواهش می کنم  :)

حالا اگه نسخه ۲۰۱۸ رو پیدا کردم و نصب کردم ازت راهنمایی میگیرم.
اگه پیدا کردین که چه بهتر ...
اگه هم پیدا نکردین می تونین ، خودتون 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 که خودتون کامپایل کردین رو به بش بدین.
و در نهایت کامپایل پکیج مورد نظرخودتون رو تست کنین.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 29 تیر 1397، 03:02 ب‌ظ
علی جان درود
من بلاخره تونستم ۲۰۱۸ رو نصب کنم و همه کارایی که گفتی انجام دادم ولی باز یه مشکل دیگه پیش اومد ](*,)
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

عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 29 تیر 1397، 06:52 ب‌ظ
ممنون علی جان.کلی وقت گذاشتی. :)
خواهش می کنم  :)

حالا اگه نسخه ۲۰۱۸ رو پیدا کردم و نصب کردم ازت راهنمایی میگیرم.
اگه پیدا کردین که چه بهتر ...
اگه هم پیدا نکردین می تونین ، خودتون 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 رو ست کنم(که به نظرم هست. تو جواب قبلی خروجیارو برات فرستادم) مشکلم حل بشه.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: majid.ee در 30 تیر 1397، 08:01 ب‌ظ
علی جان درود
ًآقا شرمنده پیام بی ربط می دم
شما آقای رزم دیده رو می شناسین ؟ چون من یه کار واجبی با ایشون دارم و ازشون یه ایمیل داشتم که هر چقدر به اون ایمیل پیام می دم ، جواب نمی دن.
چند وقتی هم هستش که توی فروم نیستن خواستم اگه می شناسینشون یه راه ارتباطی ازشون به منم بدین.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 30 تیر 1397، 11:38 ب‌ظ
درود
نه والا من نمیشناسمش،همین جا تو همین تاپیک به من کمک میکرد،الانم مشکل جدید داشتم اینجا مطرح کردم هنوز جواب نداده. :oops:
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 31 تیر 1397، 01:17 ب‌ظ
سلام

@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.بعدش فایل رو سیو کنین و کامپایل رو تست کنین.
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 31 تیر 1397، 02:00 ب‌ظ
در واقع تو راه بالا ما میایم و 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 اینتل هماهنگ کنیم
ولی چون من این راه رو توصیه نمی کنم و باعث ناپایداری سیستم می شه توضیح بیشتری نمی دم وفقط می گم چنین راهی هم وجود داره ولی شما انجامش ندین
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: علی رزم دیده در 31 تیر 1397، 05:58 ب‌ظ
از اونجایی که حدس می زنم برای راه دوم (که در واقع استانداردترین راه ممکن هستش و هیچ نیازی به دستکاری 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
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90
ارسال شده توسط: noyan1367 در 31 تیر 1397، 07:27 ب‌ظ
درود
من بازم خیلی تشکر میکنم از وقتی که گذاشتی و اینکه مشکل من حل شد.
برای کامپایل کردن کتابخونه ها اون مسیری که فایلی که ضمیمه کرده بودی رو گذاشتم اشتباه بود چون همچین فایل هایی نداشت. در واقع فکر کنم باید مسیری اصلی کد رو میدادم که دادم درست شد و کتابخونه هارو کامپایل کرد.
این اخطار رو هم در مورد همش میداد:
make: warning:  Clock skew detected.  Your build may be incomplete.
make: Leaving directory '/home/mamad/Desktop/test/Source/libraries/SuiteSparse/CAMD/Lib'
و در نهایت این مشکل حل شد و کد به درستی کامپایل و اجرا شد. \\:D/ \\:D/
عنوان: پاسخ : تغییر کامپایلر دیفالت mpif90(حل شد)
ارسال شده توسط: علی رزم دیده در 31 تیر 1397، 07:32 ب‌ظ
خواهش می کنم خوش حالم که مشکلتون حل شد.

بله فایل ضمیمه فقط برای این بود که اون فایل ها رو با فایل های اولیه جایگزین کنین و بعدش کلا پاکش کنین بره.
شما باید اون دستورات make رو توی سورس اصلی ران می کردین. که اون طور که گفتین همین کار رو انجام دادین.