Downloading and Installation
Latest version is available at https://github.com/Weisewill/quest-qmc
A previous version is available at
https://code.google.com/p/quest-qmc
The version of QUEST is available locally on this site is QUEST-1.3.0.tgz. This tar file can be extracted by
tar -xzf QUEST-1.3.0.tgzwhich will create a directory
QUEST-1.3.0To compile the library in most Linux systems with the GNU compilers, just run the command:
makeFor different environments, please edit the make.inc file to suit your system.
A test program is available in the EXAMPLES directory, including several input files (.in extension). To do a quick check of your QUEST installation, first switch to the EXAMPLES/test directory and then issue the command:
./test small.inThis will generate the output file small.out.
Multicore processors
This tar file includes a basic version of the required BLAS and LAPACK libraries. To obtain better peformance, QUEST must be linked with an optimized version of these libraries. In order to benefit from parallelism in multicore processors, the BLAS library (and optionally LAPACK) must be multithreaded (such as ATLAS or Intel's MKL). Usually, these libraries are provided by the vendor in high perfomance computer systems. Please consult the system documentation for details and edit accordingly the BLASLAPACK variable in the make.inc file.GPU acceleration
QUEST also contains experimental support for GPU accelerators using the Nvidia CUDA development tools and the MAGMA library. This code is not active by default. To activate the GPU support, uncomment all the CUDA and MAGMA related variables in make.inc file and activate the flag DQMC_CUDA in PRG_FLAGS.Changelog
1.3.0
Support for time dependent measurement in the geom example.
Input file name specified in command line. The output file name is a input parameter.
Old non-working examples are removed. The generic geom example should be able to compute all these simulations.
1.2.0
The ASQRD method is now the default stratification algorithm. An error will stop the simulation if parameter L is not a multiple of north.
More robust computation recycling. Active when nwrap = north and fixwrap = 1.
Full GPU implementation of the ASQRD method (requires MAGMA).
1.1.0
New alternative algorithm for stratification (computation of G): ASQRD method with prepivoting.
This method is much faster because does most of the computations with regular QR instead of QR with pivoting.
Also, this implementation uses OpenMP for parallelism in multicore machines (a multithreaded LAPACK library such as Intel MKL is required).
However this method could be less stable than the old stratification procedure in extreme cases.To activate the ASQRD method define the macro DQMC_ASQRD at the end of the make.inc file.
The source code of this implementation is dqmc_gfun.F90 and computeg.c++Computation recycling: when nwrap = north a lot of computations can be saved from one Metropolis step to be used in the following steps.
This can be activated by the parameter fixwrap = 1 and L should be a multiple of nwrap. This feauture is still experimental.GPU implementation of matrix products using the CUBLAS library and custom CUDA code (multb.cu and multb.h). Depending on the GPU hardware this could be faster than using only the CPU for large lattices. Define the macro DQMC_CUDA to activate this feature.
Built-in profiling support for the most relevant computational kernels, activated by the macro DQMC_PROFILE.
BLAS/LAPACK and C++ routines: profile.h, profile.c++, blaslapack.h and blaslapack.c++
Fortran kernels: dqmc_gfun.F90 and dqmc_matb.F90
Added BLAS/LAPACK source files so QUEST is now self-contained.
However for improved perfomance an external optimized BLAS/LAPACK library is still required.
To-do list
Reimplementation of the Metropolis loop to relax parameter restrictions when recycling computations.
Extend profiling to other parts of QUEST via a more flexible interface.