1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-09-20 09:15:38 +01:00
Commit Graph

446 Commits

Author SHA1 Message Date
Jung
1e72bd8b8c Saving Lanczos testing program 2016-03-08 01:49:16 -05:00
paboyle
dc72293398 More timing info 2016-03-06 10:46:55 -08:00
2d8bb356e3 Smearing routines compile (still untested) 2016-02-25 02:43:59 +09:00
a7251f28c7 Stout smearing compiles (untested) 2016-02-24 03:16:50 +09:00
Jung
9f0d9ade68 Added configure flag for LAPACK. Tested ImplicitlyRestartedLanczos::calc()
Checking in before cleaning up
2016-02-20 02:50:32 -05:00
Peter Boyle
b6f6da923e Change to the compressor & stencil interface a little. 2016-02-17 18:27:11 -06:00
Peter Boyle
7f927a541c Shmem related fixes for shmem compile 2016-02-11 07:37:39 -06:00
Jung
411ac49dd7 GparityWilsonTM typedef added. Not yet tested
Conflicts:
	configure
	lib/qcd/action/fermion/WilsonKernels.h
2016-01-25 01:36:28 -05:00
Jung
b8fb05a422 Addtional routines for Lanczos (SYM2, Chebyshef).. 2016-01-25 01:26:25 -05:00
Jung
5c57d4f403 Merge branch 'master' of https://github.com/paboyle/Grid into scidac1_2
Conflicts:
	lib/qcd/action/fermion/WilsonKernels.h
2016-01-11 11:36:45 -05:00
paboyle
d19321dfde Overlap comms compute changes 2016-01-10 19:20:16 +00:00
paboyle
aae8bf31a7 Global edit adding copyright and license info to every source file. 2016-01-02 14:51:32 +00:00
paboyle
491a708225 Twist params set up correctly in gparity even odd 2f DWF + Wilson HMC test 2016-01-02 14:02:41 +00:00
paboyle
5a80930dd2 Charge conjugation boundary conditions for gauge fields implemented as a policy
class, changing the nature of covariant Cshifts used in
plaquettes, rectangles and staples.

As a result same code is used for the plaq and rect action independent of the BC type.

Should probably isolate the BC in a separate class that Gimpl takes as a template param.
Do the same with smearing policies.

This would then allow composition of BC with smearing etc....
2016-01-02 13:37:25 +00:00
paboyle
145a295231 Bug fix for stencil with large shifts (3+), would be important to naik term for example but did not
impact Wilson based nearest neighbour stencils.
2015-12-30 19:29:48 +00:00
Azusa Yamaguchi
78c4e862ef Plaq, Rectangle, Iwasaki, Symanzik and DBW2 workign and HMC regresses to http://arxiv.org/pdf/hep-lat/0610075.pdf 2015-12-28 16:38:31 +00:00
paboyle
0afcf1cf13 Moved all the HMC tests over to using a single HmcRunner class that manages checkpoint strategies and such like 2015-12-22 11:19:25 +00:00
paboyle
08edbb5cbe HMC bit repro across checkpoints. Fixed parallel RNG issue with threading.
Conclusion: c++11 distributions not thread safe and must us distinct dist as well as distinct engine
per site. Makes sense when you think of box muller. Also added a reset of dist on fill to ensure
repro across checkpoints.
2015-12-22 08:54:40 +00:00
paboyle
31ca609d12 HMC checkpointing .
Need a general HMC framework to work in restart.
2015-12-20 02:29:51 +00:00
paboyle
5710966324 Options to use mersenne twister OR ranlux48 via --enable-rng flag at configure time.
Can save and restore RNG state via new (serial) I/O routines in a NERSC header style file.
Store a Parallel (one per site) and a single serial RNG file.
2015-12-19 18:32:25 +00:00
paboyle
e108e708a3 Wilson TM tests and compiles in 2015-12-17 23:06:33 +00:00
paboyle
67ccb043f1 Added TM fermions for DSDR etc.. 2015-12-17 22:34:28 +00:00
paboyle
34a0fde2ad Fixes to fermion force terms after sign of gamma_mu (0...3) change.
Thought I had already committed these.

