cyclops-community / ctf

Cyclops Tensor Framework: parallel arithmetic on multidimensional arrays
Other
194 stars 53 forks source link

unable to install in windows subsystem linux #124

Closed ghost closed 2 years ago

ghost commented 3 years ago

Hi,

I tried install ctf in windows subsystem linux. ./configure then make then make install. ./configure gives me

Checking compiler type/version... Using GNU compilers.
Checking whether __APPLE__ is defined... no.
Checking compiler (CXX)... successful.
Checking flags (CXXFLAGS)... successful.
Checking availability of C++11... successful (tacking on -std=c++0x to CXXFLAGS).
Checking for MPI... detected limited MPI type-naming convention, e.g. MPI_C_DOUBLE_COMPLEX, adapting to use MPI::... instead of MPI_CXX_... for some types.
Checking for OpenMP... using OpenMP via -fopenmp flag.
Checking for static BLAS library...
    WARNING: static BLAS libirary did not work, executables will not build (errors for a few configurations below),
+ mpicxx -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -Wall -O3 -std=c++0x -fopenmp .test.cxx
/tmp/cctC2JSb.o: In function `main':
.test.cxx:(.text.startup+0x5): undefined reference to `dgemm_'
collect2: error: ld returned 1 exit status
+ mpicxx -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -Wall -O3 -std=c++0x -fopenmp .test.cxx
/tmp/cc0XAB92.o: In function `main':
.test.cxx:(.text.startup+0x5): undefined reference to `dgemm'
collect2: error: ld returned 1 exit status
+ mpicxx -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -Wall -O3 -std=c++0x -fopenmp .test.cxx -Wl,-Bstatic -lblas -Wl,-Bdynamic
/usr//lib/libblas.a(xerbla.o): In function `xerbla_':
(.text+0x4c): undefined reference to `_gfortran_st_write'
/usr//lib/libblas.a(xerbla.o): In function `xerbla_':
(.text+0x5c): undefined reference to `_gfortran_transfer_character_write'
/usr//lib/libblas.a(xerbla.o): In function `xerbla_':
(.text+0x6c): undefined reference to `_gfortran_transfer_integer_write'
/usr//lib/libblas.a(xerbla.o): In function `xerbla_':
(.text+0x74): undefined reference to `_gfortran_st_write_done'
/usr//lib/libblas.a(xerbla.o): In function `xerbla_':
(.text+0x7d): undefined reference to `_gfortran_stop_string'
collect2: error: ld returned 1 exit status
+ mpicxx -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -Wall -O3 -std=c++0x -fopenmp .test.cxx -Wl,-Bstatic -lblas -Wl,-Bdynamic
/tmp/cc3iyXfF.o: In function `main':
.test.cxx:(.text.startup+0x5): undefined reference to `dgemm'
collect2: error: ld returned 1 exit status
    please specify correct LIB_PATH and LIBS (run ./configure --help to see all options),
    CTF library can still build (via make), but executables will not!

Checking for availability of static batched gemm... unavailable, will build without -DUSE_BATCH_GEMM.
Checking for dynamic BLAS library... detected that -Wl,-Bdynamic -lblas works, speculatively using (-Wl,-Bdynamic) -lblas (with underscores).
Checking for availability of dynamic batched gemm... Checking for static LAPACK library...   LAPACK not found, some functionality and tests will be unavailable,
  to fix reconfigure and add --with-lapack and the appropriate library path
  (LIB_PATH/LIBS for static, LD_LIB_PATH/LD_LIBS for dynamic)
Checking for dynamic LAPACK library... dynamic LAPACK library found ($BDYNAMIC -llapack).
Checking for sparse MKL routines... MKL symbol not detected, assuming sparse MKL routines are unavailable (affects sparse BLAS performance).
Checking for static ScaLAPACK...   static ScaLAPACK not found, some functionality and tests will be unavailable,
  to fix reconfigure and add --with-scalapack and the appropriate library path
  (LIB_PATH/LIBS for static, LD_LIB_PATH/LD_LIBS for dynamic) or configure with
  --build-scalapack to attempt to automatically download and build scalapack
Checking for dynamic ScaLAPACK...   dynamic ScaLAPACK not found, some functionality and tests will be unavailable,
  to fix reconfigure and add --with-scalapack and the appropriate library path
  (LD_LIB_PATH/LD_LIBS for dynamic, LD_LD_LIB_PATH/LD_LD_LIBS for dynamic)
Checking for HPTT (optimized transposition library)... HPTT does not work, will use built-in transpose kernel.
Checking whether to use CUDA... CUDA will not be used.
A config.mk file has been created (to adjust all settings edit the config.mk file manually or rerun ./configure to create a new one).
A setup.py file has been created (to adjust all settings edit the setup.py file manually or rerun ./configure to create a new one).
Configure finished successfully (see how-did-i-configure to determine how script was executed).

which looks fine.

Then make gives me

make ctflib
make[1]: Entering directory `/home/username/Research_Projects/ctf-master/ctf-master'
make ctf -C src;
make[2]: Entering directory `/home/username/Research_Projects/ctf-master/ctf-master/src'
make -C interface
make[3]: Entering directory `/home/username/Research_Projects/ctf-master/ctf-master/src/interface'
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c common.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/common.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c flop_counter.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/flop_counter.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c world.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/world.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c idx_tensor.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/idx_tensor.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c term.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/term.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c schedule.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/schedule.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c semiring.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/semiring.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c partition.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/partition.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c fun_term.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/fun_term.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c monoid.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/monoid.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c set.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/set.o
mpicxx -O3 -std=c++0x -fopenmp -Wall  -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -DUSE_MPI_CPP -DFTN_UNDERSCORE=1 -DUSE_LAPACK   -c ring.cxx -o /home/username/Research_Projects/ctf-master/ctf-master/obj/ring.o
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘int64_t CTF_int::read_data_mpiio(const CTF::World*, const char*, char***) [with dtype = int; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:930:80:   required from ‘void CTF::read_sparse_from_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = int]’
../../include/../src/interface/tensor.cxx:947:70:   required from here
../../include/../src/interface/graph_io_aux.cxx:170:76: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD,fpath, MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
                                                                            ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘int64_t CTF_int::read_data_mpiio(const CTF::World*, const char*, char***) [with dtype = double; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:930:80:   required from ‘void CTF::read_sparse_from_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = double]’
