Skip to content

DeanHowarth/QUDA-CPS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Welcome to the QUDA enabled Columbia Physics System

GPU SUPPORT

This CPS library has been modified to offer limited GPU support. Currently supported fermion inverters are listed below:

  1. Clover Fermions
  2. Wilson Fermions*

(*One may set the clover coefficient do_arg.clover_coeff = 0.0 to simulate Wilson fermions. A less inelegant solution is forthcoming.)

One may utilise the CG or BICGSTAB QUDA inverter type simply by setting the CPS inverter type as required. An new CPS enumerator QUDA_GCR_INVERTER has been included to uitise the QUDA GCR inverter.

The functions added to CPS that enable QUDA support are contained in src/util/quda_functions/quda_functions.C and the header file is in include/util/quda_functions.h. The code changes to CPS are delineated by the compiler flag '#ifdef USEQUDA'

Examples on how to use the GPU enabled library are given in this release for both single hadron and two hadron channels. The modifications required to allow existing code to use this library should be minimal. For details, lease refer to the differences between GPU enabled and CPU only files, highlighted in our production code package. Instructions for Configuring and making this package are given below.

CONFIGURING AND COMPILATION

To configure this library on scalar, BGQ, or other CPU architecture, please refer to the README file in CPS. For GPU enabled configuration...

MATT! You're up!

EXTRA FEATURES

Several extra features not found in the current CPS release are included in this package:

  1. Stout Gaussian Kernel Link Smearing. This routine applies the link smearing procedure outlined in http://arxiv.org/pdf/hep-lat/0311018v1.pdf For the time being only GKLS is supported. Incorporating stout smearing into the HMC routines is ongoing.

  2. Z_2 X Z_2 stochastic sources. We have included an option to use Z_2 X Z_2 stochastic sources. The enum type is ZTWOXZTWO.

  3. Diluted/Smeared Stochastic Sources The QPropWRandWall class has been extended to include interlace dilution and/or Jacobi smearing. Please refer to src/alg/alg_qprop/QPropW.C for the necessary arguments one needs to pass to these classes.

  4. Diluted/Smeared Momentum Shell sources The QPropWMom class now inherits directly from QPropW. It includes a new member function 'mom_src[]' that is analogous to the the QPropWRand member function 'rand_src[]'. This new member function is necessary for the calculation of momentum shell sources. The structure of the new QPropWMom and derived classes is the same as the new The QPropWRandWall classes in that one may employ dilution, Jacobi smearing, or both.

The current release of CPS contains a bug in the function GFWallSource(). We have fixed the bug in this release. All changes to the current vanilla version of CPS are delineated by

Begin QUDA_CPS
      ... code changes ...
End QUDA_CPS

to allow for easy identification. We request that any changes or additions in pushes to the public repository be delineated in the same fashion to ease the merging procedure.

	CONTACT

We welcome all questions, comments, suggestions, complaints... but most of all, we like bug reports. Thank you.

Dean Howarth howard3 at rpi dot edu Matthew Bernstein bernsm3 at rpi dot edu

About

The CPS library with QUDA support.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 66.6%
  • C++ 14.7%
  • Assembly 12.7%
  • HTML 1.3%
  • Objective-C 1.2%
  • TeX 1.0%
  • Other 2.5%