Believe I have got the Gparity fermion force working.

* tests/Test_gpdwf_force.cc     -- correctly predicts dS for two flavour pseudofermion
                                   based on a small dt update of U field.

* tests/Test_hmc_EODWFRatio_Gparity.cc -- ran 1 trajectory on 8^4 with dH=0.21.

Need to accumulate a full plaquette log to believe fully which will take some hours of run time.
2015-12-15 23:14:12 +00:00
paboyle
af855cc129 Updating to fix peek poke to checkerboarded arrays since Chulwoo needs this. 2015-12-12 07:11:46 +00:00
paboyle
47fe6b5a7c Merge branch 'master' of https://github.com/aportelli/Grid into aportelli-master 2015-12-10 23:14:52 +00:00
paboyle
b3ef09a54d Merge branch 'master' of https://github.com/paboyle/Grid 2015-12-10 23:05:38 +00:00
paboyle
8ed3940048 New files for Chroma regression 2015-12-10 22:55:59 +00:00
paboyle
3ce10aa975 Fix a regression failure on Mobius; chroma regression added 2015-12-10 22:55:00 +00:00
Azusa Yamaguchi
a32a59fc43 Merge branch 'master' of https://github.com/paboyle/Grid 2015-12-09 12:48:44 +00:00
200de272ed IO: serialisable enums 2015-12-08 13:54:00 +00:00
Peter Boyle
26161addd0 Warn fix clang 2015-11-29 11:19:12 +00:00
paboyle
93356fd246 No compile fixes on gcc/Cray 2015-11-29 03:14:44 -08:00
Peter Boyle
f35fc4b76c No compile fixes 2015-11-29 10:59:11 +00:00
paboyle
ca42fe6d32 Merge branch 'master' of github.com:paboyle/Grid
Merge done
Conflicts:
	lib/serialisation/XmlIO.h
	tests/Test_stencil.cc
2015-11-28 17:03:43 -08:00
paboyle
b8a38f292d Domain decomposition SAP precon implemented and working but not as fast as I hoped. 2015-11-28 17:01:51 -08:00
Peter Boyle
bc4b252883 Merge branch 'master' of https://github.com/paboyle/Grid 2015-11-29 00:33:01 +00:00
Peter Boyle
fff0f00552 Modest changes 2015-11-29 00:31:57 +00:00
Peter Boyle
42e6055746 Try 1/x for hermitian indef approx 2015-11-29 00:31:19 +00:00
Peter Boyle
01231ce824 Stencil fix 2015-11-29 00:31:02 +00:00
Peter Boyle
41e8038c56 Makefile update 2015-11-29 00:30:19 +00:00
Azusa Yamaguchi
967be91692 update merge 2015-11-26 09:51:41 +00:00
06f8ecea04 Merge commit '899ca41cb8c8f47771bfd37cd895cbc2184e5560' 2015-11-16 18:16:25 +00:00
af19118113 new I/O interface 2015-11-16 18:14:37 +00:00
paboyle
7522e3f0dd Stencil interface change fix no compile 2015-11-07 00:05:10 -08:00
Peter Boyle
f85b9ddd97 Remove nonfunctioning lanczos 2015-11-06 05:21:21 -06:00
paboyle
16c7993434 Merge branch 'master' of github.com:paboyle/Grid
Conflicts:
	lib/simd/Grid_avx512.h
	lib/simd/Grid_imci.h