../../include/../src/interface/tensor.cxx:952:73:   required from here
../../include/../src/interface/graph_io_aux.cxx:170:76: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD,fpath, MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
                                                                            ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘int64_t CTF_int::read_data_mpiio(const CTF::World*, const char*, char***) [with dtype = float; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:930:80:   required from ‘void CTF::read_sparse_from_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = float]’
../../include/../src/interface/tensor.cxx:957:72:   required from here
../../include/../src/interface/graph_io_aux.cxx:170:76: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD,fpath, MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
                                                                            ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘int64_t CTF_int::read_data_mpiio(const CTF::World*, const char*, char***) [with dtype = long int; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:930:80:   required from ‘void CTF::read_sparse_from_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = long int]’
../../include/../src/interface/tensor.cxx:962:74:   required from here
../../include/../src/interface/graph_io_aux.cxx:170:76: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD,fpath, MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
                                                                            ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘void CTF_int::write_data_mpiio(const CTF::World*, const char*, char*, int64_t) [with dtype = int; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:974:70:   required from ‘void CTF::write_sparse_to_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = int]’
../../include/../src/interface/tensor.cxx:981:69:   required from here
../../include/../src/interface/graph_io_aux.cxx:237:122: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE, MPI_INFO_NULL, &fh);
                                                                                                                          ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx:239:95: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE, MPI_INFO_NULL, &fh);
                                                                                               ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘void CTF_int::write_data_mpiio(const CTF::World*, const char*, char*, int64_t) [with dtype = double; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:974:70:   required from ‘void CTF::write_sparse_to_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = double]’
../../include/../src/interface/tensor.cxx:986:72:   required from here
../../include/../src/interface/graph_io_aux.cxx:237:122: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE, MPI_INFO_NULL, &fh);
                                                                                                                          ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx:239:95: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE, MPI_INFO_NULL, &fh);
                                                                                               ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘void CTF_int::write_data_mpiio(const CTF::World*, const char*, char*, int64_t) [with dtype = float; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:974:70:   required from ‘void CTF::write_sparse_to_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = float]’
../../include/../src/interface/tensor.cxx:991:71:   required from here
../../include/../src/interface/graph_io_aux.cxx:237:122: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE, MPI_INFO_NULL, &fh);
                                                                                                                          ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx:239:95: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE, MPI_INFO_NULL, &fh);
                                                                                               ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx: In instantiation of ‘void CTF_int::write_data_mpiio(const CTF::World*, const char*, char*, int64_t) [with dtype = long int; int64_t = long int]’:
../../include/../src/interface/tensor.cxx:974:70:   required from ‘void CTF::write_sparse_to_file_base(const char*, bool, bool, CTF::Tensor<dtype>*) [with dtype = long int]’
../../include/../src/interface/tensor.cxx:996:73:   required from here
../../include/../src/interface/graph_io_aux.cxx:237:122: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE, MPI_INFO_NULL, &fh);
                                                                                                                          ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
In file included from ../../include/../src/interface/tensor.h:1282:0,
                 from ../../include/ctf.hpp:17,
                 from ring.cxx:1:
