Compilatore ifort: differenze tra le versioni

Da MeteOceanWiki.
Riga 6: Riga 6:
 
Bisogna poi settare le variabili di compilazione per configure coerentemente con la propria installazione della macchina
 
Bisogna poi settare le variabili di compilazione per configure coerentemente con la propria installazione della macchina
  
  CC=/opt/intel/bin/icc CXX=/opt/intel/bin/icpc FC=/opt/intel/bin/ifort F77=/opt/intel/bin/ifort CXXFLAGS=' -O2 -fPIC' CFLAGS=' -O2 -fPIC ' FCFLAGS=' -O2 -fPIC ' FFLAGS=' -O2 -fPIC ' ./configure --prefix=/opt/mpich3.2/
+
  ''CC=/opt/intel/bin/icc''
 +
''CXX=/opt/intel/bin/icpc''
 +
''FC=/opt/intel/bin/ifort''
 +
''F77=/opt/intel/bin/ifort''
 +
''CXXFLAGS=' -O2 -fPIC' ''
 +
''CFLAGS=' -O2 -fPIC ' ''
 +
''FCFLAGS=' -O2 -fPIC ' ''
 +
''FFLAGS=' -O2 -fPIC ' ''
 +
''./configure --prefix=/opt/mpich3.2/''
  
  

Versione delle 14:24, 21 dic 2017

Indice

mpich2

Per prima cosa scaricare mpich da http://www.mpich.org/downloads/


Bisogna poi settare le variabili di compilazione per configure coerentemente con la propria installazione della macchina

CC=/opt/intel/bin/icc
CXX=/opt/intel/bin/icpc 
FC=/opt/intel/bin/ifort
F77=/opt/intel/bin/ifort 
CXXFLAGS=' -O2 -fPIC' 
CFLAGS=' -O2 -fPIC ' 
FCFLAGS=' -O2 -fPIC ' 
FFLAGS=' -O2 -fPIC ' 
./configure --prefix=/opt/mpich3.2/


Quindi dare in sequenza i comandi:

make
make check
make install


Infine aggiungere al .bashrc la path e le lib di mpich

export PATH=$PATH:/opt/mpich3.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mpich3.2/lib

zlib

Scaricare zlib da http://www.zlib.net/


Esportare le variabili di sistema di ifort e mpich

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/lib/intel64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mpich3.2/lib64


Impostare i settaggi coerenti con le path di installazione locali

CC=/opt/intel/bin/icc
CXX=/opt/intel/bin/icpc
FC=/opt/intel/bin/ifort 
F77=/opt/intel/bin/ifort 
MPICXX=/opt/mpich3.2/bin/mpicxx
MPIFC=/opt/mpich3.2/bin/mpif90 
MPICC=/opt/mpich3.2/bin/mpicc 
CPPFLAGS='-I/opt/intel/include -I/opt/mpich3.2/include'  
LDFLAGS='-L/opt/intel/lib/intel64 -L/opt/mpich3.2/lib64' 
./configure --prefix=/opt/zlib-1.2.8/


Quindi compilare e installare

make
make check
make install

szip

Scaricare szip da https://www.hdfgroup.org/doc_resource/SZIP/


Impostare i settaggi coerenti con le path di installazione locali

CC=/opt/intel/bin/icc CXX=/opt/intel/bin/icpc FC=/opt/intel/bin/ifort F77=/opt/intel/bin/ifort MPICXX=/opt/mpich3.2/bin/mpicxx MPIFC=/opt/mpich3.2/bin/mpif90 MPICC=/opt/mpich3.2/bin/mpicc CPPFLAGS='-I/opt/intel/include -I/opt/mpich3.2/include' LDFLAGS='-L/opt/intel/lib/intel64 -L/opt/mpich3.2/lib64' ./configure --prefix=/opt/szip-2.1


Quindi compilare

make
make check
make install

hdf5