2015-11-04 03:32:10 -08:00
paboyle
5aafdd7e1a Inline asm for KNL, KNC, Skylake Xeon 2015-11-04 03:21:15 -08:00
Peter Boyle
dfc1de6f60 Merge branch 'master' of github.com:paboyle/Grid 2015-11-04 05:14:26 -06:00
Peter Boyle
f87526a04f Make ICC happy 2015-11-04 05:14:03 -06:00
Peter Boyle
9183920e8b Added an even odd stencil test, shook out a problem with spread out x-direction.
Generalise test to allow different types of "Field" to be used.
2015-11-04 10:03:04 +00:00
Peter Boyle
01f286c9fe Better testing for red black cshift which was sufficient to chase down a spread out x-direction problem. 2015-11-04 10:02:17 +00:00
1b22ce5720 tests Make.inc fix 2015-10-27 10:47:52 +00:00
Peter Boyle
41299da406 files added 2015-10-09 01:01:46 +02:00
Peter Boyle
2d95dac6b6 Lanczos untested/partially tested additions. In middle of shake out but at least compiles 2015-10-09 00:40:25 +02:00
Peter Boyle
44fecd4d8d Lanczos test 2015-10-09 00:39:21 +02:00
paboyle
3a478e5f2a No compile babbage fix 2015-09-30 16:03:05 -07:00
Peter Boyle
9f4f65cb46 Added a decoupled memory system benchmark to remove thread synch overhead 2015-09-26 18:23:57 -07:00
Peter Boyle
5ef42add2d Changes to remove warnings under icc; disambiguate AVX512 from IMCI correctly
and drop swizzles in AVX512. Don't know why these compiled.
2015-09-23 05:23:45 -07:00
Peter Boyle
2f38ebc446 Reintroducing the hand unrolled loops 2015-09-08 17:45:30 +01:00
Peter Boyle
357c6ab46d Reunitarise. Complete the HMC and integrator changes. 2015-08-31 16:32:04 +01:00
Peter Boyle
755dca9533 Added ForceGradient integrator. dH dropped so seems to work. Will only
believe it is right once I have pulled a dt^4 error scaling plot out.
2015-08-31 06:23:02 +01:00
Peter Boyle
29fd004d54 Unified integrator and integrator algorithm into virtual class used as a policy for the
HMC.
2015-08-30 13:39:19 +01:00
Peter Boyle
aa52fdadcc Global edit on HMC sector -- making GaugeField a template parameter and
preparing to pass integrator, smearing, bc's as policy classes to hmc.

Propose to unify "integrator" and integrator algorithm in a base/derived
way to override step. Want to read through ForceGradient to ensure
that abstraction covers the force gradient case.
2015-08-30 12:18:34 +01:00
Peter Boyle
76d752585b Started a tidy up in the HMC sector. Now comfortable with the two level integrators;
to a little figure out what Guido had done & why -- but there is a neat saving of force
evaluations across the nesting time boundary making use of linearity of the leapP in dt.

I cleaned up the printing, reduced the volume of code, in the process sharing printing
between all integrators. Placed an assert that the total integration time for all integrators
must match at end of trajectory.

Have now verified e-dH = 1 for nested integrators in Wilson/Wilson runs with both
Omelyan and with Leapfrog so substantial confidence gained.
2015-08-29 17:18:43 +01:00
Peter Boyle
dc814f30da Binary IO file for generic Grid array parallel I/O.
Number of IO MPI tasks can be varied by selecting which
dimensions use parallel IO and which dimensions use Serial send to boss
I/O.

Thus can neck down from, say 1024 nodes = 4x4x8x8 to {1,8,32,64,128,256,1024} nodes
doing the I/O.

Interpolates nicely between ALL nodes write their data, a single boss per time-plane
in processor space [old UKQCD fortran code did this], and a single node doing all I/O.

Not sure I have the transfer sizes big enough and am not overly convinced fstream
is guaranteed to not give buffer inconsistencies unless I set streambuf size to zero.

Practically it has worked on 8 tasks, 2x1x2x2 writing /cloning NERSC configurations
on my MacOS + OpenMPI and Clang environment.

It is VERY easy to switch to pwrite at a later date, and also easy to send x-strips around from
each node in order to gather bigger chunks at the syscall level.

That would push us up to the circa 8x 18*4*8 == 4KB size write chunk, and by taking, say, x/y non
parallel we get to 16MB contiguous chunks written in multi 4KB transactions
per IOnode in 64^3 lattices for configuration I/O.

