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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: تغییر کامپایلر دیفالت mpif90(حل شد)  (دفعات بازدید: 6549 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
تغییر کامپایلر دیفالت mpif90(حل شد)
« : 03 تیر 1397، 01:23 ب‌ظ »
درود
دوستان من یک برنامه ای رو میخوام کامپایل کنم که ازmpif90 استفاده میکنه، کامپایلر فورترن دیفالت mpif90 کامپایلر  gfortran  هست. زمان کامپایل شدن متاسفانه gfortran نمیتونه کامپایل کنه و من باید از  ifort استفاده کنم. کلی سرچ کردم ولی به نتیجه ای نرسیدم. کسی میتونه راهنماییم کنه؟
آدرس سورس برنامه:

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 باز به درستی کامپایل نمیشه.
« آخرین ویرایش: 31 تیر 1397، 07:27 ب‌ظ توسط noyan1367 »
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4865
  • جنسیت : پسر
  • masoft قدیم
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #1 : 03 تیر 1397، 01:36 ب‌ظ »
«نمی‌تونه کامپایل کنه» اطلاعات کافی‌ای نیست که بتونیم بگیم مشکل چیه. اطلاعات دقیق‌تری ارائه بدید.

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #2 : 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
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #3 : 04 تیر 1397، 01:56 ب‌ظ »
درود بر تو

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

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

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

۴. این رو هم بخون:
$ man mpifort

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #4 : 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)
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #5 : 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 مثل پلنگ کار میکنه. ](*,) ](*,) ](*,)
« آخرین ویرایش: 04 تیر 1397، 06:56 ب‌ظ توسط noyan1367 »
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4865
  • جنسیت : پسر
  • masoft قدیم
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #6 : 05 تیر 1397، 07:22 ب‌ظ »
متاسفانه اطلاعات کافی نمیدید که بتونیم کمکتون کنیم و مثلا تنها میگید «پیداش نمی‌کنه». پیشنهادم اینه که ابتدا این لینک رو به صورت کامل بخونید و دوباره سوال خودتون رو بیان کنید: چگونه هوشمندانه سوال کنیم

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #7 : 06 تیر 1397، 07:46 ب‌ظ »
درود
من اروری که اتفاق افتاده رو گذاشتم،دیگه چی باید میذاشتم. شما اصلا اون رو نگاه نکردید. :o
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #8 : 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
این اروری هست که اتفاق افتاده. دقیقا بعد از اینکه شما گفتچرا اطلاعات کامل نمیدید گذاشتم.
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4865
  • جنسیت : پسر
  • masoft قدیم
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #9 : 08 تیر 1397، 01:56 ق‌ظ »
من اروری که اتفاق افتاده رو گذاشتم،دیگه چی باید میذاشتم. شما اصلا اون رو نگاه نکردید. :o
خب جواب اون رو که سلمان داد. همینطوری که گفته fpp- توی پارامترهای gfortran نیست و باید اون رو با مطالعهٔ Man Page خود gfortran با پارامترهای درست جایگزین کنید.

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1317
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #10 : 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 استفاده کن.
« آخرین ویرایش: 08 تیر 1397، 04:58 ق‌ظ توسط alend »

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #11 : 08 تیر 1397، 10:08 ق‌ظ »
درود
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #12 : 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
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4865
  • جنسیت : پسر
  • masoft قدیم
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #13 : 08 تیر 1397، 05:38 ب‌ظ »
خود gfortran هم گفته بود که اینو بزار، اونم میذاری درست نمیشه.
دوباره بجای اینکه اطلاعات کامل بدید، میگید «درست نمیشه»! اون لینکی که دادم رو بخونید احتمالا بسیار مفید باشه.

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #14 : 08 تیر 1397، 09:03 ب‌ظ »
با سلام

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

اگه ست شده بود این خط export رو به فایل .bashrc تون هم اضافه کنین