Scaricare hdf5 da https://www.hdfgroup.org/HDF5/release/obtainsrc.html


Impostare i settaggi coerenti con le path di installazione locali

CC=/opt/intel/bin/icc CXX=/opt/intel/bin/icpc FC=/opt/intel/bin/ifort F77=/opt/intel/bin/ifort MPICXX=/opt/mpich3.2/bin/mpicxx MPIFC=/opt/mpich3.2/bin/mpif90 MPICC=/opt/mpich3.2/bin/mpicc ./configure --with-zlib=/opt/zlib-1.2.8/include,/opt/zlib-1.2.8/lib --with-szlib=/opt/szip-2.1 --prefix=/opt/hdf5-1.8.16/ --enable-fortran --enable-cxx


Quindi compilare e installare

make
make check
make install

netcdf per c

Scaricare netcdf per c da https://www.unidata.ucar.edu/downloads/netcdf/index.jsp


Esportare le librerie di hdf5

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hdf5-1.8.16/lib64


Settare la configurazione per il ./configure

CC=/opt/intel/bin/icc CXX=/opt/intel/bin/icpc FC=/opt/intel/bin/ifort F77=/opt/intel/bin/ifort MPICXX=/opt/mpich3.2/bin/mpicxx MPIFC=/opt/mpich3.2/bin/mpif90 MPICC=/opt/mpich3.2/bin/mpicc CPPFLAGS='-I/opt/zlib-1.2.8/include -I/opt/szip-2.1/include -I/opt/hdf5-1.8.16/include' LDFLAGS='-L/opt/zlib-1.2.8/lib -L/opt/szip-2.1/lib64 -L/opt/hdf5-1.8.16/lib64' ./configure --prefix=/opt/netcdf_4.4.0_icc


Compilare e installare1

make
make check
make install

netcdf per fortran

Scaricare netcdf per fortran da http://github.com/Unidata/netcdf-c/releases


Esportare le librerie di hdf5 e netcdf-c

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hdf5-1.8.16/lib64:/opt/netcdf_4.4.0_icc/lib64


Lanciare il ./configure coerente con le installazioni locali

CC=/opt/intel/bin/icc CXX=/opt/intel/bin/icpc FC=/opt/intel/bin/ifort F77=/opt/intel/bin/ifort MPICXX=/opt/mpich3.2/bin/mpicxx MPIFC=/opt/mpich3.2/bin/mpif90 MPICC=/opt/mpich3.2/bin/mpicc CPPFLAGS='-I/opt/zlib-1.2.8/include -I/opt/szip-2.1/include -I/opt/hdf5-1.8.16/include -I/opt/netcdf_4.4.0_icc/include' LDFLAGS='-L/opt/zlib-1.2.8/lib -L/opt/szip-2.1/lib64 -L/opt/hdf5-1.8.16/lib64 -L/opt/netcdf_4.4.0_icc/lib64' ./configure --prefix=/opt/netcdf_4.4.3_ifort


Quindi compilare e installare

make
make check
make install

Compilazione di Delft3D

Innanzitutto verificare che le $LD_LIBRARY_PATH siano quelle giuste:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/zlib-1.2.8/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/szip-2.1/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hdf5-1.8.16/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/netcdf_4.4.0_icc/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/netcdf_4.4.3_ifort/lib64


Poi bisogna settare le variabili per le librerie netcdf (VECCHIO MODO, NON FUNZIONA, VEDERE SEZIONE DOPO)

export NETCDFROOT=/opt/netcdf_4.4.3_ifort
export PKG_CONFIG_PATH=/$NETCDFROOT/lib64/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NETCDFROOT/lib64
export NETCDFROOT=/opt/netcdf_4.4.0_icc
export PKG_CONFIG_PATH=/$NETCDFROOT/lib64/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NETCDFROOT/lib64

Quindi impostare i settaggi di configurazione con ./configure