I suspect this is fine for system performance.
2015-08-26 13:40:29 +01:00
Peter Boyle
476da3ee62 Separated IO reader/writers into a proper abstract base,
derived relationship. Have Text/Binary/Xml versions of
Reader & Writer.

Any new Reader/Writer class inheriting the interface can give object serialisation
to any desired format now.

      new file:   lib/serialisation/BaseIO.h
      modified:   lib/serialisation/BinaryIO.h
      modified:   lib/serialisation/Serialisation.h
      modified:   lib/serialisation/TextIO.h
      modified:   lib/serialisation/XmlIO.h

The test uses the Xml, Binary and Text formats as well as cout << Object.
2015-08-21 10:06:33 +01:00
Peter Boyle
35818fdf6c Text and Binary readers 2015-08-20 23:04:38 +01:00
Peter Boyle
ab81a25073 XMLReader implementation and a virtual Reader/Writer template framework.
Test_serialisation has an example of *code* *free* object serialisation
to both ostream and to XML using macro magic.

Implementing TextReader/TextWriter, YAML, JSON etc.. should be trivial
and we can use configure time options to select the default "Reader" typedef.

Present done with

"using XMLPolicy::Reader"

to pick up the default serialisation strategy.
2015-08-20 16:21:26 +01:00
Peter Boyle
8b070ae54c Gparity now accepting twists through constructor 2015-08-19 11:26:01 +01:00
Peter Boyle
4e085dd0ed Domain wall even-odd 2f HMC with wilson gauge and PV 2f ratio now running and giving small dH.
Azusa is working hard on the rectangle term and we'll hopefully start reproducing plaquettes
from RBC-UKQCD parameters soon !

My new laptop is pretty warm and is starting to groan ;)
2015-08-19 10:26:07 +01:00
Peter Boyle
e8d63c9178 Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-19 05:49:00 +01:00
Peter Boyle
c54c086f17 Even odd preconditioned one flavour ratio
(no support for non-const EE schur block)
2015-08-19 05:46:58 +01:00
Peter Boyle
dd6bb73ee0 Added one flavour rational ratios (unprec) 2015-08-19 04:58:40 +01:00
Peter Boyle
fc160eeccc Added one flavour rational ratios (unprec) 2015-08-19 04:58:40 +01:00
Peter Boyle
48db72259e EvenOdd schur decomposed mpcdagmpc version of rhmc determinant.
dH is also small and plaquette looks right.
2015-08-18 18:37:39 +01:00
Peter Boyle
570150f1d3 EvenOdd schur decomposed mpcdagmpc version of rhmc determinant.
dH is also small and plaquette looks right.
2015-08-18 18:37:39 +01:00
Peter Boyle
9c7840c3a7 rhmc for 1+1 wilson is conserving dH~0.
A good days work  ;)
2015-08-18 16:58:56 +01:00
Peter Boyle
aef98b7226 rhmc for 1+1 wilson is conserving dH~0.
A good days work  ;)
2015-08-18 16:58:56 +01:00
Peter Boyle
bdcbfe9310 Even Odd two flavour ratio added and dH == small 2015-08-18 10:37:08 +01:00
Peter Boyle
9306921ded Even Odd two flavour ratio added and dH == small 2015-08-18 10:37:08 +01:00
Peter Boyle
6212807a77 Small dh obtained in two flavour ratio so looks ok. 2015-08-18 09:21:29 +01:00
Peter Boyle
7622f0c441 Small dh obtained in two flavour ratio so looks ok. 2015-08-18 09:21:29 +01:00
Peter Boyle
155c164b0c * Finished the template/policy style introduction of gparity, except the gparity force terms.
So valence sector looks ok.

FermionOperatorImpl.h provides the policy classes.

Expect HMC will introduce a smearing policy and a fermion representation change policy template
param. Will also probably need multi-precision work.

* HMC is running even-odd and non-checkerboarded (checked 4^4 wilson fermion/wilson gauge).

