Hi,
I want to install it on a high-performance computer cluster running on CentOS 6. When I am trying to install it using 'python BuildOSMPS.py' is raising error which is quoted below.
"
make MPSMain > make.log 2>&1
python deref.py make.log
head -n 40 make.log
gfortran
cd /home/suman.m/openMPS/MPSFortLib/Mods/; python TemplateGenerator.py /home/suman.m/openMPS/MPSFortLib/Mods/BasicOps.o /home/suman.m/openMPS/MPSFortLib/Mods/IOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LinearAlgebra.o /home/suman.m/openMPS/MPSFortLib/Mods/ExpokitOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Tensors.o /home/suman.m/openMPS/MPSFortLib/Mods/qTensors.o /home/suman.m/openMPS/MPSFortLib/Mods/ContractionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/DecompositionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPSOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPDOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LPTNOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LanczosOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Convergence.o /home/suman.m/openMPS/MPSFortLib/Mods/ObsOps.o /home/suman.m/openMPS/MPSFortLib/Mods/VariationalOps.o /home/suman.m/openMPS/MPSFortLib/Mods/iMPSOps.o /home/suman.m/openMPS/MPSFortLib/Mods/KrylovOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TDVPOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TEBDOps.o /home/suman.m/openMPS/MPSFortLib/Mods/ZaletelOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TimeEvolutionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/PyInterface.o --mpi=gfortran --dbg=F --imps=T --macacc=F
cd /home/suman.m/openMPS/MPSFortLib/Mods/; make all
make[1]: Entering directory /home/suman.m/openMPS/MPSFortLib/Mods'
make[1]: Nothing to be done for
all'.
make[1]: Leaving directory `/home/suman.m/openMPS/MPSFortLib/Mods'
gfortran -O3 -c MPSMain.f90 -I/home/suman.m/openMPS/MPSFortLib/Mods/
gfortran -O3 -o Execute_MPSMain MPSMain.o /home/suman.m/openMPS/MPSFortLib/Mods/BasicOps.o /home/suman.m/openMPS/MPSFortLib/Mods/IOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LinearAlgebra.o /home/suman.m/openMPS/MPSFortLib/Mods/ExpokitOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Tensors.o /home/suman.m/openMPS/MPSFortLib/Mods/qTensors.o /home/suman.m/openMPS/MPSFortLib/Mods/ContractionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/DecompositionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPSOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPDOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LPTNOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LanczosOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Convergence.o /home/suman.m/openMPS/MPSFortLib/Mods/ObsOps.o /home/suman.m/openMPS/MPSFortLib/Mods/VariationalOps.o /home/suman.m/openMPS/MPSFortLib/Mods/iMPSOps.o /home/suman.m/openMPS/MPSFortLib/Mods/KrylovOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TDVPOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TEBDOps.o /home/suman.m/openMPS/MPSFortLib/Mods/ZaletelOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TimeEvolutionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/PyInterface.o -larpack -llapack -lblas -I/home/suman.m/openMPS/MPSFortLib/Mods/
/usr/bin/ld: cannot find -larpack
collect2: error: ld returned 1 exit status
make: *** [MPSMain] Error 1
rm MPSMain.o
mv MPSFortLib/make.log .
"
Before installing OSMPS I have installed these packages:
blas-3.2.1-5.el6.x86_64.rpm
blas-devel-3.2.1-5.el6.x86_64.rpm
lapack-3.2.1-5.el6.x86_64.rpm
lapack-devel-3.2.1-5.el6.x86_64.rpm.
Thanks and regards,
Suman
Hi Suman,
cluster are always difficult to give advice. I have two things in mind
1) If it is a university cluster, they might have some pre-installed
modules including LAPACK and BLAS, which you can load and link (sometimes
even without specifying the whole path.). The time figuring out how to do
this is usually a good investment, especially if you can use intel
compilers then. You can compile it yourself, but user rights are usually
limited. But I am glad you were able to do it.
2) You seem to have trouble with Arpack. Arpack is only used for iMPS
(infinite MPS) and not the same as LAPACK/BLAS. If you are using only the
finite-size systems right now and have a newer version of OSMPS, you can
compile without Arpack. I believe it should be sufficient to pass
--ARPACK_FLAG='' to overwrite the default when calling BuildOSMPS.py. Matt
has changed some interface for compiling, so I cannot tell right now. But
if you still have trouble there after a try, let me know and we will look
into it.
That is the quick overview, we can go into more details if necessary.
Best regards,
Daniel
On Mon, Jul 1, 2019 at 7:31 AM Suman Mondal sumanf40@users.sourceforge.net
wrote:
Related
Tickets: #32
It looks like the linker can't find ARPACK. Can you confirm it's installed on the system?
I am not able to find LAPACK package for CentOS
Also, as Daniel pointed out, to prevent the build script from linking ARPACK, simply pass this to the command line in place of command documented on our Wiki:
EDIT: If you're not averse to Anaconda package management, the above Wiki will instruct you on grabbing all necessary dependencies and building from source within a virtual environment. I've also added some notes below.
NOTE: You may change the paths in
prefix
,FC
,INCFLAGS
, andLIBFLAGS
to suit your system's setup.prefix
is a keyword that tells the build script where to install the executable./usr/local/bin
is a common choice. You can also place it in a custom location, but it should be discoverable in yourPATH
variable so that Python picks it up when running simulations, on import, etc.FC
should point to your Fortran compiler.INCFLAGS
should contain all include path directories.LIBFLAGS
should contain all library path directoriesARPACK_FLAG
is an override for linking ARPACK. Setting it to null (''
) will prevent the compiler from linking ARPACK to the object binaries.Last edit: Matthew Jones 2019-07-02
Hello!
I have tried to install it by:
python BuildOSMPS.py --option=ARPACK_FLAG:''
It is still raising the following message:
make MPSMain > make.log 2>&1
python deref.py make.log
head -n 40 make.log
gfortran
cd /home/suman.m/openMPS/MPSFortLib/Mods/; python TemplateGenerator.py /home/suman.m/openMPS/MPSFortLib/Mods/BasicOps.o /home/suman.m/openMPS/MPSFortLib/Mods/IOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LinearAlgebra.o /home/suman.m/openMPS/MPSFortLib/Mods/ExpokitOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Tensors.o /home/suman.m/openMPS/MPSFortLib/Mods/qTensors.o /home/suman.m/openMPS/MPSFortLib/Mods/ContractionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/DecompositionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPSOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPDOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LPTNOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LanczosOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Convergence.o /home/suman.m/openMPS/MPSFortLib/Mods/ObsOps.o /home/suman.m/openMPS/MPSFortLib/Mods/VariationalOps.o /home/suman.m/openMPS/MPSFortLib/Mods/KrylovOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TDVPOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TEBDOps.o /home/suman.m/openMPS/MPSFortLib/Mods/ZaletelOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TimeEvolutionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/PyInterface.o --mpi=gfortran --dbg=F --imps=F --macacc=F
cd /home/suman.m/openMPS/MPSFortLib/Mods/; make all
make[1]: Entering directory
/home/suman.m/openMPS/MPSFortLib/Mods' make[1]: Nothing to be done for
all'.make[1]: Leaving directory
/home/suman.m/openMPS/MPSFortLib/Mods' gfortran -O3 -c MPSMain.f90 -I/home/suman.m/openMPS/MPSFortLib/Mods/ gfortran -O3 -o Execute_MPSMain MPSMain.o /home/suman.m/openMPS/MPSFortLib/Mods/BasicOps.o /home/suman.m/openMPS/MPSFortLib/Mods/IOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LinearAlgebra.o /home/suman.m/openMPS/MPSFortLib/Mods/ExpokitOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Tensors.o /home/suman.m/openMPS/MPSFortLib/Mods/qTensors.o /home/suman.m/openMPS/MPSFortLib/Mods/ContractionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/DecompositionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPSOps.o /home/suman.m/openMPS/MPSFortLib/Mods/MPDOOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LPTNOps.o /home/suman.m/openMPS/MPSFortLib/Mods/LanczosOps.o /home/suman.m/openMPS/MPSFortLib/Mods/Convergence.o /home/suman.m/openMPS/MPSFortLib/Mods/ObsOps.o /home/suman.m/openMPS/MPSFortLib/Mods/VariationalOps.o /home/suman.m/openMPS/MPSFortLib/Mods/KrylovOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TDVPOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TEBDOps.o /home/suman.m/openMPS/MPSFortLib/Mods/ZaletelOps.o /home/suman.m/openMPS/MPSFortLib/Mods/TimeEvolutionOps.o /home/suman.m/openMPS/MPSFortLib/Mods/PyInterface.o -llapack -lblas -I/home/suman.m/openMPS/MPSFortLib/Mods/ /home/suman.m/openMPS/MPSFortLib/Mods/PyInterface.o: In function
pyinterface_MOD_runmps':PyInterface.f90:(.text+0x43600): undefined reference to
__impsops_MOD_infinitemps_mps' PyInterface.f90:(.text+0x4433b): undefined reference to
impsops_MOD_infinitemps_mpsc'/cm/shared/apps/lapack/open64/64/3.6.0/liblapack.so(dgesvd.o): In function
dgesvd_': /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dgesvd.f:313: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dgesvd.f:313: undefined reference to
s_copy' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dgesvd.f:474: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dgesvd.f:474: undefined reference to
s_copy' /cm/shared/apps/lapack/open64/64/3.6.0/liblapack.so(dhseqr.o): In function
dhseqr_':/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dhseqr.f:453: undefined reference to
s_cat' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dhseqr.f:453: undefined reference to
s_copy'/cm/shared/apps/lapack/open64/64/3.6.0/liblapack.so(dlange.o): In function
dlange_': /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dlange.f:165: undefined reference to
s_cmp'/cm/shared/apps/lapack/open64/64/3.6.0/liblapack.so(dormbr.o): In function
dormbr_': /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:273: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:273: undefined reference to
s_copy' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:281: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:281: undefined reference to
s_copy' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:276: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:276: undefined reference to
s_copy' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:284: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormbr.f:284: undefined reference to
s_copy' /cm/shared/apps/lapack/open64/64/3.6.0/liblapack.so(dormhr.o): In function
dormhr_':/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormhr.f:252: undefined reference to
s_cat' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormhr.f:252: undefined reference to
s_copy'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormhr.f:254: undefined reference to
s_cat' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormhr.f:254: undefined reference to
s_copy'/cm/shared/apps/lapack/open64/64/3.6.0/liblapack.so(dormlq.o): In function
dormlq_': /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormlq.f:247: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormlq.f:247: undefined reference to
s_copy' /usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormlq.f:272: undefined reference to
s_cat'/usr/src/redhat/BUILD/lapack-3.6.0/SRC/dormlq.f:272: undefined reference to `s_copy'
mv MPSFortLib/make.log .
Hello,
I have tried to install it with
python BuildOSMPS.py --option=ARPACK_FLAG:''
The raised output message is attached in the attachment.
Regards,
Suman
It looks like it didn't like passing a null character. Passing
--option=ARPACK_FLAG:' '
gets it past these copy errors.Unfortunately, it looks like there's a new error from trying to compile iMPS modules:
I'm not aware of a clean way not to compile the iMPS targets to avoid the ARPACK dependency. I'd have to make some changes to the build scripts to facilitate avoiding these targets.
Is there a reason you can't install ARPACK? It would be good to know, and would help us prioritize feature modularity within our lirbary.
Hello Matthew,
Thank you for replying. I was searching for the ARPACK packege for CentOS 6 but there is no ARPACK packege in the website.
So, my CentOS 6 is a touch rusty, but the ARPACK binaries are available under the EPEL (Extra Pacakges for Enterprise Linux) repo. You can verify that EPEL is active by running
If you don't see an item that looks like
epel: ...
, then you can add it withAfter this, rerun
yum repolist
to confirm that you see an entry forepel
. Once enabled, you can install ARPACK via the following command:Some references:
ARPACK on CentOS6
Recent article on enabling EPEL on CentOS6
Note: there is a quick how-to instruction set for installing the EPEL release on CentOS6. This may not grab the latest release (I didn't test this). The article on enabling EPEL does grab the latest EPEL release from the Fedora Project.
Last edit: Matthew Jones 2019-07-11
Hi everyone,
my personal approach would be not to install Arpack if you do not run infinite-size MPS (iMPS). I have attached you an older version of the BuildOSMPS.py script, which is named build.py to avoid name conflicts. Starting around line 96, it has pre-defined sets of build options, which once worked on one of our architectures. For example you can hijack the
unix
from line 110 and replace the ARPACK entry with an empty string. Then, you should be able to callpython build.py --prefix='.' --os=unix --clean
Prefix sets the installation path, where dot is the current folder. The os optional loads one of the predefined settings, which have been mostly used for different operating systems. The clean option is only necessary for the first compilation to get rid of whatever files are still around from the most recent compiling efforts. You might have to adapt LAPACK flags, but you figured this out once already.
Best regards,
Daniel