../../include/../src/interface/graph_io_aux.cxx:239:95: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     MPI_File_open(MPI_COMM_WORLD, fpath, MPI_MODE_WRONLY | MPI_MODE_CREATE, MPI_INFO_NULL, &fh);
                                                                                               ^
In file included from ../../include/ctf.hpp:5:0,
                 from ring.cxx:1:
/usr/lib/openmpi/include/mpi.h:1146:20: error:   initializing argument 2 of ‘int MPI_File_open(MPI_Comm, char*, int, MPI_Info, ompi_file_t**)’ [-fpermissive]
 OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
                    ^
make[3]: *** [/home/username/Research_Projects/ctf-master/ctf-master/obj/ring.o] Error 1
make[3]: Leaving directory `/home/username/Research_Projects/ctf-master/ctf-master/src/interface'
make[2]: *** [interface] Error 2
make[2]: Leaving directory `/home/username/Research_Projects/ctf-master/ctf-master/src'
make[1]: *** [ctf_objs] Error 2
make[1]: Leaving directory `/home/username/Research_Projects/ctf-master/ctf-master'
make: *** [/home/username/Research_Projects/ctf-master/ctf-master/lib/libctf.a] Error 2

make install gives a lot of error messages. I would like to know what setting I am missing to proceed normally. Thanks a lot.

ghost commented 3 years ago

By the way, what is the efficiency of python module comparing with C++ version in ctf?

solomonik commented 2 years ago

@Montagna2023 taking into account also the info you sent via email regarding your MPICH version (3.0.4, from 2013), I would suggest to upgrade MPICH on your system. The MPI file I/O standard may have changed since then.

solomonik commented 2 years ago

By the way, what is the efficiency of python module comparing with C++ version in ctf?

Should be the same in most cases. The same underlying code is called. The Python version may create unnecessary clones/copies of tensors when executing some routines, that would be the only overhead.

ghost commented 2 years ago

@solomonik Thank you so much!

After updated to mpich 3.4.2, and make install with superuser, I got if [ -d hptt ]; then \ echo "WARNING: detected HPTT installation in hptt/, you might need to also install it manually separately."; \ fi if [ -d scalapack ]; then \ echo "WARNING: detected ScaLAPACK installation in scalapack/, you might need to also install it manually separately."; \ fi WARNING: detected ScaLAPACK installation in scalapack/, you might need to also install it manually separately. mkdir -p /usr/local/lib /usr/local/include cp /home/username/Research_Projects/ctf-master/ctf-master/lib/libctf.a /usr/local/lib cp /home/username/Research_Projects/ctf-master/ctf-master/lib_shared/libctf.so /usr/local/lib cd src/scripts && bash ./expand_includes.sh && cd .. mv include/ctf_all.hpp /usr/local/include/ctf.hpp

anyway, make python_install and make python_test lead to

Cyclops Python tests completed. . Wonderful!

Though two things I am bit unsure. In configure, there are messages (1)

Checking for static BLAS library...
    WARNING: static BLAS libirary did not work, executables will not build (errors for a few configurations below),
+ mpicxx -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -Wall -O3 -std=c++0x -fopenmp .test.cxx
/tmp/ccYvdK0e.o: In function `main':
.test.cxx:(.text.startup+0x5): undefined reference to `dgemm_'
collect2: error: ld returned 1 exit status
+ mpicxx -D_POSIX_C_SOURCE=200112L -D__STDC_LIMIT_MACROS -Wall -O3 -std=c++0x -fopenmp .test.cxx
/tmp/ccxgOa7T.o: In function `main':
.test.cxx:(.text.startup+0x5): undefined reference to `dgemm'
collect2: error: ld returned 1 exit status

I have lblas in my local PC.

(2) make test leads to algstrct.cxx:(.text+0x1e43): undefined reference toscopy' algstrct.cxx:(.text+0x1e63): undefined reference to `zcopy' algstrct.cxx:(.text+0x1e83): undefined reference to dcopy_' ... lapack_symbs.cxx:(.text+0x163): undefined reference todormqr_' collect2: error: ld returned 1 exit status `

solomonik commented 2 years ago

Configure suggests that it was not able to find a BLAS library or was unhappy with the one you specified. See ./configure --help and build examples on the wiki for how to pass the path to BLAS. If you just need the C++ CTF library, BLAS need not be provided to CTF, but must be linked along with CTF to whatever application uses CTF. To build C++ targets in CTF, such as tests, you need to provide a valid static BLAS library, while to build python CTF, you need a dynamic build linked to a dynamic BLAS library. You can also control which builds CTF configures for, with ./configure --no-static or ./configure --no-dynamic, by default it tries to do both when you run make.