There appears to be a bug in the multi-level integrator -- <e-dH> passes with single level but
not with multi-level.

In any case there looks to be quite a bit to clean up.

This is the "const det" style implementation that is not appropriate  yet for clover since
it assumes that Mee is indept of the gauge fields. Easily fixed in future.
2015-08-15 23:25:49 +01:00
Peter Boyle
55cfc89459 * Finished the template/policy style introduction of gparity, except the gparity force terms.
So valence sector looks ok.

FermionOperatorImpl.h provides the policy classes.

Expect HMC will introduce a smearing policy and a fermion representation change policy template
param. Will also probably need multi-precision work.

* HMC is running even-odd and non-checkerboarded (checked 4^4 wilson fermion/wilson gauge).

There appears to be a bug in the multi-level integrator -- <e-dH> passes with single level but
not with multi-level.

In any case there looks to be quite a bit to clean up.

This is the "const det" style implementation that is not appropriate  yet for clover since
it assumes that Mee is indept of the gauge fields. Easily fixed in future.
2015-08-15 23:25:49 +01:00
Peter Boyle
045c85823b Extra test 2015-08-14 13:18:59 +01:00
Peter Boyle
e8462790a9 Extra test 2015-08-14 13:18:59 +01:00
Peter Boyle
cc63078de5 Gparity works now even if simd distributed in a Gparity twist direction.
Tested by doubling lattice in t-direction.
2015-08-14 12:57:42 +01:00
Peter Boyle
4dc7c36aa8 Gparity works now even if simd distributed in a Gparity twist direction.
Tested by doubling lattice in t-direction.
2015-08-14 12:57:42 +01:00
Peter Boyle
e6bed000c3 Gparity valence test now working.
Interface in FermionOperator will change a lot in future
2015-08-14 00:01:04 +01:00
Peter Boyle
7d3512ab21 Gparity valence test now working.
Interface in FermionOperator will change a lot in future
2015-08-14 00:01:04 +01:00
Peter Boyle
6ab73c5512 Gparity test added; partial implementation -- this is Chris K's doubled lattice only
and have to regress this with the 2 flavour implementation.
2015-08-12 09:49:33 +01:00
Peter Boyle
9183380946 Gparity test added; partial implementation -- this is Chris K's doubled lattice only
and have to regress this with the 2 flavour implementation.
2015-08-12 09:49:33 +01:00
Peter Boyle
1b3c93e22a Rework/global edit to enforce type templating of fermion operators.
Allows multi-precision work and paves the way for alternate BC's and such like
allowing for example G-parity which is important for K pipi programme.
In particular, can drive an extra flavour index into the fermion fields
using template types.
2015-08-10 20:47:44 +01:00
Peter Boyle
84a66476ab Rework/global edit to enforce type templating of fermion operators.
Allows multi-precision work and paves the way for alternate BC's and such like
allowing for example G-parity which is important for K pipi programme.
In particular, can drive an extra flavour index into the fermion fields
using template types.
2015-08-10 20:47:44 +01:00
Peter Boyle
2be8df93ad Adding components for even odd decomposed determinant in HMC.
dH not yet conserved, so something wrong in the eo force code still
2015-08-07 08:37:15 +01:00
Peter Boyle
a01aa156b9 Adding components for even odd decomposed determinant in HMC.
dH not yet conserved, so something wrong in the eo force code still
2015-08-07 08:37:15 +01:00
Peter Boyle
b5a483ae60 Continued fraction overlap, partial fraction overlap force terms have a successful
test passing.
2015-08-01 22:48:21 +09:00
Peter Boyle
6ec087d43c Continued fraction overlap, partial fraction overlap force terms have a successful
test passing.
2015-08-01 22:48:21 +09:00
Peter Boyle
bb372a6a8a Merge problem fixed 2015-08-01 22:30:00 +09:00
Peter Boyle
772cd8199d Merge problem fixed 2015-08-01 22:30:00 +09:00