CC=/opt/intel/bin/icc CXX=/opt/intel/bin/icpc FC=/opt/intel/bin/ifort F77=/opt/intel/bin/ifort MPICXX=/opt/mpich3.2/bin/mpicxx MPIF77=/opt/mpich3.2/bin/mpif90 MPIFC=/opt/mpich3.2/bin/mpif90 FCLIBS='-L/opt/intel/lib/intel64 -L/opt/mpich3.2/lib64 -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl -lmpifort' FLIBS='-L/opt/intel/lib/intel64 -L/opt/mpich3.2/lib64 -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl' LIBS=' -L/opt/mpich3.2/lib64 -L/opt/intel/lib/intel64 -lrt -lexpat -lstdc++ -limf -lsvml -lirng -lintlc -lmpich -lmpifort' PPFLAGS='-I/opt/zlib-1.2.8/include -I/opt/szip-2.1/include -I/opt/hdf5-1.8.15/include -I/opt/netcdf_4.4.0_icc/include -I/opt/netcdf_4.4.3_ifort/include' LDFLAGS='-L/opt/zlib-1.2.8/lib -L/opt/szip-2.1/lib64 -L/opt/hdf5-1.8.16/lib64 -L/opt/netcdf_4.4.0_icc/lib64 -L/opt/netcdf_4.4.3_ifort/lib64' ./configure --prefix=/opt/Delft3D/5740_ifort



Per far funzioanre netcdf bisogna fare questi settaggi

export CC=/opt/intel/bin/icc
export CXX=/opt/intel/bin/icpc
export FC=/opt/intel/bin/ifort
export F77=/opt/intel/bin/ifort
export MPICXX=/opt/mpich3.2/bin/mpicxx
export MPIF77=/opt/mpich3.2/bin/mpif90
export MPIFC=/opt/mpich3.2/bin/mpif90
export FCLIBS='-L/opt/intel/lib/intel64 -L/opt/mpich3.2/lib64 -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl -lmpifort' 
export FLIBS='-L/opt/intel/lib/intel64 -L/opt/mpich3.2/lib64 -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl' 
export LIBS='-L/opt/mpich3.2/lib64 -L/opt/intel/lib/intel64 -lrt -lexpat -lstdc++ -limf -lsvml -lirng -lintlc -lmpich -lmpifort' 
export FLIBS='L/opt/netcdf_4.4.4_ifort/lib -lnetcdff -L/opt/zlib-1.2.11/lib -L/opt/szip-2.1.1/lib64 -L/opt/hdf5-1.10.1/lib64 -L/opt/netcdf_4.5.0_icc/lib64 -lnetcdf -lnetcdf' 
export NETCDF_CFLAGS='-I/opt/netcdf_4.4.4_ifort/include -I/opt/zlib-1.2.11/include -I/opt/szip-2.1.1/include -I/opt/hdf5-1.10.1/include -I/opt/netcdf_4.5.0_icc/include' 
export NETCDF_LIBS='-L/opt/netcdf_4.4.4_ifort/lib -lnetcdff -L/opt/zlib-1.2.11/lib -L/opt/szip-2.1.1/lib64 -L/opt/hdf5-1.10.1/lib64 -L/opt/netcdf_4.5.0_icc/lib64 -lnetcdf -lnetcdf' 
export NETCDF_FORTRAN_LIBS=' -L/opt/netcdf_4.4.4_ifort/lib -lnetcdff -L/opt/zlib-1.2.11/lib -L/opt/szip-2.1.1/lib64 -L/opt/hdf5-1.10.1/lib64' 
export NETCDF_LIBS='-L/opt/netcdf_4.4.4_ifort/lib -lnetcdff -L/opt/zlib-1.2.11/lib -L/opt/szip-2.1.1/lib64 -L/opt/hdf5-1.10.1/lib64' 

./configure --prefix=/opt/delft3D-t-7959-ifort/ 



Infine compilare e installare

make
make install