lattice / quda

QUDA is a library for performing calculations in lattice QCD on GPUs.
https://lattice.github.io/quda
Other
289 stars 97 forks source link

MILC 7.7.11 with QUDA 0.8.0 compilation issues #433

Closed lcosmai closed 8 years ago

lcosmai commented 8 years ago

I tried to compile MILC v7.7.11 with QUDA 0.8.0.

This is my compilation environment: Operating System: CentOS Linux release 7.0.1406 (Core) Architecture: x86_64 2 nVIDIA Tesla K80 "Kepler" per node CUDA release: 7.0.28 Compilers: INTEL

I followed the instructions given in https://github.com/lattice/quda/wiki/MILC-with-QUDA

I downloaded (git clone https://github.com/lattice/quda.git) and configured quda for MILC with: ./configure --with-cuda=/cineca/prod/compilers/cuda/7.0.28/none
--enable-gpu-arch=sm_35 --enable-multi-gpu --with-mpi=/cineca/prod/compilers/intel/cs-xe-2015/binary/impi_5.0.2 CC=mpicc CXX=mpicxx --disable-wilson-dirac --disable-clover-dirac --disable-domain-wall-dirac --disable-twisted-mass-dirac --enable-hisq-fatlink --enable-gauge-force --enable-hisq-force

The quda 0.8.0 compilation was successful.

Then I downloaded the MILC code (git clone https://github.com/milc-qcd/milc_qcd.git) and made the suggested (as in https://github.com/lattice/quda/wiki/MILC-with-QUDA) changes in the Makefile in the ks_imp_rhmc directory. Then I issued the following command: make -f Makefile clean su3_rhmc_hisq. After having compiled several modules, the compilation aborted with the following error:

mpicc -c -O3 -std=c99 -Wall -DQMP -DCG_OK -DREMAP_STDIO_APPEND -DDBLSTORE_FN -DD_FN_GATHER13 -DFEWSUMS -DKS_MULTICG=HYBRID -DKS_MULTIFF=FNMAT -DCL_CG=BICG -DC_GLOBAL_INLINE -DPRECISION=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I/galileo/home/userexternal/lcosmai0/scidac-intel/install/qio/include -I/galileo/home/userexternal/lcosmai0/scidac-intel/install/qmp/include -I. -DHAVE_QMP -DHAVE_QIO -DHAVE_QUDA -DUSE_CG_GPU -DUSE_GF_GPU -DUSE_FL_GPU -DUSE_FF_GPU -DSET_QUDA_SUMMARIZE -DFN -DINT_ALG=INT_3G1F -DHISQ_REUNIT_ALLOW_SVD -DHISQ_REUNIT_SVD_REL_ERROR=1e-8 -DHISQ_REUNIT_SVD_ABS_ERROR=1e-8 -DHISQ_FF_MULTI_WRAPPER -DHISQ_FORCE_FILTER=5.0e-5 -DHMC -I/galileo/home/userexternal/lcosmai0/quda/include -I/lib -I/galileo/home/userexternal/lcosmai0/quda/tests -I/cineca/prod/compilers/cuda/7.0.28/none/include update_u.c In file included from /galileo/home/userexternal/lcosmai0/quda/include/quda_milc_interface.h(5), from ../include/generic_quda.h(7), from update_u.c(18): /galileo/home/userexternal/lcosmai0/quda/include/quda.h(1014): error: expected a ")" void destroyDeflationQuda(QudaInvertParam param, const int X = NULL, void _h_u = NULL, double inv_eigenvals = NULL); ^

compilation aborted for update_u.c (code 2) make[1]: * [update_u.o] Error 2 make[1]: Leaving directory `/galileo/home/userexternal/lcosmai0/WORK_AREA/milc_qcd/ks_imp_rhmc' make: * [su3_rhmc_hisq] Error 2

My Makefile can be viewed at https://drive.google.com/open?id=0BxE4mI8SH7wsS2MxY3dmUDROMms

mathiaswagner commented 8 years ago

This was an issue with the quda interface using c++ features and not being valid C. This has been fixed. Please update your release. Note that git clone https://github.com/lattice/quda.git will check out the development branch of QUDA. If you want to have the stable version you should make sure to get the master branch.

Please either switch to master or update your checkout to the latest commit.

Let us know whether that resolved your issue.

lcosmai commented 8 years ago

I switched to quda 0.8.0 master and the MILC 7.7.11 compilation with quda 0.8.0 is OK. Thanks for the support! I would like suggest that in the instructions given in https://github.com/lattice/quda/wiki/MILC-with-QUDA "git checkout develop" should be replaced with "git checkout master".

mathiaswagner commented 8 years ago

Strictly speaking there is no 0.8.0 yet and you probably checkout out quda master which is the latest released version (0.7.2)

maddyscientist commented 8 years ago

@lcosmai if you do want to use QUDA 0.8 our release candidate it is in the release/0.8.x branch. We hope to release this in the next week or two, once we have competed final testing. It should be as stable, if not more stable than the current master as well as giving improved performance and more features.