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

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

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

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

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

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #45 : 14 تیر 1397، 03:41 ب‌ظ »
خروجی نداره.  ](*,)
mohammad67@ubuntu:~$ locate mpiifort
mohammad67@ubuntu:~$ locate mpiifort
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

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

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #46 : 14 تیر 1397، 03:54 ب‌ظ »
من اون ارور use mpi رو با mpiifort تونسته بودم رفعش کنم

ولی خب دیگه الان مطمئن شدیم که کتابخونه های mpi اینتل و ابزارهایی عین mpiifort و mpiicc رو سیستم شما نصب نیستن و چاره ای به ذهن من نمی رسه جز استفاده از نسخه ی آخر و کامل این پکیج

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #47 : 14 تیر 1397، 04:05 ب‌ظ »
ممنون علی جان.کلی وقت گذاشتی. :)
حالا اگه نسخه ۲۰۱۸ رو پیدا کردم و نصب کردم ازت راهنمایی میگیرم.
خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

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

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #48 : 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 که خودتون کامپایل کردین رو به بش بدین.
و در نهایت کامپایل پکیج مورد نظرخودتون رو تست کنین.
« آخرین ویرایش: 15 تیر 1397، 03:25 ق‌ظ توسط علی رزم دیده »

آفلاین noyan1367

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #49 : 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

خيال غرق شدن در نگاه ژرف تو بود
كه دل زديم به درياي بي خيالي ها
قيصرامين پور🌷

آفلاین noyan1367

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

آفلاین majid.ee

  • Jr. Member
  • *
  • ارسال: 33
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #51 : 30 تیر 1397، 08:01 ب‌ظ »
علی جان درود
ًآقا شرمنده پیام بی ربط می دم
شما آقای رزم دیده رو می شناسین ؟ چون من یه کار واجبی با ایشون دارم و ازشون یه ایمیل داشتم که هر چقدر به اون ایمیل پیام می دم ، جواب نمی دن.
چند وقتی هم هستش که توی فروم نیستن خواستم اگه می شناسینشون یه راه ارتباطی ازشون به منم بدین.

آفلاین noyan1367

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

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

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #53 : 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

پس با توجه به توضیحات بالا ما مجبوریم که این تداخل 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.بعدش فایل رو سیو کنین و کامپایل رو تست کنین.
« آخرین ویرایش: 31 تیر 1397، 01:50 ب‌ظ توسط علی رزم دیده »

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

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #54 : 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 اینتل هماهنگ کنیم
ولی چون من این راه رو توصیه نمی کنم و باعث ناپایداری سیستم می شه توضیح بیشتری نمی دم وفقط می گم چنین راهی هم وجود داره ولی شما انجامش ندین

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

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : تغییر کامپایلر دیفالت mpif90
« پاسخ #55 : 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
« آخرین ویرایش: 31 تیر 1397، 06:07 ب‌ظ توسط علی رزم دیده »

آفلاین noyan1367

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

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

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : تغییر کامپایلر دیفالت mpif90(حل شد)
« پاسخ #57 : 31 تیر 1397، 07:32 ب‌ظ »
خواهش می کنم خوش حالم که مشکلتون حل شد.

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