1
0
mirror of https://github.com/paboyle/Grid.git synced 2026-04-19 02:01:02 +01:00

Compare commits

..

3609 Commits

Author SHA1 Message Date
Azusa Yamaguchi a5645a7efe for dwf_precondition 2018-05-30 09:48:52 +01:00
Azusa Yamaguchi 8b3e738269 for dwf_precondition 2018-05-30 09:47:38 +01:00
Azusa Yamaguchi 013ea4e8d1 Merge branch 'feature/staggered-comms-compute' into develop 2018-05-21 13:11:56 +01:00
Azusa Yamaguchi 7fbbb31a50 Merge branch 'develop' into feature/staggered-comms-compute
Conflicts:
	lib/qcd/action/fermion/ImprovedStaggeredFermion.cc
2018-05-21 13:07:29 +01:00
Azusa Yamaguchi 0e127b1fc7 New file single prec test 2018-05-21 12:57:13 +01:00
Azusa Yamaguchi 68c028b0a6 Comment 2018-05-21 12:54:25 +01:00
portelli a61e0df54b Travis fix for Lime 2018-05-14 19:56:12 +01:00
portelli f871fb0c6d check file is opened correctly in the Lime reader 2018-05-11 18:06:28 +01:00
Guido Cossu 25d1cadd3b Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-05-07 18:55:09 +01:00
Guido Cossu c24d53bbd1 Further debug of RNG I/O 2018-05-07 18:55:05 +01:00
portelli 3c7a4106ed Trap for deadly empty comm thread option 2018-05-07 17:26:39 +01:00
paboyle 4ad0df6fde Bump volume for Gerardo 2018-05-04 17:33:23 +01:00
Peter Boyle 68a5079f33 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-05-04 14:13:54 +01:00
Peter Boyle 8634e19f1b Update 2018-05-04 14:13:35 +01:00
Azusa Yamaguchi 9ada378e38 Add timing 2018-05-04 10:58:01 +01:00
portelli bfbf2f1fa0 no threaded stencil benchmark if OpenMP is not supported 2018-05-03 16:20:01 +01:00
Azusa Yamaguchi 587bfcc0f4 Add Timing 2018-05-03 12:10:31 +01:00
Peter Boyle 8c658de179 Compressor speed up (a little); streaming stores 2018-05-02 17:52:16 +01:00
Guido Cossu ba37d51ee9 Debugging the RNG IO 2018-05-02 15:32:06 +01:00
Azusa Yamaguchi 4f4181c54a Merge branch 'feature/staggered-comms-compute' of https://github.com/paboyle/Grid into feature/staggered-comms-compute 2018-05-02 14:59:13 +01:00
Guido Cossu 4d4ac2517b Adding Scalar field theory example for Scidac format 2018-05-02 14:36:32 +01:00
Guido Cossu e568c24d1d Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-05-02 14:29:25 +01:00
Guido Cossu b458326744 Checkpointer module update 2018-05-02 14:29:22 +01:00
Guido Cossu 6e7d5e2243 HMC: added Scidac checkpointer and support for metadata 2018-05-02 14:28:59 +01:00
Azusa Yamaguchi b35169f1dd MultiShift for Staggered 2018-05-02 14:22:37 +01:00
Azusa Yamaguchi 441ad7498d add Iterative counter 2018-05-02 14:21:30 +01:00
Peter Boyle 6f6c5c549a Split off gparity 2018-05-02 14:11:23 +01:00
Peter Boyle 1584e17b54 Revert to fast versoin 2018-05-02 14:10:55 +01:00
Peter Boyle 12982a4455 Hypercube optimisation 2018-05-02 14:10:21 +01:00
Peter Boyle 172f412102 shmget reintroduce 2018-05-02 14:07:41 +01:00
Peter Boyle a64497265d TIming 2018-05-02 14:07:28 +01:00
Peter Boyle c45f24a1b5 Improvements for tesseract 2018-04-30 21:50:00 +01:00
Dr Peter Boyle aaf37ee4d7 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-27 11:45:13 +01:00
Dr Peter Boyle 1dddd17e3c Benchmark improvements from tesseract 2018-04-27 11:44:46 +01:00
paboyle 661f1d3e8e Merge branch 'release/0.8.0' into develop 2018-04-27 11:22:33 +01:00
paboyle fe6860b4dd Update with LIME library guard 2018-04-27 08:57:34 +01:00
paboyle d6406b13e1 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-27 07:52:56 +01:00
paboyle e369d7306d Rename 2018-04-27 07:51:44 +01:00
paboyle 9f8d63e104 Roll over version 2018-04-27 07:51:12 +01:00
paboyle 9b0240d101 Hot start test 2018-04-27 07:50:51 +01:00
paboyle b27f0e5a53 Control over IO 2018-04-27 07:50:15 +01:00
paboyle 75e4483407 Stronger convergence test 2018-04-27 07:49:57 +01:00
Guido Cossu 0734e9ddd4 Debugging Scatter_plane_simple 2018-04-27 14:39:01 +09:00
paboyle 809b1cdd58 Bug fix for MPI running ; introduced last night 2018-04-27 05:19:10 +01:00
paboyle 1be8089604 Clean compile 2018-04-26 23:42:45 +01:00
paboyle 3e0eff6468 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-26 23:00:46 +01:00
paboyle 7ecc47ac89 Quenched test compile 2018-04-26 23:00:28 +01:00
paboyle e9f1ac09de static 2018-04-26 23:00:08 +01:00
Peter Boyle fa0d8feff4 Performance of CovariantCshift now non-embarrassing. 2018-04-26 17:56:27 +01:00
Peter Boyle 05b44aef6b Merge branch 'develop' of https://github.com/paboyle/Grid into develop
Conflicts:
	benchmarks/Benchmark_su3.cc
2018-04-26 15:38:49 +01:00
Peter Boyle 03e9832efa Use macros for bare openmp 2018-04-26 14:50:02 +01:00
Peter Boyle 28a375d35d Force static 2018-04-26 14:49:42 +01:00
Peter Boyle 3b06381745 Guard bare openmp statemetn with ifdef 2018-04-26 14:48:57 +01:00
Peter Boyle 91a0a3f820 Improvement 2018-04-26 14:48:35 +01:00
Peter Boyle 8f44c799a6 Saving the benchmarking tests for Cshift 2018-04-26 14:48:03 +01:00
Azusa Yamaguchi 96272f3841 Merge staggered fix linear operator and reduction 2018-04-26 10:33:19 +01:00
Azusa Yamaguchi 5c936d88a0 Merge branch 'feature/staggered-comms-compute' of https://github.com/paboyle/Grid into feature/staggered-comms-compute 2018-04-26 10:18:37 +01:00
Azusa Yamaguchi 1c64ee926e Faster staggered operator with m^2 term trivial used 2018-04-26 10:17:49 +01:00
Azusa Yamaguchi 2cbb72a81c Provide info if EE term is trivial (m^2 factor)
Better timing in staggered 4d case
2018-04-26 10:10:07 +01:00
Azusa Yamaguchi 31d83ee046 Enable special treatment of constEE cases 2018-04-26 10:08:46 +01:00
Azusa Yamaguchi a9e8758a01 Improvements to staggered tests timings 2018-04-26 10:08:05 +01:00
Azusa Yamaguchi 3e125c5b61 Faster linalg on CG optimised against staggered
Sum overhead is bigger for staggered
2018-04-26 10:07:19 +01:00
Azusa Yamaguchi eac6ec4b5e Faster reductions, important on single node staggered 2018-04-26 10:03:57 +01:00
Azusa Yamaguchi 213f8db6a2 Microsecond resultion 2018-04-26 10:01:39 +01:00
Guido Cossu 6358f35b7e Debug of previous commit 2018-04-26 14:18:11 +09:00
Guido Cossu 43f5a0df50 More timers in the integrator 2018-04-26 12:01:56 +09:00
Guido Cossu c897878776 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-26 11:31:57 +09:00
paboyle 2baf193031 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-25 00:14:03 +01:00
paboyle 362ba0443a Cshift updates 2018-04-25 00:12:11 +01:00
paboyle 276a2353df Move constructor 2018-04-25 00:11:07 +01:00
Guido Cossu c5b9147b53 Correction of a minor bug in the su3 benchmark 2018-04-24 08:03:57 -07:00
Guido Cossu 64ac815fd9 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-24 17:27:38 +09:00
Guido Cossu a1be533329 Corrected Flop count in Benchmark su3 and expanded the Wilson flow output 2018-04-24 01:19:53 -07:00
portelli 141da3ae71 function to get tensor dimensions 2018-04-20 17:13:34 +01:00
portelli 94edf9cf8b HDF5: direct access to group for custom operations 2018-04-20 17:13:21 +01:00
portelli c11a3ca0a7 vectorise/unvectorise in reverse order 2018-04-20 17:13:04 +01:00
paboyle 870b1a85ae Think I have the physical prop interface to CF and PF overlap right, but need a strong check/regression.
Only support Hw overlap, not Ht for now. Ht needs a new Dminus implemented.
2018-04-18 14:17:49 +01:00
paboyle b5510427f9 physical fermion interface, cshift benchmark in SU3. 2018-04-18 01:43:29 +01:00
Guido Cossu 26ed65c8f8 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-17 12:03:32 +01:00
paboyle f7f043d8cf Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-04-17 10:57:18 +01:00
paboyle ddcaa6ad29 Master does header on Nersc 2018-04-17 10:48:33 +01:00
portelli c8d4d184ee XML push fragment fix 2018-04-06 22:53:01 +01:00
portelli 1569a374a9 XML interface polish, XML fragments can be pushed into a writer 2018-04-06 18:32:14 +01:00
portelli eddf023b8a pugixml 1.9 update 2018-04-06 16:17:22 +01:00
paboyle f089bf5629 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-03-30 16:17:26 +01:00
paboyle 276f113f28 IO uses master boss node for metadata. 2018-03-30 16:17:05 +01:00
portelli a13c109111 deterministic initialisation of field metadata 2018-03-30 16:03:01 +01:00
paboyle ab6afd18ac Still compile if no LIME 2018-03-30 13:39:20 +01:00
paboyle 5bde64d48b Barrier required in parallel when we use ftell 2018-03-30 12:41:30 +01:00
paboyle 2f5add4d5f Creation of file 2018-03-30 12:30:58 +01:00
portelli c5a885dcd6 I/O benchmark 2018-03-29 19:57:41 +01:00
Guido Cossu c9c073eee4 Changes in messages in test dwf mixedprec 2018-03-23 11:27:56 +00:00
Guido Cossu f290b2e908 Fix to pass CI tests 2018-03-23 11:14:23 +00:00
Guido Cossu 5f8225461b Fencing mixedcg test propagator write. LIME is still optional in Grid 2018-03-23 10:37:58 +00:00
portelli 20e186a1e0 Merge pull request #158 from goracle/dev-pull
Make compilation faster by moving print of git hash.
2018-03-22 10:45:17 +00:00
Peter Boyle 6ef4af989b Merge pull request #159 from goracle/dev-precsafe
Add dimension check to precisionChange.
2018-03-22 10:41:53 +00:00
Dan H ccde8b817f Add dimension check to precisionChange. 2018-03-21 20:58:04 -04:00
Dan H 68168bf72d Revert "Add dimension match check to precisionChange."
This reverts commit 8f601d9b39.
2018-03-21 20:51:38 -04:00
Dan H e93d0feaa7 Merge branch 'dev-pull' of github.com:goracle/Grid into dev-pull 2018-03-21 20:39:30 -04:00
Dan H 8f601d9b39 Add dimension match check to precisionChange. 2018-03-21 20:38:19 -04:00
paboyle 5436308e4a Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-03-21 14:26:29 +00:00
paboyle 07fe7d0cbe Save file in current dir; print checksums 2018-03-21 14:26:04 +00:00
Guido Cossu 60b57706c4 Small bug fix in the shm file names 2018-03-21 13:57:30 +00:00
paboyle 954e38bebe Put a username in the path 2018-03-20 18:16:15 +00:00
paboyle b1a38bde7a Extra test for Gparity with plaquette action 2018-03-20 18:01:32 +00:00
Guido Cossu 2581875edc Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-03-19 18:00:08 +00:00
Peter Boyle 6c6d43eb4e Drop RB on coarse space ; that was a mistake 2018-03-17 09:35:01 +00:00
Peter Boyle e1dcfd3553 typo fix 2018-03-16 23:10:47 +00:00
Peter Boyle 888838473a 4GB clean the offsets in parallel IO for multifile records 2018-03-16 21:54:56 +00:00
Peter Boyle 01568b0e62 Add a new SHM option 2018-03-16 21:54:28 +00:00
Peter Boyle d5ce66f6ab Extra SHM option 2018-03-16 21:37:03 +00:00
Guido Cossu d86936a3de Eliminating deprecated lex_sites 2018-03-16 12:26:39 +00:00
Dan H 0fb84fa34b Make compilation faster by moving print of git hash. 2018-03-12 17:03:48 -04:00
paboyle 0880747edb Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-03-09 20:44:42 +00:00
paboyle b801e1fcd6 fclose should be called through a call to close() 2018-03-09 20:44:10 +00:00
portelli 360cface33 Grid tensor serialisation fully implemented and tested 2018-03-08 19:12:03 +00:00
Azusa Yamaguchi 80302e95a8 MILC Interface 2018-03-08 15:34:03 +00:00
portelli caf2f6b274 Merge branch 'develop' of github.com:paboyle/Grid into develop 2018-03-08 09:52:25 +00:00
portelli c49be8988b Grid tensor serialisation 2018-03-08 09:51:22 +00:00
portelli 971c2379bd std::vector to tensor conversion + test units 2018-03-08 09:50:39 +00:00
Guido Cossu 94b0d66e4c Merge pull request #157 from goracle/dev-pull
Add print of the current git hash on Grid init.
2018-03-08 16:09:28 +09:00
Dan H 5e8af396fd Add print of the current git hash on Grid init. 2018-03-07 13:11:51 -05:00
portelli a7d19dbb64 Merge branch 'develop' of github.com:paboyle/Grid into develop
# Conflicts:
#	lib/serialisation/BaseIO.h
2018-03-07 15:13:54 +00:00
portelli 90dbe03e17 Conversion of Grid tensors to std::vector made more elegant, also pair syntax changed to (x y) to avoid issues with JSON/XML 2018-03-07 15:12:32 +00:00
portelli 8b14096990 Conversion of Grid tensors to std::vector made more elegant, also pair syntax changed to (x y) to avoid issues with JSON/XML 2018-03-07 15:12:18 +00:00
Azusa Yamaguchi b938202081 Overlapped Comm for Wilson DhopInternal 2018-03-07 14:08:43 +00:00
portelli 485c5db0fe conversion of Grid tensors to nested std::vector in preparation for tensor serialisation 2018-03-06 19:22:03 +00:00
paboyle c399c2b44d Guido broke the charge conjugate plaquette action with premature optimisation.
This sector of the code does not matter for anything other than Guido's quenched HMC
studies, and any plaq specific optimisations should be retained in a private branch
instead of destroying the code simplicity.
2018-03-05 12:55:41 +00:00
paboyle af7de7a294 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-03-05 12:22:41 +00:00
paboyle 1dc86efd26 Finalize protection 2018-03-05 12:22:18 +00:00
portelli 30391cb2eb Merge pull request #155 from fionnoh/develop
Some changes needed for deflation interface
2018-03-03 13:43:59 +00:00
Fionn O hOgain 2e88408f5c Some changes needed for deflation interface 2018-03-02 22:27:41 +00:00
Azusa Yamaguchi 0f468e2179 OverlappedComm for Staggered 5D and 4D. 2018-02-22 12:50:09 +00:00
paboyle 4790e99817 Extra communicator free that I had missed.
Hard to audit them all as this is complex
2018-02-20 15:12:31 +00:00
paboyle 2dd63aa7a4 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-02-20 14:29:26 +00:00
paboyle 559a501140 Deflation interface for solvers 2018-02-20 14:29:08 +00:00
paboyle 945684c470 updates for deflation in the RB solver 2018-02-20 14:28:38 +00:00
Christopher Kelly e30a80a234 Relaxed constraints on MPI thread mode when not using multiple comms threads 2018-02-15 17:13:36 +00:00
paboyle c96483e3bd Whitespace only change 2018-02-13 11:39:07 +00:00
paboyle ae31a6a760 Move deflate to right class 2018-02-13 02:11:37 +00:00
paboyle dd8f2a64fe INterface to suit hadrons on Lanczos 2018-02-13 02:08:49 +00:00
paboyle 7b8b2731e7 Conj error for complex coeffs 2018-02-12 16:06:31 +00:00
paboyle 237a8ec918 Communicator leak fixed (I think) 2018-02-12 13:27:20 +00:00
Peter Boyle 896f3a8002 Fix to MPI for Hokusai system 2018-02-01 18:51:51 +00:00
Guido Cossu f0fcdf75b5 Update README.md 2018-01-30 12:44:20 +01:00
Guido Cossu 53bffb83d4 Updating README with new SKL target 2018-01-30 12:42:36 +01:00
Guido Cossu cd44e851f1 Fixing compilation error in FundtoHirep 2018-01-30 06:04:30 +01:00
Guido Cossu fb24e3a7d2 Adding utilities for perf profiling 2018-01-29 11:11:45 +01:00
Guido Cossu 655a69259a Added support for GCC compilation for Skylake AVX512 2018-01-28 17:02:46 +01:00
Guido Cossu 507c4e9efc Correcting an missing semicolumn in avx512 2018-01-27 10:59:55 +01:00
Guido Cossu f8a5194c70 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-01-25 13:46:37 +01:00
Guido Cossu cff3bae155 Adding support for general Nc in the benchmark outputs 2018-01-25 13:46:31 +01:00
portelli 6e3ce7423e Hadrons: don't display module list at startup (too long) 2018-01-22 20:04:05 +00:00
portelli 15f15a7cfd Merge branch 'develop' into feature/hadrons
# Conflicts:
#	extras/Hadrons/Modules.hpp
#	extras/Hadrons/modules.inc
2018-01-22 20:03:36 +00:00
portelli 0e5f626226 Hadrons: module for scalar operator divergence 2018-01-22 19:38:19 +00:00
Azusa Yamaguchi 97b9c6f03d No option for interior/exterior split of asm kernels since different directions get interleaved 2018-01-22 11:04:19 +00:00
Azusa Yamaguchi 63982819c6 No option to overlap comms and compute for asm implementation since different directions are interleaved
in the kernels, introducing if else structure would be too painful
2018-01-22 11:03:39 +00:00
Guido Cossu b00d2d2c39 Correction of Representations compilation and small compilation error for Intel 17 2018-01-17 13:46:12 +00:00
Guido Cossu f1b3e21830 Merge branch 'feature/clover' into develop 2018-01-17 10:07:42 +00:00
Guido Cossu b7f8c5b823 Modify test to merge with the new Lanczos interface 2018-01-12 14:38:27 +00:00
Guido Cossu 3923683e9b Updating the feature/clover branch with the newest Hadron package 2018-01-12 13:35:51 +00:00
Guido Cossu e199fda9dc Merge pull request #136 from pretidav/feature/clover
Feature/clover
2018-01-12 11:57:08 +00:00
portelli 7bb405e790 Merge branch 'develop' into feature/hadrons
# Conflicts:
#	lib/communicator/Communicator_mpi3_leader.cc
#	lib/communicator/Communicator_shmem.cc
2018-01-11 18:50:15 +00:00
portelli ec16eacc6a Hadrons: scalar SU(N) 2-pt function 2018-01-10 22:12:21 +00:00
pretidav cf858deb16 Lanczos with 2 reps fixed (tobe tested) 2018-01-10 18:43:02 +01:00
David Preti a3affac963 SU3 restored + output filename for mesons and baryons fixed. 2018-01-10 14:56:54 +01:00
portelli d9d1f43ba2 Hadrons: code cleaning 2018-01-10 11:31:24 +00:00
portelli b7cd721308 Hadrons: scalar SU(N) tr(mag^n) 2018-01-10 11:25:59 +00:00
portelli 29f026c375 Hadrons: scalar SU(N) tr(phi^n) 1-pt function 2018-01-10 11:01:03 +00:00
portelli 58c7a13d54 Hadrons: result file macro with trajectory number 2018-01-10 10:59:58 +00:00
Azusa Yamaguchi 24162c9ead Staggered overlap comms comput 2018-01-09 13:02:52 +00:00
paboyle e564d11687 Allow resize of the shared memory buffers 2018-01-08 15:20:26 +00:00
paboyle 0b2162f375 Clean up 2018-01-08 14:06:53 +00:00
paboyle 5610570182 Synthetic test of lanczos 2018-01-08 11:36:39 +00:00
paboyle 44f65526e0 Simplify communicators 2018-01-08 11:35:43 +00:00
paboyle 43e48542ab Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-01-08 11:34:45 +00:00
paboyle 0b85f1bfc8 Simplify the communicator proliferation: mpi and none. 2018-01-08 11:33:47 +00:00
paboyle 9947cfbf14 Simplify number of communicator cases 2018-01-08 11:33:01 +00:00
paboyle 357badce5e Simplify communicator case proliferation 2018-01-08 11:32:16 +00:00
paboyle 0091eec23a Simplify communicator cases 2018-01-08 11:31:32 +00:00
paboyle 9e9c2962df Simplify comms layer proliferation 2018-01-08 11:30:22 +00:00
paboyle bda97212a9 Simplify proliferation of comms layers 2018-01-08 11:29:20 +00:00
paboyle b91282ad46 Simplify comms layer proliferation 2018-01-08 11:28:52 +00:00
paboyle 0a68470f9a Simplify comms layers 2018-01-08 11:28:30 +00:00
paboyle 6ecf280723 Simplify comms layer proliferation 2018-01-08 11:28:04 +00:00
paboyle 7eeab7f995 Simplify comms layers 2018-01-08 11:27:43 +00:00
paboyle 9b32d51cd1 Simplify comms layer proliferatoin 2018-01-08 11:27:14 +00:00
paboyle 7b3ed160aa Rationalise MPI options 2018-01-08 11:26:48 +00:00
paboyle 1a0163f45c Updated to do list 2018-01-08 11:26:11 +00:00
David Preti 9028e278e4 Trying to fix a bug with SU4 mesons (still under investigation) 2018-01-06 15:57:38 +01:00
portelli dd62f2f371 Hadrons: log message fix 2017-12-29 16:58:44 +01:00
portelli 0d612039ed Hadrons: prettier Grid logging (non-intrusive) 2017-12-29 16:58:23 +01:00
portelli e8ac75055c Hadrons: binary configuration loader 2017-12-27 14:24:29 +01:00
portelli 8b30c5956c Hadrons: copyright update 2017-12-26 14:16:47 +01:00
portelli 185da83454 Hadrons: new MIO module namespace, NERSC loader moved there 2017-12-26 14:05:17 +01:00
portelli 6718fa8c4f Merge branch 'feature/scalar_adjointFT' into feature/hadrons 2017-12-26 12:59:33 +01:00
pretidav 4ce63af7d5 Working on Hadrons with Hirep. (QCD is set for SU4) 2017-12-22 19:02:07 +01:00
portelli 67c3fa0f5f Hadrons: all modules are now ported, more tests need to be done 2017-12-21 11:39:07 +00:00
portelli 65d4f17976 Hadrons: no errors when trying to recreate a cache 2017-12-19 20:28:32 +00:00
portelli e2fe97277b Hadrons: getReference use is rare, empty by default 2017-12-19 20:28:04 +00:00
Guido Cossu 84f9c37ed4 Merge branch 'feature/scalar_adjointFT' of https://github.com/paboyle/Grid into feature/scalar_adjointFT 2017-12-19 15:43:55 +00:00
portelli bcf6f3890c Hadrons: more fixes after test 2017-12-14 21:14:10 +00:00
portelli 591a38c487 Hadrons: VM fixes 2017-12-14 19:42:16 +00:00
portelli 842754bea9 Hadrons: most modules ported to the new interface, compiles but untested 2017-12-13 19:41:41 +00:00
portelli 0887566134 Hadrons: scheduler back! 2017-12-13 16:36:15 +00:00
portelli 61fc50d616 Hadrons: better organisation of the VM 2017-12-13 13:44:23 +00:00
portelli a9c8d7dad0 Hadrons: code cleaning 2017-12-13 12:13:40 +00:00
portelli 259d504ef0 Hadrons: first full implementation of the module memory profiler 2017-12-12 19:32:58 +00:00
portelli f3a77f4b7f Merge branch 'feature/hadrons' into feature/hadrons-new-memory-model 2017-12-12 14:05:23 +00:00
portelli 26d7b829a0 Hadrons: error managed through expections 2017-12-12 14:04:28 +00:00
portelli 64161a8743 Hadrons: much simpler reference dependency 2017-12-12 13:08:01 +00:00
portelli 2401360784 Merge pull request #138 from guelpers/feature/hadrons
bug fix in sequential insertion of conserved vector current
2017-12-11 18:53:41 +01:00
Vera Guelpers 2cfb50cbe5 bug fix in sequential insertion of conserved vector current 2017-12-08 11:13:39 +00:00
portelli f9aa39e1c4 global memory debug through command line flag 2017-12-07 14:40:58 +01:00
portelli 0fbf445edd Hadrons: object creation that get properly captured by the memory profiler 2017-12-06 16:51:48 +01:00
portelli e78794688a memory profiler improvement 2017-12-06 16:50:25 +01:00
portelli 9e31307963 Merge branch 'feature/hadrons' into feature/hadrons-new-memory-model 2017-12-06 16:49:32 +01:00
portelli 29e2eddea8 Merge branch 'develop' into feature/hadrons-new-memory-model 2017-12-06 16:49:21 +01:00
portelli 0a038ea15a Merge branch 'develop' into feature/hadrons 2017-12-06 16:49:10 +01:00
portelli 62eb1f0e59 FermionOperator virtual destructor needed for polymorphism 2017-12-06 16:48:17 +01:00
portelli 5422251959 Hadrons: execution part moved in a new virtual machine class 2017-12-05 15:31:59 +01:00
paboyle 9579c9c327 Threading improvement 2017-12-05 14:12:22 +00:00
paboyle 3729c7a7a6 Clean up of test 2017-12-05 13:07:31 +00:00
paboyle c24d4c8d0e Improved parallel RNG init 2017-12-05 13:01:10 +00:00
paboyle a14038051f Improved AllToAll asserts 2017-12-05 11:43:25 +00:00
paboyle 3e560b9462 Faster RNG init 2017-12-05 11:42:05 +00:00
paboyle d93c6760ec Faster code for split unsplit 2017-12-05 11:39:26 +00:00
paboyle ae3b7713a9 Cold start doesnt need RNG 2017-12-05 11:36:31 +00:00
portelli cbd8fbe771 Merge branch 'feature/hadrons' into feature/hadrons-new-memory-model 2017-12-03 19:48:56 +01:00
portelli d391f05cb7 Merge branch 'develop' into feature/hadrons 2017-12-03 19:48:46 +01:00
portelli 3127b52c90 bootstrap script does not destroy Eigen is working offline 2017-12-03 19:48:34 +01:00
portelli 01f00385a4 Hadrons: genetic pair selection based on exponential probability 2017-12-03 19:47:40 +01:00
portelli 59aae5f5ec Hadrons: garbage collector clean temporaries 2017-12-03 19:47:11 +01:00
portelli 624246409c Hadrons: module setup/execute protected to forbid user to bypass execution control 2017-12-03 19:46:18 +01:00
portelli 2a9ebddad5 Hadrons: scheduler offline, minimal code working again 2017-12-03 19:45:15 +01:00
portelli ff7afe6e17 Merge branch 'feature/hadrons' into feature/hadrons-new-memory-model 2017-12-01 19:45:44 +00:00
portelli 33cb509d4b Merge branch 'develop' into feature/hadrons 2017-12-01 19:45:32 +00:00
portelli 456c78c233 Merge branch 'develop' into feature/hadrons-new-memory-model 2017-12-01 19:45:12 +00:00
portelli 2fd4989029 Merge branch 'develop' of github.com:paboyle/Grid into develop 2017-12-01 19:44:31 +00:00
portelli 2427a21428 minor serial IO fixes, XML now issues warning when trying to read absent nodes, these becomes 2017-12-01 19:44:07 +00:00
portelli 514993ed17 Hadrons: progress on the interface, genetic algorithm freezing 2017-12-01 19:38:23 +00:00
paboyle 28ceacec45 Split/Unsplit working 2017-11-27 15:13:29 +00:00
paboyle e6a3e375cf Debug 2017-11-27 15:10:22 +00:00
paboyle 4987edbd44 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-11-27 12:34:56 +00:00
paboyle ad140bb6e7 Clean on multinode target after split 1 1 2 4 -> 1 1 2 2 2017-11-27 12:34:25 +00:00
paboyle 1f04e56038 Believe split/unsplit works, but need to make pretty 2017-11-27 12:33:08 +00:00
paboyle 4bfc8c85c3 Clean up verbose communicator create 2017-11-27 12:32:37 +00:00
azusayamaguchi e55397bc13 Staggerd cg 2017-11-24 14:18:30 +00:00
portelli a3fe874a5b Hadrons: everything is broken, repairing while implementing the new memory model 2017-11-22 23:27:19 +00:00
portelli f403ab0133 gitignore update 2017-11-22 17:13:09 +00:00
paboyle 94b8fb5686 Debug in progress 2017-11-19 01:39:04 +00:00
Guido Cossu 1f1d77b01a Performance metrics for the Scalar Action force term 2017-11-14 10:01:48 +00:00
pretidav 6a15e2e8ef Added WilsonTwoIndexAntiSymmImpl instantiation in WilsonKernelsHand.cc (shoud not be necessary) 2017-11-12 14:16:19 +01:00
portelli 074d17429f Merge branch 'develop' into feature/scalar_adjointFT
# Conflicts:
#	lib/communicator/Communicator_mpi3.cc
2017-11-11 18:09:55 +00:00
Peter Boyle 25f73018f4 Merge pull request #135 from fionnoh/develop
Declaring virtual functions as pure virtual functions.
2017-11-09 23:19:08 +00:00
fionnoh 1d7ccc6b2c Declaring virtual functions as pure virtual functions. 2017-11-09 19:46:57 +00:00
pretidav 59d9ccf70c restored WilsonKernelsHand.cc and added Qtop to production codes 2017-11-08 22:02:32 +01:00
Azusa Yamaguchi 1860b1698c Fixed the bag on MPI_T at Cam 2017-11-08 09:03:01 +00:00
Azusa Yamaguchi 9b8d1cc3da Staggered Schur decomposed matrix norm changed to not be the Schur anymore :(
Carleton wanted this for multimass / multishift
2017-11-07 14:48:45 +00:00
Guido Cossu 149c3f9e9c Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-11-07 14:01:13 +00:00
Guido Cossu c519aab19d Fixing the MPI memory leak in the communicators 2017-11-07 13:55:37 +00:00
paboyle 69929f20bb Destructor fix. Split Grid and MPI3 will not yet work without more effort from me. 2017-11-06 23:45:00 +00:00
pretidav a493429218 added Production tests for MixedRep, Adj, 2S, 2AS. Still missing QObs. The HMC is not printing correctly all the actions and forces. 2017-11-04 18:16:54 +01:00
pretidav 915f610da0 clover 2indexSymm hmc production test created. clover 2indexAsymm and clover mixed to be filled. 2017-11-04 01:17:06 +01:00
pretidav c79606a5dc Test production code wilson clover. Still missing QObs measurement on-the-fly. 2017-11-03 22:46:32 +01:00
paboyle 360efd0088 Improved treatment of reverse asked for by chris.
Truncate the basis.
Power method renormalises
2017-11-02 22:05:31 +00:00
pretidav 7b42ac9982 added polyakov loop observable to the hmc 2017-11-02 21:58:16 +01:00
paboyle c5c647e35e Merge branch 'feature/lanczos-reorg' into develop 2017-11-02 15:23:11 +00:00
portelli a4e5fd1000 Merge branch 'feature/hadrons' into feature/hadrons-new-memory-model 2017-11-01 19:24:51 +00:00
portelli 682e7d7839 Merge branch 'develop' into feature/hadrons 2017-11-01 19:24:38 +00:00
Guido Cossu 8e057721a9 Anisotropic Clover term written and tested 2017-11-01 12:50:54 +00:00
Guido Cossu fa5e4add47 Added support for anisotropy to the WilsonFermion class 2017-10-31 18:20:38 +00:00
paboyle 27ea2afe86 No compile on comms == none fix 2017-10-30 01:14:11 +00:00
paboyle 78e8704eac Shaking out 2017-10-30 00:25:31 +00:00
paboyle 67131d82f2 Get subrank info from communicator constructor 2017-10-30 00:24:11 +00:00
paboyle 615a9448b9 Extended sub comm supported 2017-10-30 00:23:34 +00:00
paboyle 00164f5ce5 : 2017-10-30 00:22:52 +00:00
paboyle a7f72eb994 SHaking out 2017-10-30 00:22:06 +00:00
paboyle 501fa1614a Communicator updates for split grid 2017-10-30 00:16:12 +00:00
paboyle 5bf42e1e15 Update 2017-10-30 00:05:21 +00:00
paboyle fe4d9b003c More digits 2017-10-30 00:04:47 +00:00
paboyle 4a699b4da3 New rank can be found out 2017-10-30 00:04:14 +00:00
paboyle 689323f4ee Reverse dim ordering lexico support 2017-10-30 00:03:15 +00:00
Guido Cossu 749189fd72 Full clover force correct 2017-10-29 12:03:08 +00:00
Guido Cossu f941c4ee18 Clover term force ok 2017-10-29 11:43:33 +00:00
paboyle 84b441800f Merge branch 'develop' into feature/lanczos-reorg 2017-10-27 14:21:38 +01:00
paboyle 1ef424b139 Split grid Y2K bug fix attempt 2017-10-27 14:20:35 +01:00
paboyle aa66f41c69 Bug fix in the coarse restore...
Think this is nearly there
2017-10-27 10:29:34 +01:00
paboyle f96c800d25 Passes reload of coarse basis 2017-10-27 09:43:22 +01:00
paboyle 32a52d7583 Move the local coherence lanczos into algorithms.
Keep the I/O in the tester. Other people can copy this method to write other I/O formats.
2017-10-27 09:04:31 +01:00
paboyle fa04b6d3c2 Finished ? Verifying coarse evec restore 2017-10-27 08:18:29 +01:00
paboyle 7fab183c0e Better read test 2017-10-27 08:17:49 +01:00
paboyle 9ec9850bdb 64bit ftello update 2017-10-26 23:34:31 +01:00
paboyle 0c4ddaea0b Cleaning up 2017-10-26 23:31:46 +01:00
paboyle 00ebc150ad Mistake in string parse; interface is ambiguous and must fix. Is char * a file, or a XML buffer ? 2017-10-26 23:30:37 +01:00
paboyle 0f3e9ae57d Gsites error. Only appeared (so far) in I/O code for even odd fields 2017-10-26 23:29:59 +01:00
Azusa Yamaguchi 034de160bf Staggered updates : Schur fixed and added a unit test for Test_staggered_cg_schur.cc giving stronger check 2017-10-26 20:58:46 +01:00
Guido Cossu 76bcf6cd8c Deleting vscode settings file 2017-10-26 18:45:41 +01:00
Guido Cossu 91b8bf0613 Debugging force term 2017-10-26 18:23:55 +01:00
paboyle 14507fd6e4 Final? candidate for push back on the lanczos reorg feature 2017-10-26 16:25:01 +01:00
paboyle 2db05ac214 Test for split/unsplit in isolation 2017-10-26 07:48:03 +01:00
paboyle 31f99574fa Moving these out of algorithms 2017-10-26 07:47:42 +01:00
paboyle a34c8a2961 Update to IRL; getting close to the structure I would like. 2017-10-26 07:45:56 +01:00
paboyle ccd20df827 Better IRL interface 2017-10-26 01:59:59 +01:00
paboyle e9be293444 Better messaging 2017-10-26 01:59:30 +01:00
paboyle d577211cc3 Relax stoppign condition 2017-10-25 23:57:54 +01:00
paboyle f4336e480a Faster converge time 2017-10-25 23:53:44 +01:00
paboyle e4d461cb03 Messagign 2017-10-25 23:53:19 +01:00
paboyle 3d63b4894e Use existing functionality where possible 2017-10-25 23:52:47 +01:00
paboyle 08583afaff Red black friendly coarsening 2017-10-25 23:51:18 +01:00
paboyle b395a312af Better error messaging 2017-10-25 23:50:37 +01:00
paboyle 66295b99aa Bit less verbose SciDAC IO 2017-10-25 23:50:05 +01:00
paboyle b8654be0ef 64 bit safe offsets 2017-10-25 23:49:23 +01:00
paboyle a479325349 Rewrite of local coherence lanczos 2017-10-25 23:48:47 +01:00
paboyle f6c3f6bf2d XML serialisation of parms and initialise from parms object 2017-10-25 23:47:59 +01:00
paboyle d83868fdbb Identity linear op added -- useful in circumstances where a linear op may or may not be needed.
Supply a trivial one if not needed
2017-10-25 23:47:10 +01:00
paboyle 303e0b927d Improvements for coarse grid compressed lanczos 2017-10-25 23:46:33 +01:00
paboyle 28ba8a0f48 Force spacing more nicely 2017-10-25 23:45:57 +01:00
Azusa Yamaguchi f9e28577f3 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-10-25 21:07:56 +01:00
Guido Cossu e0cae833da Merge branch 'develop' into feature/scalar_adjointFT 2017-10-25 10:49:50 +01:00
Guido Cossu 8a3aae98f6 Solving minor bug in compilation 2017-10-25 10:34:49 +01:00
Guido Cossu 8309f2364b Solving again the MPI comm bug with FFTs 2017-10-25 10:24:14 +01:00
Azusa Yamaguchi cac1750078 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-10-24 23:30:36 +01:00
Guido Cossu e17cd35151 Merge branch 'develop' into feature/scalar_adjointFT 2017-10-24 17:31:22 +01:00
Guido Cossu ccdec7a7ab Merge branch 'develop' into feature/clover 2017-10-24 16:51:14 +01:00
Guido Cossu 93642d813d Merging 2017-10-24 16:48:05 +01:00
Guido Cossu 0bc381f982 Merge pull request #133 from pretidav/feature/clover
Feature/clover
2017-10-24 15:15:21 +01:00
Guido Cossu 2986aa76f8 Restoring Perfcounts 2017-10-24 13:32:02 +01:00
Guido Cossu 657779374b Adding vscode to gitignore 2017-10-24 13:27:17 +01:00
Guido Cossu ec8cd11c1f Cleanup and prepare for pull request 2017-10-24 13:21:17 +01:00
Guido Cossu cbda4f66e0 Debug of the field strength 2017-10-24 10:20:13 +01:00
Guido Cossu 6579dd30ff More debug test 2017-10-23 18:47:00 +01:00
Guido Cossu 031c94e02e Debugging process for the clover term 2017-10-23 18:27:34 +01:00
Guido Cossu 6391b2a1d0 Added test for Wilson and Clover fermions 2017-10-23 14:42:35 +01:00
Guido Cossu 2e50b55ae4 Changes in the Makefile to compile against Chroma on Linux 2017-10-23 13:32:26 +01:00
Guido Cossu 27936900e6 Putting the FG verbosity in the Integrator level 2017-10-18 13:08:09 +01:00
Guido Cossu cd3e810d25 Merge branch 'develop' into feature/scalar_adjointFT 2017-10-17 11:31:14 +01:00
pretidav 317ddfedee updated test clover + first attempt derivative clove term (still missing spin part) 2017-10-16 02:47:33 +02:00
paboyle e325929851 ALl codes compile against the new Lanczos call signature 2017-10-13 14:02:43 +01:00
paboyle 47af3565f4 Logging improvement; reunified the Lanczos codes 2017-10-13 13:23:07 +01:00
paboyle 4b4d187935 Reunified the Lanczos implementations 2017-10-13 13:22:44 +01:00
paboyle 9aff354ab5 Final version prior to reunification 2017-10-13 13:22:26 +01:00
paboyle cb9ff20249 Approx tests and lanczos improvement 2017-10-13 11:30:50 +01:00
paboyle 9fe6ac71ea Starting reorg of Blocked lanczos 2017-10-11 10:12:07 +01:00
portelli 5c392a6ecc Merge commit 'bf58557fb1ec710c766e19c9a8809b0a352de239' into feature/scalar_adjointFT 2017-10-10 17:14:56 +01:00
Azusa Yamaguchi f1fa00b71b Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-10-10 14:26:44 +01:00
paboyle bf58557fb1 Block compressed Lanczos 2017-10-10 14:15:11 +01:00
paboyle 10cb37f504 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-10-10 14:09:44 +01:00
Azusa Yamaguchi 1374c943d4 Correct Schur operator called 2017-10-10 13:59:50 +01:00
paboyle a1d80282ec cb factorise 2017-10-10 13:49:31 +01:00
paboyle 4eb8bbbebe Christop mods 2017-10-10 13:48:51 +01:00
paboyle d1c6288c5f Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-10-10 13:38:40 +01:00
Azusa Yamaguchi dd949bc428 Merge branch 'feature/staggering' into develop 2017-10-10 13:02:51 +01:00
Azusa Yamaguchi bb7378cfc3 Schur for staggered 2017-10-10 12:02:18 +01:00
Azusa Yamaguchi f0e084a88c Schur staggered 2017-10-10 10:00:43 +01:00
paboyle 153672d8ec Split CG testing 2017-10-09 23:20:58 +01:00
paboyle 08ca338875 Split grid communication 2017-10-09 23:19:45 +01:00
paboyle f7cbf82c04 Better stdout/err debug 2017-10-09 23:18:48 +01:00
paboyle 07009c569a Comms splitting improvements 2017-10-09 23:16:51 +01:00
Guido Cossu 15d690e9b9 Adding the cartesian communicator destructor 2017-10-09 09:59:58 +01:00
portelli 63b2bc1936 Merge branch 'develop' into feature/hadrons
# Conflicts:
#	lib/qcd/action/fermion/FermionOperatorImpl.h
2017-10-05 14:16:23 +01:00
David Preti d810e8c8fb first attempt to write C terms in clover derivative. Some shifts to be fixed 2017-10-05 10:13:53 +02:00
Azusa Yamaguchi 09f4cdb11e Merge branch 'develop' of https://github.com/paboyle/Grid into feature/staggering 2017-10-04 10:51:16 +01:00
Azusa Yamaguchi 1e54882f71 Stagger 2017-10-04 10:51:06 +01:00
Guido Cossu 27caff92c6 Merge branch 'feature/scalar_adjointFT' of https://github.com/paboyle/Grid into feature/scalar_adjointFT 2017-10-04 09:44:27 +01:00
portelli d38cee73bf Scalar: easier Fourier acceleration parametrisation through -D flags 2017-10-03 17:29:34 +01:00
portelli 8784f2a88d post-merge fix 2017-10-03 14:38:10 +01:00
portelli c497864b5d Merge commit 'd54807b8c0cd1a7658ff8563bb00d1137b987e3e' into feature/scalar_adjointFT
# Conflicts:
#	lib/communicator/Communicator_base.h
#	lib/communicator/Communicator_mpi.cc
#	lib/communicator/Communicator_mpit.cc
2017-10-03 14:27:54 +01:00
portelli 05c1c88440 Scalar: more action generalisation 2017-10-03 14:26:20 +01:00
paboyle d54807b8c0 MPIT works with split grid now 2017-10-02 23:14:56 +01:00
Guido Cossu f6ba2b95ce Merge branch 'develop' into feature/scalar_adjointFT 2017-10-02 15:19:20 +01:00
paboyle 5625b47c7d Merge branch 'feature/dwf-multirhs' into develop 2017-10-02 12:42:32 +01:00
paboyle 1edcf902b7 Macos ANON 2017-10-02 12:41:02 +01:00
paboyle e5c19e1fd7 RB constructor change 2017-10-02 12:25:52 +01:00
paboyle a11d0a33d1 Merge branch 'feature/dwf-multirhs' of https://github.com/paboyle/Grid into feature/dwf-multirhs 2017-10-02 11:42:07 +01:00
paboyle 4f8b6f26b4 Merge branch 'develop' into feature/dwf-multirhs 2017-10-02 11:41:49 +01:00
paboyle 073525c5b3 Small patch from cori 2017-10-02 03:38:21 -07:00
Azusa Yamaguchi eb6153080a Merge branch 'develop' of https://github.com/paboyle/Grid into feature/staggering 2017-10-02 08:56:33 +01:00
Guido Cossu f7072d1ac2 Solving an annoying compilation error in json 2017-10-02 07:13:40 +01:00
portelli a021933002 Scalar: SU(N) action change to t'Hooft scaling 2017-09-29 16:09:34 +01:00
David Preti 56478d63a5 clover + test (valence) 2017-09-24 19:32:15 +02:00
portelli df21668f2c memory profiler update 2017-09-22 14:21:18 +01:00
Guido Cossu 482368e9de Merge branch 'develop' into feature/scalar_adjointFT 2017-09-21 13:44:08 +01:00
paboyle fddeb29d6b Bug fix with spreadout FFT 2017-09-21 11:10:08 +01:00
paboyle a9ec5cf564 Christoph bug report integrate 2017-09-21 10:32:41 +01:00
Peter Boyle 946a8671b9 Merge pull request #129 from djm2131/feature/eofa
Add support for DWF with the exact one flavor algorithm
2017-09-21 10:15:21 +01:00
Azusa Yamaguchi a6eeea777b Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-09-21 10:12:41 +01:00
Peter Boyle 771a1b8e79 Merge pull request #128 from paboyle/feature/CG-reliable-update
Feature/cg reliable update
2017-09-21 10:12:03 +01:00
Peter Boyle bfb68e6f02 Merge pull request #130 from giltirn/gparity-handunroll
Gparity handunroll
2017-09-21 10:11:00 +01:00
Azusa Yamaguchi 77f7737ccc Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-09-19 14:28:01 +01:00
Guido Cossu 9a827d0242 Fixing a compilation error 2017-09-18 14:55:51 +01:00
Guido Cossu 999c623590 Solving a memory leak in Communicator_mpi 2017-09-18 14:39:04 +01:00
paboyle 18c335198a Merge branch 'hotfix/dirac-ITT-fix1' into develop 2017-09-16 18:19:02 +01:00
paboyle f9df685cde Merge branch 'hotfix/dirac-ITT-fix1' 2017-09-16 18:18:48 +01:00
paboyle 17c5b0f152 Patching comparison point 2017-09-16 18:18:07 +01:00
paboyle 5918769f97 Subtle Naik term bug updated in Stencil; less on logical && with a function call on right 2017-09-16 12:51:26 +01:00
Guido Cossu b542d349b8 Minor cosmetic changes 2017-09-15 11:48:36 +01:00
Guido Cossu 91eaace19d Added support for FFT accelerated updates 2017-09-15 11:33:45 +01:00
Guido Cossu bbaf1ada91 Merge branch 'feature/json-fix' into develop 2017-09-08 16:02:08 +01:00
Guido Cossu 1950ac9294 Fixed the Intel compiler problem with the JSON classes 2017-09-08 15:18:59 +01:00
Guido Cossu 13fa70ac1a Merge branch 'develop' into feature/json-fix 2017-09-08 13:42:20 +01:00
Guido Cossu 7cb2b11f26 Fixing Intel compiler error for the JSON parser 2017-09-08 13:41:53 +01:00
Guido Cossu 1184ed29ae Merge pull request #124 from nmeyer-ur/feature/arm-neon
Added integer reduce functionality
2017-09-08 10:54:35 +02:00
paboyle 203c7bf6fa Merge branch 'hotfix/dirac-ITT-fix' into develop 2017-09-05 15:08:51 +01:00
paboyle c709883f3f Merge branch 'hotfix/dirac-ITT-fix' 2017-09-05 15:08:16 +01:00
paboyle aed5de4d50 Patching macos compile 2017-09-05 15:07:07 +01:00
paboyle ba27cc6571 Mac os happiness 2017-09-05 15:00:16 +01:00
paboyle d856327250 Merge branch 'release/dirac-ITT' into develop 2017-09-05 14:56:12 +01:00
paboyle d75369cb56 Merge branch 'release/dirac-ITT' 2017-09-05 14:55:54 +01:00
Peter Boyle bf973d0d56 SHM complete 2017-09-05 14:30:29 +01:00
Peter Boyle 837bf8a5be Updating to control the SHM allocation scheme under configure time options 2017-09-05 12:51:02 +01:00
Peter Boyle c05b2199f6 Improvements to huge memory 2017-09-04 10:41:21 -04:00
Azusa Yamaguchi a5fe07c077 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-09-04 14:10:15 +01:00
Azusa Yamaguchi b83b2b1415 Stability improvement to BCG. Force m_rr hermitian beyond rounding. 2017-09-04 14:09:47 +01:00
Peter Boyle b331be9101 Better reporting 2017-08-31 11:32:57 +01:00
Peter Boyle 49c20a9fa8 Patch to reporting 2017-08-31 11:32:21 +01:00
paboyle 7359df3501 Full reporting for benchmark; save robustness factor 2017-08-31 10:42:35 +01:00
Christopher Kelly 59bd1fe21b Fix for 'perm' and 'local' not being set for hand-unrolled external-site Dslash, which caused incorrect behavior of G-parity kernel 2017-08-29 13:07:37 -07:00
portelli a56e3b40c4 Merge branch 'develop' into feature/hadrons 2017-08-29 11:03:53 -06:00
Nils Meyer 4e907fef2c Merge remote-tracking branch 'grid/develop' into feature/arm-neon 2017-08-29 17:47:36 +02:00
Christopher Kelly 67888b657f Merge branch 'gparity-handunroll' of https://github.com/giltirn/Grid into gparity-handunroll 2017-08-29 09:52:05 -04:00
Christopher Kelly 74af885d4e Removed some no-longer-needed associated with G-parity hand unrolled kernel 2017-08-29 09:50:37 -04:00
Christopher Kelly d36d2fb40d Added ability to override default Ls in Benchmark_dwf 2017-08-28 06:53:56 -07:00
Peter Boyle 5b9267e88d Cleaner comms benchmark treatment for one node runs 2017-08-27 18:24:48 -04:00
paboyle 15fd4003ef Improving presentation of results 2017-08-27 13:46:02 +01:00
paboyle 4b4c2a715b fcntl.h needed 2017-08-26 11:38:04 +01:00
paboyle 54a5e6c1d0 Check if we get huge pages on linux. Larry Meadows piece of magic. 2017-08-25 22:36:08 +01:00
paboyle 73aeca7dea Merge branch 'feature/multi-communicator' into develop 2017-08-25 21:55:09 +01:00
paboyle ad89abb018 Fix 2017-08-25 20:43:37 +01:00
paboyle 80c5bce5bb Merge branch 'develop' into feature/multi-communicator 2017-08-25 20:21:26 +01:00
paboyle f68b5de9c8 No compile fix on Clang 2017-08-25 19:35:21 +01:00
Peter Boyle d0f3d525d5 Optimal block size for KNL 2017-08-25 19:33:54 +01:00
Christopher Kelly f365a83fae In G-parity unrolled kernel, replaced calls to permute and exchange with run-time-evaluated permute type with explicit calls to appropriate underlying functions 2017-08-25 14:24:11 -04:00
Peter Boyle 3a58217405 Updated 2017-08-25 14:29:53 +01:00
Peter Boyle c289699d9a updated from cambridge mpi3 shakeout 2017-08-25 11:41:01 +01:00
Peter Boyle c3b1263e75 Benchmark prep 2017-08-25 09:25:54 +01:00
Christopher Kelly 34a9aeb331 Reduced number of if-statement evaluations in G-parity unrolled kernel 2017-08-24 13:53:50 -07:00
portelli 5846566728 Merge branch 'develop' into feature/hadrons 2017-08-24 18:20:52 +01:00
portelli 102ea9ae66 CI update 2017-08-24 18:17:09 +01:00
portelli 21b02760c3 Merge branch 'develop' into feature/hadrons 2017-08-24 17:05:45 +01:00
Peter Boyle 2bcb704af2 Merge pull request #121 from Lanny91/feature/hadrons
Feature/hadrons
2017-08-24 12:59:08 +01:00
paboyle 5fa386ddc9 FFT test compile fixed 2017-08-24 10:17:52 +01:00
Christopher Kelly edabb3577f Imported Benchmark_gparity 2017-08-23 16:54:06 -04:00
Christopher Kelly ce5df177ee Removed superfluous implementation of G-parity twist for hand-unrolled kernel from GparityWilsonImpl 2017-08-23 15:05:22 -04:00
Christopher Kelly a0bb8e5b46 Added hand-unrolled kernel implementations of all the other dslash precision / comms precision combinations with G-parity 2017-08-23 14:44:40 -04:00
Christopher Kelly 46f88e6d72 G-parity hand-unrolled intrinsics twist now uses one less permute and one less temporary 2017-08-23 13:21:10 -04:00
David Murphy dd8f1ea189 Vectorized Mobius EOFA Dperp + shift operation 2017-08-23 13:17:26 -04:00
Christopher Kelly b61835c1a5 Added inplace version of intrinsic G-parity twist to hand-unrolled kernel 2017-08-23 12:33:48 -04:00
Azusa Yamaguchi d9cd4f0273 Staggered multinode block cg debugged. Missing global sum.
Code stalls and resumes on KNL at cambridge. Curious.

CG iterations 23ms each, then 3200 ms pauses. Mean bandwidth reports
as 200MB/s. Comms dominant in the report. However, the time behaviour suggests it
is *bursty*.... Could be swap to disk?
2017-08-23 15:07:18 +01:00
David Murphy 459f70e8d4 Check-in of working Mobius EOFA class and tests 2017-08-22 22:38:30 -04:00
Christopher Kelly 061e48fd73 Replaced slow unpack-repack in G-parity BC twist with intrinsics version 2017-08-22 18:12:12 -04:00
Christopher Kelly ab50145001 Implemented first, unoptimized version of hand-unrolled G-parity kernels
Improved Test_gparity
2017-08-22 17:12:25 -04:00
paboyle b49bec0cec MAP_HUGETLB portability fix 2017-08-20 03:08:54 +01:00
paboyle ae56e556c6 finalise issue on new OPA revert 2017-08-20 02:53:12 +01:00
paboyle 1cdf999668 Moving multicommunicator into mpi3 also for threading 2017-08-20 02:39:10 +01:00
paboyle 11062fb686 Comms none fail fix 2017-08-20 01:37:07 +01:00
paboyle 383ca7d392 Switch off comms for now until feature/multi-communicator is merged 2017-08-20 01:27:48 +01:00
paboyle a446d95c33 Trying to pass TeamCity and Travis 2017-08-20 01:10:50 +01:00
paboyle be66e7dd95 Merge branch 'develop' into feature/multi-communicator 2017-08-19 23:12:38 +01:00
paboyle 6d0d064a6c Update TODO 2017-08-19 23:11:30 +01:00
paboyle bfef525ed2 New benchmark prep 2017-08-19 23:10:12 +01:00
Peter Boyle 0b0cf62193 Fix mpi 3 interface change 2017-08-19 13:18:50 -04:00
Peter Boyle 7d88198387 Merge branch 'develop' into feature/multi-communicator 2017-08-19 13:03:35 -04:00
Peter Boyle 2f619482b8 Enable blocking stencil send 2017-08-19 12:53:59 -04:00
Peter Boyle d6472eda8d Use mmap 2017-08-19 12:53:18 -04:00
Peter Boyle 9e658de238 Use Vector 2017-08-19 12:52:44 -04:00
Peter Boyle bcefdd7c4e Align both allocator calls to 2MB 2017-08-19 12:49:02 -04:00
David Murphy 9d45fca8bc Implement MobiusEOFAFermioncache.cc 2017-08-17 23:45:36 -04:00
David Murphy ac9e6b63c0 More re-import of Mobius EOFA 2017-08-17 19:28:53 -04:00
David Murphy e140b3f802 Beginning to re-import Mobius EOFA 2017-08-16 23:36:23 -04:00
David Murphy d9d3d30cc7 Minor clean-up 2017-08-16 20:57:51 -04:00
David Murphy 47a12ec7b5 Implement EOFA pseudofermion force and Shamir tests for G-parity and non G-parity cases 2017-08-16 19:50:08 -04:00
David Murphy ec1e2f7a40 Add (mostly implemented) ExactOneFlavourRatio pseudofermion class and tests of Shamir heatbath and action 2017-08-16 12:38:59 -04:00
David Murphy 41f73ec083 Add ChronoForecast class for forecasting solutions across poles in the EOFA heatbath 2017-08-16 12:37:38 -04:00
Guido Cossu fd367d8bfd Debugging the PointerCache 2017-08-16 09:42:57 +01:00
David Murphy 6d0786ff9d Typo fixes and check-in of G-parity action test for DWF 2017-08-15 22:47:00 -04:00
David Murphy b7f93aeb4d Change CayleyFermion5D::SetCoefficientsInternal to virtual to allow overriding in derived EOFA classes 2017-08-15 14:18:51 -04:00
David Murphy 202a7fe900 Re-import DWF and abstract base EOFA fermion classes and tests 2017-08-15 13:36:08 -04:00
Guido Cossu 8d168ded4a Correction of the dagger version of the Clover 2017-08-15 10:50:44 +01:00
Guido Cossu 8a3fe60a27 Added more asserts at grid creation time 2017-08-08 11:36:20 +01:00
Guido Cossu 44051aecd1 Checking for integer divisions in cartesian full 2017-08-08 10:31:12 +01:00
Guido Cossu 06e6f8de00 Check that the reduced dim is an integer 2017-08-08 10:22:12 +01:00
Guido Cossu dbe4d7850c Make a test file compatible with all architectures 2017-08-06 10:49:45 +01:00
Guido Cossu 4fe182e5a7 Added high level HMC support for overriding default SIMD lane decomposition 2017-08-06 10:46:19 +01:00
Guido Cossu 75ee6cfc86 Debugging the Clover term 2017-08-04 16:08:07 +01:00
Guido Cossu fde71c3c52 Merge branch 'develop' into feature/clover 2017-08-04 12:19:57 +01:00
Guido Cossu 175f393f9d Binary IO error checking 2017-08-04 12:14:10 +01:00
Christopher Kelly 7d867a8134 Merge branch 'develop' into feature/CG-reliable-update 2017-08-02 09:48:04 -04:00
Christopher Kelly 9939b267d2 Added switching to fallback linear operator in reliable update CG, and added recalculation of b parameter on update. 2017-07-31 13:39:44 -04:00
Lanny91 323e9c439a Hadrons: Legal banner fixes 2017-07-31 12:26:34 +01:00
Lanny91 28396f1048 Merge branch 'feature/rare_kaon' of https://github.com/Lanny91/Grid into feature/hadrons 2017-07-31 12:19:54 +01:00
Lanny91 67b34e5789 Modified conserved current 5th dimension loop for compatibility with 5D vectorisation. 2017-07-31 11:35:01 +01:00
Peter Boyle 14d53e1c9e Threaded MPI calls patches 2017-07-29 13:08:10 -04:00
Guido Cossu 8bd869da37 Correcting a bug in the IO routines 2017-07-27 15:12:50 +01:00
Guido Cossu c7036f6717 Adding checks for libm and libstdc++ 2017-07-27 11:15:09 +01:00
Guido Cossu c0485d799d Explicit parameter declaration in the WilsonGauge test 2017-07-26 16:26:04 +01:00
Guido Cossu 7abc5613bd Added smearing to the topological charge observable 2017-07-26 16:21:17 +01:00
Guido Cossu 237cfd11ab Solving the spurious O2 flags 2017-07-26 12:08:51 +01:00
Guido Cossu a4b7dddb67 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-07-26 12:07:38 +01:00
Guido Cossu 5696781862 Debug error in Tensor mult 2017-07-26 12:07:34 +01:00
Christopher Kelly 8f4b3049cd Merge branch 'feature/CG-reliable-update' into ckelly_develop 2017-07-25 11:55:26 -04:00
Christopher Kelly 2a6e673a91 Merge branch 'develop' into feature/CG-reliable-update 2017-07-25 11:54:43 -04:00
Christopher Kelly 9b6cde173f Merge branch 'feature/CG-reliable-update' into ckelly_develop 2017-07-25 11:51:08 -04:00
Christopher Kelly 9f280b82c4 Added mixed-precision CG with reliable updates 2017-07-25 11:30:41 -04:00
portelli c3f0889eda Merge pull request #123 from giltirn/develop
Fix for 'using namespace' in lib/qcd/utils/GaugeFix.h
2017-07-25 11:32:02 -03:00
Nils Meyer 7a53dc3715 Added integer reduce functionality 2017-07-24 11:12:59 +02:00
Christopher Kelly 0f214ad427 Moved FourierAcceleratedGaugeFixer into Grid::QCD namespace and removed 'using namespace' directives from header 2017-07-21 11:13:51 -04:00
Peter Boyle fe4912880d Update README.md 2017-07-17 09:53:07 +01:00
Lanny91 875e1a841f Hadrons: updated Quark -> MFermion/GaugeProp module name in test. 2017-07-16 13:47:00 +01:00
Lanny91 0366288b1c Hadrons: added tests for 3pt contractions. 2017-07-16 13:45:55 +01:00
Lanny91 6293d438cd Hadrons: sink smearing compatibility for 3pt contraction modules. 2017-07-16 13:43:25 +01:00
Lanny91 852ade029a Hadrons: Added module to sink a propagator 2017-07-16 13:41:47 +01:00
Peter Boyle f038c6babe Update README.md 2017-07-14 22:59:16 +01:00
Peter Boyle 169f4b2711 Update README.md 2017-07-14 22:56:06 +01:00
Peter Boyle 2d8aff36fe Update README.md 2017-07-14 22:52:16 +01:00
Guido Cossu 9fa07eecde Merge branch 'develop' into feature/json-fix 2017-07-12 15:47:22 +01:00
azusayamaguchi 659d7d1a40 For test/solver
Fixed
2017-07-12 15:01:48 +01:00
Guido Cossu f64fb7bd77 Fix gcc error on JSON compilation 2017-07-12 14:55:42 +01:00
Guido Cossu 2a35449b91 Merge branch 'develop' into feature/json-fix 2017-07-12 14:47:00 +01:00
Guido Cossu 184af5bd05 Added support for std::pair in the JSON serialiser 2017-07-12 14:44:53 +01:00
Guido Cossu 097c9637ee Fixed the JSON parsing error 2017-07-11 14:31:57 +01:00
azusayamaguchi dc6f078246 fixed the header file for mpi3 2017-07-11 14:15:08 +01:00
Peter Boyle 8a4714a4a6 Update README.md 2017-07-09 00:11:54 +01:00
Peter Boyle 40e119c61c NUMA improvements worth preserving from AMD EPYC tests 2017-07-08 22:27:11 -04:00
Guido Cossu d9593c4b81 Merge branch 'develop' into feature/json-fix 2017-07-07 14:17:50 +01:00
paboyle ac740f73ce Works on Cori 2017-07-02 16:47:58 -07:00
paboyle 75dc7794b9 Working on Cori 2017-07-02 16:47:42 -07:00
paboyle dee68fc728 IO working multiple nodes again. Strategy of all nodes writing metadata is unsafe.
Only one rank should do this. must identify this rank. Means pass communicator to the
Objects.
2017-07-02 23:33:48 +01:00
paboyle a2d3643634 Merge branch 'feature/dwf-multirhs' of https://github.com/paboyle/Grid into feature/dwf-multirhs 2017-07-02 14:59:22 -07:00
paboyle 57002924bc NERSC shakeout of this 2017-07-02 14:58:30 -07:00
Peter Boyle 7b0237b081 Update README.md 2017-07-01 10:24:41 +01:00
Peter Boyle b68ad0cc0b Update README.md 2017-07-01 10:20:07 +01:00
Peter Boyle 37263fd9b1 Update README.md 2017-07-01 10:06:24 +01:00
Peter Boyle 3d09e3e9e0 Update README.md 2017-07-01 10:05:46 +01:00
Peter Boyle 1354b46338 Update README.md 2017-07-01 10:04:32 +01:00
Peter Boyle 251a97fe1b Update README.md 2017-07-01 09:55:36 +01:00
Peter Boyle e18929eaa0 Update README.md 2017-07-01 09:53:15 +01:00
Peter Boyle f3b0a92e71 Update README.md 2017-07-01 09:48:00 +01:00
Peter Boyle a0be3f7330 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-06-30 10:53:50 +01:00
Peter Boyle b5a6e4f1fd Best option for Xeon cache blocking set 2017-06-30 10:53:22 +01:00
Peter Boyle 7a788db3dc Guard first touch 2017-06-30 10:49:08 +01:00
Peter Boyle f20eceb6cd First touch once per page in a threaded loop 2017-06-30 10:48:27 +01:00
Peter Boyle 38325ebbc6 Interleave code path; not enabled 2017-06-30 10:23:51 +01:00
Peter Boyle b73bd151bb Switch off counters by default 2017-06-30 10:16:35 +01:00
Peter Boyle 694b305cab Update to reporting 2017-06-30 10:16:13 +01:00
Peter Boyle 2d3737a133 O3, KNL 2017-06-30 10:15:59 +01:00
Peter Boyle ac1f1838bc KNL only 2017-06-30 10:15:32 +01:00
Guido Cossu 09d09d0fe5 Update README.md 2017-06-29 11:48:11 +01:00
Guido Cossu bf630a6821 README file update 2017-06-29 11:42:25 +01:00
Guido Cossu 8859a151cc Small corrections to the NEON port 2017-06-29 11:30:29 +01:00
Guido Cossu 688a39cfd9 Merge pull request #114 from nmeyer-ur/feature/arm-neon
ARM neon intrinsics support
Guido: checked and approved
2017-06-29 09:57:17 +01:00
paboyle 6f5a5cd9b3 Improved threaded comms benchmark 2017-06-28 23:27:02 +01:00
Nils Meyer 0933aeefd4 corrected Grid_neon.h 2017-06-28 20:22:22 +02:00
Peter Boyle 322f61acee Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-06-28 15:30:35 +01:00
Peter Boyle 08e04b9676 Better benchmarks 2017-06-28 15:30:06 +01:00
portelli feaa2ac947 Merge branch 'feature/scalar-hmc-update' into develop 2017-06-28 12:46:18 +01:00
portelli 07de925127 minor scalar action fixes 2017-06-28 12:45:44 +01:00
Nils Meyer a9c816a268 moved file to correct folder 2017-06-27 21:39:15 +02:00
Nils Meyer e43a8b6b8a removed comments 2017-06-27 20:58:48 +02:00
Nils Meyer bf729766dd removed collision with QPX implementation 2017-06-27 20:32:24 +02:00
Guido Cossu dafb351d38 Merge pull request #120 from paboyle/feature/scalar-hmc-update
Scalar HMC update. 
I agree with the changes.
2017-06-27 16:23:14 +01:00
portelli 0b707b861c Merge branch 'develop' into feature/scalar-hmc-update 2017-06-27 14:40:05 +01:00
portelli 15e87a4607 HDF5 IO fix 2017-06-27 14:39:27 +01:00
portelli 7d7220cbd7 scalar: lambda/4! convention 2017-06-27 14:38:45 +01:00
Lanny91 7d2d5e8d3d Merge branch 'develop' of https://github.com/paboyle/Grid into feature/hadrons 2017-06-26 15:19:46 +01:00
paboyle 54e94360ad Experimental: Multiple communicators to see if we can avoid thread locks in --enable-comms=mpit 2017-06-24 23:10:24 +01:00
portelli 0af740dc15 minor scalar HMC code improvement 2017-06-24 23:04:05 +01:00
portelli d2e8372df3 SU(N) algebra fix (was not working) 2017-06-24 23:03:39 +01:00
paboyle 869b99ec1e Threaded calls to multiple communicators 2017-06-24 10:55:54 +01:00
paboyle 4a29ab0d0a Merge branch 'feature/dwf-multirhs' of https://github.com/paboyle/Grid into feature/dwf-multirhs 2017-06-23 23:10:43 +01:00
paboyle 0165bcb58e Added an update to TODO list 2017-06-23 23:10:24 +01:00
Lanny91 deca1ecc50 Merge branch 'develop' of https://github.com/paboyle/Grid into feature/rare_kaon 2017-06-23 19:35:19 +02:00
portelli 4372d04ad4 Merge pull request #118 from Lanny91/hotfix/bgq
Hotfix/bgq
2017-06-23 16:59:27 +01:00
paboyle 349d75e483 Precision fix 2017-06-23 02:57:59 -07:00
Lanny91 56abbdf4c2 AVX512 integer reduce fix (for non-intel compiler) 2017-06-23 11:09:14 +02:00
Lanny91 af71c63f4c AVX2 fix 2017-06-23 11:03:12 +02:00
paboyle e51475703a Ticking off lots on the TODO list 2017-06-23 09:42:21 +01:00
paboyle 1feddf4ba6 const fixes 2017-06-22 19:32:41 +01:00
paboyle 600d7ddc2e Proof of concept : Multi RHS solver, running independent solves on different ranks 2017-06-22 18:54:34 +01:00
paboyle e504260f3d Able to run a test job splitting into multiple MPI subdomains. 2017-06-22 18:53:11 +01:00
Lanny91 0440d4ce66 Merge branch 'develop' of https://github.com/paboyle/Grid into hotfix/bgq 2017-06-22 17:09:42 +02:00
Lanny91 08b0e472aa Fixed hadrons tests after merge 2017-06-22 16:34:33 +02:00
Lanny91 c11d69787e Merge branch 'feature/hadrons' of https://github.com/paboyle/Grid into feature/rare_kaon
# Conflicts:
#	extras/Hadrons/Modules.hpp
#	extras/Hadrons/Modules/MFermion/GaugeProp.hpp
#	extras/Hadrons/modules.inc
#	tests/hadrons/Test_hadrons.hpp
#	tests/hadrons/Test_hadrons_meson_3pt.cc
2017-06-22 16:26:31 +02:00
Lanny91 dc6b2d30d2 Documentation fix 2017-06-22 16:09:45 +02:00
Lanny91 7a3bd5c66c Hadrons: new conserved current contraction test (for regression testing) 2017-06-22 16:06:15 +02:00
Lanny91 18211eb5b1 Hadrons: Fixed test to use new implementation of meson module. 2017-06-22 16:03:59 +02:00
Lanny91 863bb2ad10 Moving overly-specialised code out of Grid 2017-06-22 16:02:15 +02:00
paboyle 5e4bea8f20 Benchmark DWF works 2017-06-22 08:38:54 +01:00
paboyle 6ebf9f15b7 Splitting communicators first cut 2017-06-22 08:14:34 +01:00
paboyle 1d7aa673a4 Include BlockCG by default 2017-06-21 21:08:53 +01:00
paboyle b9104f3072 Block CG 2017-06-21 21:08:03 +01:00
portelli b22eab8c8b Merge commit 'a7d56523abee6c9030fdd9303c79954897b1086f' into feature/hadrons 2017-06-21 18:32:48 +01:00
paboyle a7d56523ab Merge branch 'feature/lanczos-simplify' into develop 2017-06-21 14:03:20 +01:00
paboyle 9e56c65730 Updated TODO list 2017-06-21 14:02:58 +01:00
paboyle ef4f2b8c41 todo update 2017-06-21 09:22:20 +01:00
paboyle e8b95bd35b Clean up finished. Could shrink Lanczos to around 400 lines at a push 2017-06-21 02:50:09 +01:00
paboyle 7e35286860 Simplified lanczos, added Eigen diagonalisation.
Curious if we can deprecate dependencly on BLAS.
Will see when we get 48^3 running on our BG/Q port
2017-06-21 02:26:03 +01:00
paboyle 0486ff8e79 Improved the lancos 2017-06-20 18:46:01 +01:00
portelli 1e8a2e1621 various compatibility fixes after merge 2017-06-20 17:24:55 +01:00
portelli 7587df831a Merge branch 'develop' into feature/hadrons
# Conflicts:
#	lib/qcd/action/scalar/ScalarImpl.h
2017-06-20 15:50:39 +01:00
Azusa Yamaguchi e9cc21900f Block solver complete for staggered. Now stable on mass 0.003 and
gives 8x (!) speed up on Haswell laptop vs. standard CG for 8 RHS solves.

166 iterations vs. 537 iterations so algorithmic gain + 2x in flop rate gain.

Better than a slap in the face with a wet kipper.
2017-06-20 12:37:41 +01:00
Azusa Yamaguchi 0a8faac271 Fix make tests compile 2017-06-19 22:54:18 +01:00
Azusa Yamaguchi abc4de0fd2 No compile make tests fix 2017-06-19 22:03:03 +01:00
portelli b672717096 Test_serialiation update for JSON 2017-06-19 14:38:39 +01:00
portelli 284ee194b1 JSON update 2017-06-19 14:38:15 +01:00
Azusa Yamaguchi cfe3cd76d1 Block solver improvements 2017-06-19 14:04:21 +01:00
Azusa Yamaguchi 3fa5e3109f Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-06-19 14:01:44 +01:00
paboyle 8b7049f737 Improved detectino of usqcdInfo for plaq/linktr 2017-06-19 08:46:07 +01:00
paboyle c85024683e Merge branch 'feature/parallelio' into develop 2017-06-19 01:39:48 +01:00
paboyle 1300b0b04b Update to enable multiple records per file more consistent with SciDAC.
open, close, write records...
2017-06-19 01:01:48 +01:00
paboyle e6d984b484 ILDG tests 2017-06-18 00:13:22 +01:00
paboyle 1d18d95d4f Class name return 2017-06-18 00:13:03 +01:00
paboyle ae39ec85a3 ComplexField defined 2017-06-18 00:12:48 +01:00
paboyle b96daf53a0 Query tensor structures 2017-06-18 00:12:15 +01:00
paboyle 46879e1658 Complex defined in Impl even for gauge. 2017-06-18 00:11:45 +01:00
paboyle ae4de94798 SciDAC I/O support 2017-06-18 00:11:23 +01:00
paboyle 0ab555b4f5 SciDAC I/O and ILDG improvements 2017-06-18 00:11:02 +01:00
paboyle 8e9be9f84f Updates for SciDAC IO 2017-06-18 00:10:42 +01:00
paboyle d572170170 Update for SciDAC 2017-06-18 00:10:20 +01:00
portelli 81b18f843a Merge branch 'feature/scalar_adjointFT' into feature/hadrons
# Conflicts:
#	lib/qcd/action/scalar/ScalarImpl.h
2017-06-16 17:59:55 +01:00
Lanny91 1bd311ba9c Faster sequential conserved current implementation, now compatible with 5D vectorisation & G-parity. 2017-06-16 16:43:15 +01:00
Lanny91 41af8c12d7 Code cleaning for conserved current contractions. Will now be easier to implement mobius conserved current. 2017-06-16 16:38:59 +01:00
Lanny91 a833f88c32 Added missing SIMD integer reduction implementation for AVX, AVX-512, SSE4, IMCI 2017-06-16 15:58:47 +01:00
Lanny91 07b2c1b253 Placeholder precision change functions to allow Grid to compile with QPX (warning: no actual functionality) 2017-06-16 15:04:26 +01:00
Lanny91 735cbdb983 QPX Integer reduction (+ integer reduction test) 2017-06-14 10:55:10 +01:00
Lanny91 2ad54c5a02 QPX exchange support 2017-06-14 10:53:39 +01:00
paboyle 12ccc73cf5 Serialisation no compile fix 2017-06-14 05:19:17 +01:00
Nils Meyer 3d04dc33c6 ARM neon intrinsics support 2017-06-13 13:26:59 +02:00
paboyle e7564f8330 Starting a test for reading an ILDG file. 2017-06-13 12:22:50 +01:00
paboyle 91199a8ea0 openmpi is not const safe 2017-06-13 12:21:29 +01:00
paboyle 0494feec98 Libz dependency 2017-06-13 12:00:23 +01:00
paboyle a16b1e134e gcc 4.9 fix 2017-06-13 10:48:43 +01:00
Lanny91 5633a2db20 Faster implementation of conserved current site contraction. Added 5D vectorised support, but not G-parity. 2017-06-12 10:41:02 +01:00
Lanny91 2d433ba307 Changed header include guards to match new convention 2017-06-12 10:32:14 +01:00
paboyle 769ad578f5 Odd new error on G++ 49 on travis 2017-06-12 00:41:21 +01:00
paboyle eaac0044b5 Compile fixes 2017-06-12 00:20:49 +01:00
paboyle 56042f002c New files 2017-06-11 23:19:20 +01:00
paboyle 3bfd1f13e6 I/O improvements 2017-06-11 23:14:10 +01:00
Azusa Yamaguchi 70ab598c96 Move gfix into utils 2017-06-08 22:22:23 +01:00
Azusa Yamaguchi 1d0ca65e28 Move Gfix into utils 2017-06-08 22:21:50 +01:00
Azusa Yamaguchi 2bc4d0a20e Move code into utils 2017-06-08 22:21:25 +01:00
portelli 2490816297 Hadrons: rare kaon program removed 2017-06-07 20:11:02 -05:00
portelli 5f55bca378 Hadrons: Quark module renamed MFermion::GaugeProp 2017-06-07 20:10:48 -05:00
Lanny91 b8e45ae490 Fixed remaining fermion type aliases after merge. 2017-06-07 16:26:22 +01:00
Lanny91 b35fc4e7f9 Merge branch 'feature/hadrons' of https://github.com/paboyle/Grid into feature/rare_kaon
# Conflicts:
#	extras/Hadrons/Global.hpp
#	tests/hadrons/Test_hadrons_rarekaon.cc
2017-06-07 14:38:51 +01:00
Lanny91 60f11bfd72 Removed redundant test module 2017-06-07 12:34:47 +01:00
portelli f6aa82b7f2 Merge branch 'develop' into feature/hadrons 2017-06-06 11:46:33 -05:00
portelli 22749699a3 Fixes after merge and point sink module 2017-06-06 11:45:30 -05:00
Lanny91 8d442b502d Sequential current fix for spacial indices. 2017-06-06 17:06:40 +01:00
Lanny91 e5c8b7369e Boundary condition option in quark actions for hadrons tests. 2017-06-06 14:19:10 +01:00
portelli 0503c028be Merge branch 'feature/qed-fvol' into feature/hadrons (non-trivial conflicts on scalar Impl)
# Conflicts:
#	configure.ac
#	lib/qcd/action/scalar/Scalar.h
2017-06-05 16:37:47 -05:00
Lanny91 c504b4dbad Code cleaning 2017-06-05 15:56:43 +01:00
Lanny91 622a21bec6 Improvements to sequential conserved current test and small bugfix. 2017-06-05 15:55:32 +01:00
Lanny91 eec79e0a1e Ward Identity test improvements and conserved current bug fixes 2017-06-05 11:55:41 +01:00
paboyle 092dcd4e04 MPI I/O only if MPI compiled 2017-06-02 22:50:25 +01:00
Guido Cossu 4a8c4ccfba Test wilson flow, added maxTau for adaptive flow 2017-06-02 17:02:29 +01:00
Guido Cossu 9b44189d5a Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-06-02 16:56:00 +01:00
Guido Cossu 7da4856e8e Wilson flow with adaptive steps 2017-06-02 16:55:53 +01:00
Guido Cossu aaf1e33a77 Adding adaptive integration in the WilsonFlow 2017-06-02 16:32:35 +01:00
paboyle 094c3d091a Improved and RNG's now survive checkpoint 2017-06-02 00:38:58 +01:00
Peter Boyle 4b98e524a0 Roll over to MPI version of I/O 2017-06-01 17:38:18 -04:00
Peter Boyle 1a1f6d55f9 Roll over to MPI IO for parallel IO 2017-06-01 17:37:26 -04:00
Peter Boyle 21421656ab Big changes improving the code to use MPI IO 2017-06-01 17:36:53 -04:00
Peter Boyle 6f687a67cd As local vols increase, use 64 bits for safety 2017-06-01 17:36:18 -04:00
paboyle b30754e762 Merge branch 'feature/parallelio' of https://github.com/paboyle/Grid into feature/parallelio 2017-05-30 23:41:28 +01:00
paboyle 1e429a0d57 Added MPI version 2017-05-30 23:41:07 +01:00
paboyle d38a4de36c Beginning move to MPI IO 2017-05-30 23:40:39 +01:00
paboyle ef1b7db374 Diff comparison check 2017-05-30 23:40:11 +01:00
paboyle 53a9aeb965 Cosmetic only 2017-05-30 23:39:53 +01:00
paboyle e30fa9f4b8 RankCount; need to clean up ambigious ProcessCount 2017-05-30 23:39:16 +01:00
paboyle 58e8d0a10d reverse direction lexico mapping 2017-05-30 23:38:30 +01:00
paboyle 62cf9cf638 Cleaner code 2017-05-30 23:38:02 +01:00
paboyle 0fb458879d Precision safe compile 2017-05-30 23:37:02 +01:00
Peter Boyle 725c513d94 Better MPI3 benchmarking 2017-05-29 16:47:32 -04:00
portelli d8648307ff Merge branch 'develop' into feature/hadrons 2017-05-29 12:58:08 +01:00
portelli 064315c00b Hadrons: mesons gamma list fix 2017-05-29 12:57:33 +01:00
Guido Cossu 7c6cc85df6 Updating WilsonFlow test 2017-05-27 18:03:49 +01:00
Guido Cossu a6691ef87c Merge pull request #110 from Lanny91/feature/hadrons
Hadrons: Fermion boundary conditions can now be set in measurement code.
2017-05-26 16:43:22 +01:00
Lanny91 23135aa58a Merge branch 'feature/hadrons' of https://github.com/paboyle/Grid into feature/rare_kaon 2017-05-26 16:00:50 +01:00
Lanny91 8e0ced627a Hadrons: Fermion boundary conditions can now be set in measurement code. 2017-05-26 15:59:15 +01:00
Guido Cossu 0de314870d Faster derivative for WilsonGauge 2017-05-26 14:31:49 +01:00
Guido Cossu ffb91e53d2 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-26 12:46:02 +01:00
Guido Cossu f4e8bf2858 Fixing the topological charge. Wilson Flow tested, ok 2017-05-26 12:45:59 +01:00
portelli a74c34315c Bootstrap script fix 2017-05-25 14:27:49 +01:00
paboyle 69470ccc10 Update to do list 2017-05-25 13:41:26 +01:00
paboyle b8b5934193 Attempts to speed up the parallel IO 2017-05-25 13:32:24 +01:00
Guido Cossu 75856f2945 Compilation fix in the Tensor_exp 2017-05-25 12:44:56 +01:00
Guido Cossu 3c112a7a25 Small correction to the general exp definition 2017-05-25 12:09:00 +01:00
Guido Cossu ab3596d4d3 Using Cayley-Hamilton form for the exponential of SU(3) matrices 2017-05-25 12:07:47 +01:00
paboyle a8c10b1933 Use a global-X x Local-Y chunksize for parallel binary I/O.
Gives O(32 x 8 x 18*8*8) chunk size on configuration I/O.

At 150KB should be getting close to packet sizes and 4MB filesystem
block sizes that are reasonably (!?) performant. We shall see once I move
this off my laptop and over to BNL and time it.
2017-05-25 11:43:33 +01:00
Guido Cossu 15e801af3f Fixing a compilation error for generic SIMD 2017-05-19 16:39:36 +01:00
Guido Cossu 0ffc235741 Adding more statistics to the Benchmark_comms. Min and max 2017-05-19 10:55:04 +01:00
Guido Cossu 8e19c99c7d Adding more statistical info in the Benchmark_comms 2017-05-18 19:07:35 +01:00
Guido Cossu a0bc0ad06f Reverting change in Bechmark_comms. Keeping 300 iterations 2017-05-18 17:48:11 +01:00
Guido Cossu a8fb2835ca Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-18 14:45:00 +01:00
Guido Cossu bc862ce3ab Fixing an allocation issue in Benchmark_comms 2017-05-18 14:44:56 +01:00
Lanny91 08b314fd0f Hadrons: conserved current test fixes. Axial current tests now also optional. 2017-05-18 13:16:14 +01:00
portelli 22f4feee7b Merge branch 'develop' into feature/scalar_adjointFT 2017-05-17 13:27:13 +02:00
portelli 3f858d6755 Scalar: phi^2 observable 2017-05-17 13:25:14 +02:00
paboyle 3267683e22 Union workaround for g++ 2017-05-17 11:26:18 +01:00
Azusa Yamaguchi f46a67ffb3 No compile issue on clang on mac fixed.
Compiler version was clang++-3.9 under mpicxx
2017-05-17 10:51:01 +01:00
paboyle f7b8383ef5 Half precisoin comms mixed prec test 2017-05-16 14:52:51 +01:00
Guido Cossu 10f2872aae Faster exponentiation for lattice fields 2017-05-15 15:51:16 +01:00
Lanny91 34332fe393 Improvement to sequential conserved current insertion tests 2017-05-12 16:30:43 +01:00
Lanny91 c2010f21ab Added sequential propagator test for gamma matrix insertion 2017-05-12 16:23:01 +01:00
Lanny91 98f610ce53 Reduced code duplication in hadron tests 2017-05-12 16:15:26 +01:00
Lanny91 d44cc204d1 Added test module for sequential gamma matrix insertion 2017-05-12 14:58:17 +01:00
portelli 35fa3d1dfd Merge branch 'master' into feature/scalar_adjointFT 2017-05-12 10:41:39 +01:00
paboyle cd73897b8d Merge branch 'release/v0.7.0' into develop 2017-05-12 01:16:02 +01:00
paboyle c4435e6beb Merge branch 'release/v0.7.0' 2017-05-12 01:15:59 +01:00
paboyle 7a8f6af5f8 Drop verbose compiler predefine check 2017-05-11 12:48:40 +01:00
paboyle 49a5d9bac7 Clang major, minor trailing underscore 2017-05-11 12:25:02 +01:00
paboyle 2b3fdd4a58 Print CXX predefines 2017-05-11 12:05:50 +01:00
paboyle 34502ec471 4.8 dropped as buggy. 2017-05-11 11:43:39 +01:00
paboyle 8a43e88b4f Compiler check early in build 2017-05-11 11:43:06 +01:00
portelli d1ece74137 HMC scalar test: magnetisation measurement 2017-05-11 11:40:44 +01:00
paboyle 238df20370 Still working on the compiler compat checks 2017-05-11 11:30:14 +01:00
paboyle 97a32a6145 Add 4.8 test 2017-05-11 11:24:21 +01:00
paboyle 655492a443 Compiler detection 2017-05-11 11:21:11 +01:00
paboyle 1cab06f6bd Compat checks for compilers 2017-05-11 10:20:24 +01:00
portelli 43c817cc67 Scalar action: const fix 2017-05-11 00:07:17 +01:00
paboyle f8024c262b Update Eigen 2017-05-10 13:30:09 +01:00
Guido Cossu 4cc5f01f4a Small change in the readme about the intel compiler 2017-05-09 15:38:59 +01:00
Guido Cossu 9c12c37aaf Confirming the fix on the complex boundary conditions 2017-05-09 08:41:29 +01:00
Guido Cossu 806eaa0530 Adding back the IO tests in the list 2017-05-08 22:26:44 +01:00
Guido Cossu 01d0e54594 Merge branch 'release/v0.7.0' into develop 2017-05-08 22:02:51 +01:00
Guido Cossu 5aafa335fe Fixing JSON error for complex numbers 2017-05-08 21:56:44 +01:00
Guido Cossu 8ba0494485 Fixing JSON for complex numbers 2017-05-08 21:41:39 +01:00
Peter Boyle d99d98d9fd Merge branch 'release/v0.7.0' of https://github.com/paboyle/Grid into release/v0.7.0 2017-05-08 15:08:20 -04:00
Peter Boyle 95a017a4ae Relax force constraints to pass in single precision. 2017-05-08 15:06:41 -04:00
paboyle 92f92379e6 Adding olivers test version 2017-05-08 18:42:19 +01:00
paboyle 529e78d43f Restart the v0.7.0 release 2017-05-08 18:20:04 +01:00
paboyle 4ec746d262 Merge branch 'release/v0.7.0' into develop 2017-05-06 18:43:03 +01:00
paboyle 51bf1501fc Merge branch 'release/v0.7.0' 2017-05-06 18:42:50 +01:00
paboyle 66d819c054 More info on gcc bug 2017-05-06 18:42:11 +01:00
paboyle 3f3686f869 formattign 2017-05-06 18:41:27 +01:00
paboyle 26bb829f8c Formatting 2017-05-06 18:40:55 +01:00
paboyle 67cb04fc66 README update 2017-05-06 18:39:54 +01:00
paboyle a40bd68aed Version update 2017-05-06 17:00:14 +01:00
paboyle 36495e0fd2 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-06 16:39:27 +01:00
paboyle 93f6c15772 Warning squash 2017-05-06 16:38:58 +01:00
Peter Boyle cb93eeff21 Update README 2017-05-06 16:28:12 +01:00
paboyle c7cc7e6101 Fix 2017-05-06 16:10:09 +01:00
paboyle c349aa6511 DEFINE warning elimination 2017-05-06 16:08:35 +01:00
paboyle 3bae0a2d5c Drop a gcc warning 2017-05-06 15:51:42 +01:00
paboyle c1c7566089 GCC bug work around in 5.0 through 6.2 inclusive. 2017-05-06 15:20:25 +01:00
paboyle 2439999ec8 Warning elimination; drop to -O2 on G++ bad versions 2017-05-06 14:44:49 +01:00
paboyle 1d96f662e3 Fixed 4d fermion gparity force. Put strong tests on make check force tests 2017-05-06 00:46:31 +01:00
paboyle 41d1889941 trusty ubuntu 2017-05-05 21:25:35 +01:00
paboyle 0c3981e0c3 Trying to force recent automake 2017-05-05 21:15:22 +01:00
paboyle c727bd4609 Trying to work around automake version 2017-05-05 21:00:00 +01:00
paboyle db23749b67 Adding travis to make check 2017-05-05 20:42:08 +01:00
paboyle 751f2b9703 Better check and benchmark driving 2017-05-05 19:54:38 +01:00
Guido Cossu 741bc836f6 Exposing support for Ncolours and Ndimensions and JSON input file for the ScalarAction 2017-05-05 17:36:43 +01:00
paboyle 697c0603ce SITMO I/O for NERSC working now bit repro 2017-05-05 16:54:44 +01:00
paboyle 14bedebb11 Source pointed to 2017-05-05 16:17:27 +01:00
Guido Cossu 8546d01a4c Merge branch 'develop' into feature/scalar_adjointFT 2017-05-05 15:47:33 +01:00
paboyle 47b5c07ffb Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-05 14:27:02 +01:00
Guido Cossu da86a2bf54 Merge branch 'feature/hmc_generalise' into develop 2017-05-05 14:23:02 +01:00
paboyle c1cb60a0b3 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-05 14:22:37 +01:00
Guido Cossu 5ed5b4bfbf Merge branch 'develop' into feature/hmc_generalise 2017-05-05 14:22:33 +01:00
Guido Cossu de84aacdfd Fixing a configure error for the smearing tests 2017-05-05 13:59:10 +01:00
paboyle 2888003765 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-05 13:02:24 +01:00
paboyle da06bf5b95 Zmobius force test added 2017-05-05 12:52:45 +01:00
Guido Cossu 20999c1370 Merge branch 'develop' into feature/hmc_generalise 2017-05-05 12:47:17 +01:00
Lanny91 77e0af9c2e Compilation fix after merge - conserved current code not yet operational for vectorised 5D or Gparity Impl. 2017-05-05 12:27:50 +01:00
paboyle 33f0ed1a33 No compile fix 2017-05-05 11:04:30 +01:00
paboyle 50be56433b Delete old and defunct tests 2017-05-04 23:41:16 +01:00
paboyle 43924007db Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-04 19:53:41 +01:00
paboyle 78ef10e60f Mobius force improvement 2017-05-04 19:53:21 +01:00
Lanny91 ca1077c560 Merge branch 'develop' of https://github.com/paboyle/Grid into feature/rare_kaon
# Conflicts:
#	lib/qcd/action/fermion/WilsonFermion5D.cc
#	tests/hadrons/Test_hadrons_rarekaon.cc
2017-05-04 16:22:33 +01:00
portelli 679ae98b14 Merge branch 'feature/better-external-library' into develop 2017-05-04 15:42:12 +01:00
paboyle 90f6bc16bb No compile clang fix 2017-05-04 12:15:06 +01:00
Peter Boyle 9b5b639546 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-05-03 20:51:40 -04:00
Peter Boyle 945767c6d8 More info 2017-05-03 20:26:35 -04:00
Peter Boyle 422cdf4979 Some checks 2017-05-03 18:37:38 -04:00
Peter Boyle 38db174f3b Print statement 2017-05-03 18:25:26 -04:00
Peter Boyle 92e364a35f Better reporting in benchmark for MPI3 2017-05-03 15:43:36 -04:00
portelli 58299b8ba2 Git info separated from version in git-config 2017-05-02 20:04:41 +01:00
portelli 124bf4d829 git ref in config summary 2017-05-02 19:41:01 +01:00
portelli e8e56b3414 Config summary saved in git-config 2017-05-02 19:40:47 +01:00
portelli 89c430136d grid-config program 2017-05-02 19:13:13 +01:00
portelli ea9aef7baa New header for standard headers (was an issue with Remez.h and external compilation) 2017-05-02 18:26:11 +01:00
portelli c9e9e8061d Merge branch 'feature/hadrons' into develop 2017-05-02 18:23:47 +01:00
Guido Cossu 453cf2a1c6 Moving the topological charge outside the HMC related routines 2017-05-02 14:40:12 +01:00
Guido Cossu de7bbfa5f9 Adding ParameterFile option for the HMC 2017-05-02 12:16:16 +01:00
portelli dda8d77c87 Merge branch 'feature/hadrons' into feature/rare_kaon 2017-05-01 17:50:57 +01:00
portelli aa29f4346a Hadrons: weird bus error with recent macOS clang 2017-05-01 17:49:08 +01:00
Guido Cossu 86116dbed6 Adding boundary condition switch (compile time) for the Mobius HMC example 2017-05-01 16:33:11 +01:00
Guido Cossu 7bd31e3f7c Adding external file support in the Mobius example (JSON) 2017-05-01 16:30:24 +01:00
Guido Cossu 74f451715f Fix for Mac compilation on the size_t uint64_t types 2017-05-01 15:12:07 +01:00
Guido Cossu 655be8ed76 Adding tests for the mobius operator 2017-05-01 14:42:16 +01:00
Guido Cossu 4063238943 Adding HMC test file example for Mobius + smearing 2017-05-01 13:44:00 +01:00
Guido Cossu 3344788fa1 Merge branch 'develop' into feature/hmc_generalise 2017-05-01 12:13:56 +01:00
Guido Cossu 62a64d9108 EO support, wip 2017-05-01 11:06:21 +01:00
Lanny91 49331a3e72 Minor improvements to Ward Identity checks 2017-04-28 16:50:17 +01:00
Lanny91 51d84ec057 Bugfixes in Wilson 5D sequential conserved current insertion 2017-04-28 16:49:14 +01:00
Lanny91 db14fb30df Hadrons: overhaul of conserved current test 2017-04-28 16:48:00 +01:00
Lanny91 b9356d3866 Added more complete test of sequential insertion of conserved current. 2017-04-28 16:46:40 +01:00
Guido Cossu 99a73f4287 Correcting the M and Mdag in the clover term 2017-04-28 15:51:05 +01:00
Lanny91 f302eea91e SitePropagator redefined to be a scalar object in TYPE_ALIASES. 2017-04-28 15:27:49 +01:00
Guido Cossu 5553b8d2b8 Clover term compiles, not tested 2017-04-28 15:23:34 +01:00
Lanny91 a6ccbbe108 Conserved current sequential source now registered properly and fixed module inputs. 2017-04-28 10:43:47 +01:00
Peter Boyle 99220f6531 Fixes and better timing 2017-04-26 17:24:11 -04:00
Lanny91 d2003f24f4 Corrected incorrect usage of ExtractSlice for conserved current code. 2017-04-26 17:25:28 +01:00
Lanny91 6299dd35f5 Hadrons: Added test of conserved current code. Tests Ward identities for conserved vector and partially conserved axial currents. 2017-04-26 12:41:39 +01:00
Lanny91 a39daecb62 Removed make_5D const declaration to avoid compilation error 2017-04-26 12:39:07 +01:00
Lanny91 159770e21b Legal Banners added 2017-04-26 09:32:57 +01:00
paboyle 2a6d093749 move the sudo: required to match locatoin on Guido's branch 2017-04-26 09:15:34 +01:00
paboyle c947947fad sudo required suggested by guido 2017-04-26 08:45:36 +01:00
paboyle f555b50547 Merge branch 'feature/half-prec-comms' into develop 2017-04-26 08:43:40 +01:00
paboyle 738c1a11c2 longer nloop 2017-04-26 08:43:20 +01:00
Peter Boyle f8797e1e3e bug fix. works now and great face performance 2017-04-26 03:14:02 -04:00
Peter Boyle fd1eb7de13 Clean implementation of the exterior faces listing only those points on the boudary 2017-04-26 02:34:52 -04:00
Peter Boyle 2ce898efa3 Pretty code 2017-04-26 02:34:25 -04:00
Lanny91 dc5a6404ea Hadrons: modules for testing conserved current contractions and sequential insertion. 2017-04-25 22:08:33 +01:00
Lanny91 44260643f6 First conserved current implementation for Wilson fermions only. Not implemented for Gparity or 5D-vectorised Wilson fermions. 2017-04-25 18:00:24 +01:00
Lanny91 1425afc72f Rare Kaon test fix 2017-04-25 17:26:56 +01:00
paboyle ab66bac4e6 Think I'm getting on top of the reduced cost exterior precomputed list of links 2017-04-25 08:50:26 +01:00
paboyle 56277a11c8 Build a list of whats on the surface 2017-04-24 17:06:15 +01:00
Guido Cossu 752048f410 Merge branch 'develop' into feature/clover 2017-04-24 14:41:20 +01:00
paboyle 916e9e1d3e Merge branch 'feature/half-prec-comms' of https://github.com/paboyle/Grid into feature/half-prec-comms 2017-04-24 10:39:19 +01:00
Peter Boyle 5b55867a7a Slightly cheaper Ext assembly 2017-04-24 05:36:11 -04:00
Peter Boyle 3accb1ef89 Debugged assemply split phase with interior suppression 2017-04-23 19:30:19 -04:00
Peter Boyle e3d0e31525 Debugged assemply split phase with interior suppression 2017-04-23 19:29:27 -04:00
Peter Boyle 5812eb8a8c Partially fixed. But the comms-overlap does not work yet. 2017-04-22 18:50:25 -04:00
paboyle 4dd3763294 Use OMP as much as possible 2017-04-22 20:35:20 +01:00
paboyle c429ace748 Cleaner OpenMP use 2017-04-22 20:28:42 +01:00
paboyle ac58565d0a Dangerous rewrite of the assembly. If I make a mistake the debug will be painful. 2017-04-22 19:31:04 +01:00
paboyle 3703b718aa Mark up a table if a given site only receives from itself; including MPI3 splitting info. 2017-04-22 19:28:37 +01:00
paboyle b722889234 Try a better load balancing loop 2017-04-22 19:27:41 +01:00
paboyle abba44a837 Hand unrolled for overlapped comms 2017-04-22 17:45:17 +01:00
paboyle f301be94ce Fixed 2017-04-22 17:42:31 +01:00
Peter Boyle 1d1b225497 Hand unrolled Nc=3 kernels support split phase compute (on-node, off-node). 2017-04-22 09:05:28 -04:00
Peter Boyle 53a785a3dd Fixing the KNL compile 2017-04-22 08:11:51 -04:00
paboyle 736bf3c866 Major rework of stencil. Half precision and MPI3 now working. 2017-04-22 11:33:50 +01:00
paboyle b9bbe5d188 L1p config bg/q 2017-04-22 11:33:09 +01:00
paboyle 3844bcf800 If no f16c instructions supported must use software half precision conversion.
This will also become useful on BG/Q, so will move out from SSE4 into a general area.
Lifted the Eigen half precision from web. Looks sensible, but not extensively regressed
against the intrinsics implementation yet.
2017-04-20 15:30:52 +01:00
paboyle e1a2319d01 Simple compressor moved out of cshift into stencil 2017-04-20 13:18:15 +01:00
paboyle 180c732b4c Move compressors out of Cshift.
Slice iterators would help
2017-04-20 13:17:55 +01:00
paboyle 957a706d0b Useful script 2017-04-20 13:17:44 +01:00
paboyle d2312e9874 Drop compressor entirely from Cshift to only Stencil. 2017-04-20 13:16:55 +01:00
paboyle fc4ab9ccd5 Working half precision comms 2017-04-20 11:20:26 +01:00
paboyle 4a340aa5ca Massive compressor rework to support reduced precision comms 2017-04-20 09:28:27 +01:00
paboyle 3b7de792d5 Type comparison in the traits work 2017-04-18 13:28:04 +01:00
paboyle 557c3fa109 Pretty change 2017-04-18 13:27:38 +01:00
paboyle ec18e9f7f6 Merge branch 'develop' into feature/half-prec-comms 2017-04-18 11:39:39 +01:00
paboyle a839d5bc55 Updated todo list 2017-04-18 11:22:17 +01:00
paboyle de41b84c5c Merge branch 'feature/normHP' into develop 2017-04-18 10:57:21 +01:00
paboyle 8e161152e4 MultiRHS solver improvements with slice operations moved into lattice and sped up.
Block solver requires a lot of performance work.
2017-04-18 10:51:55 +01:00
paboyle 3141ebac10 MultiRHS working, starting to optimise. Block doesn't and I thought it already was; puzzled. 2017-04-17 10:50:19 +01:00
paboyle 7ede696126 Non compile of tests fixed 2017-04-16 23:40:00 +01:00
paboyle bf516c3b81 higher precision reduction variables in norm and inner product 2017-04-15 12:27:28 +01:00
paboyle 441a52ee5d First cut at higher precision reduction 2017-04-15 10:57:21 +01:00
paboyle a8db024c92 Cleaning up the dense matrix and lanczos sector 2017-04-15 08:54:11 +01:00
paboyle a9c22d5f43 Verbose removal 2017-04-14 14:38:49 +01:00
paboyle 3ca41458a3 Fix to no USE_FP16 case 2017-04-14 14:20:54 +01:00
paboyle 9e2d29c644 USE_FP16 macro 2017-04-14 14:17:14 +01:00
Guido Cossu b694996302 adding comments 2017-04-14 13:30:14 +01:00
Peter Boyle 951be75292 Half precision conversion working on AVX512 now too 2017-04-13 17:35:11 +01:00
Peter Boyle b9113ed310 Patches for knl 2017-04-13 12:02:12 -04:00
portelli 1407418755 Old qed-fvol program build disabled 2017-04-13 15:32:30 +01:00
portelli a6a0da873f Merge branch 'feature/hadrons' into feature/qed-fvol 2017-04-13 15:31:06 +01:00
paboyle 42fb49d3fd Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-04-13 14:12:47 +01:00
paboyle 2a54c9aaab Merge branch 'feature/block-cg' into develop 2017-04-13 14:12:24 +01:00
paboyle 0957378679 Fixing conditional ugly way 2017-04-13 13:47:56 +01:00
paboyle 2ed6c76fc5 Getting multiline if then fi working 2017-04-13 13:43:13 +01:00
paboyle d3b9a7fa14 F16c apparently requires AVX, even if the 128 bit are used.
Seems odd.
2017-04-13 13:19:11 +01:00
paboyle 75ea306ce9 Another try at travis 2017-04-13 13:05:32 +01:00
paboyle 4226c633c4 Default to FP16 off again 2017-04-13 12:51:39 +01:00
paboyle 5a4eafbf7e .travis 2017-04-13 12:50:43 +01:00
paboyle eb8e26018b Travis update for macos 2017-04-13 12:35:11 +01:00
paboyle db5ea001a3 Update to use Xcode 8.3 since -mfp16 causes SIGILL 2017-04-13 12:22:40 +01:00
paboyle 2846f079e5 Predicate tests on fp16 being enabled 2017-04-13 12:08:05 +01:00
paboyle 1d502e4ed6 FP16 optional compile time 2017-04-13 11:55:24 +01:00
paboyle 73cdf0fffe Drop f16c from SSE because of a macos compile error on travis 2017-04-13 11:23:41 +01:00
paboyle 1c25773319 Trap illegal instructions 2017-04-13 10:51:40 +01:00
paboyle c38400b26f Trap signals 2017-04-13 10:35:20 +01:00
paboyle 9c3065b860 Debug flags off again 2017-04-13 10:01:32 +01:00
paboyle 94eb829d08 Align cast fixed for __mm128i gcc complained 2017-04-13 08:40:44 +01:00
paboyle 68392ddb5b Exchange in generic
Precision change in AVX, SSE, AVX512, Generic. QPX still to do.
2017-04-13 08:38:12 +01:00
paboyle cb6b81ae82 Half precision conversion 2017-04-12 19:32:37 +01:00
Lanny91 c382c351a5 Quark test output correction. 2017-04-12 14:36:15 +01:00
Lanny91 af2d6ce2e0 Encapsulated 4D->5D and 5D->4D conversions in separate functions & added corresponding tests. 2017-04-12 14:36:02 +01:00
portelli 90ec6eda0c Rare K test solver name fix 2017-04-10 17:48:58 +01:00
Lanny91 ac1253bb76 Corrected solver in rare kaon test 2017-04-10 17:42:55 +01:00
portelli fe8d625694 Merge commit '5e477ec553aa48d7d19b5a7c45d41acbb3392bcb' into feature/rare_kaon 2017-04-10 17:23:37 +01:00
portelli 53e76b41d2 Merge branch 'develop' into feature/hadrons 2017-04-10 17:00:53 +01:00
portelli 8ef4300412 spurious .dirstamp files removed 2017-04-10 17:00:22 +01:00
portelli 98a24ebf31 The macro “magics” is very intensive for the preprocessor in the measurement code which has numerous serialisable classes. Reducing the number of serialisable fields to 64 (instead of 1024) helps a lot, this is enough for now and can be extended trivially if needed in the future. 2017-04-10 16:58:54 +01:00
paboyle b12dc89d26 Commenting and clean up 2017-04-10 20:38:20 +09:00
paboyle d80d802f9d MultiRHS solver test 2017-04-10 00:12:12 +09:00
paboyle 3d99b09dba Start of blockCG 2017-04-09 23:42:10 +09:00
paboyle db5f6d3ae3 Verbose fix 2017-04-09 23:41:30 +09:00
paboyle 683550f116 Const args improvement 2017-04-09 23:41:04 +09:00
Lanny91 5e477ec553 Merge branch 'feature/hadrons' of https://github.com/paboyle/Grid into feature/rare_kaon 2017-04-07 11:51:09 +01:00
paboyle 55d0329624 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2017-04-07 11:08:14 +09:00
paboyle 86aaa35294 Christoph needs SchurDiagTwoKappa which is mobius specific. 2017-04-07 11:07:40 +09:00
Guido Cossu 363611ae21 Merge branch 'develop' into feature/clover 2017-04-05 16:26:04 +01:00
Guido Cossu 172d3dc93a Correcting names in tests 2017-04-05 16:24:04 +01:00
Guido Cossu 3b8a791e28 Merge branch 'develop' into feature/clover 2017-04-05 16:20:28 +01:00
Guido Cossu 7b03d8d087 Fixing the remaining merge conflicts 2017-04-05 16:17:46 +01:00
Guido Cossu 4b759b8f2a Merge branch 'feature/hmc_generalise' into feature/scalar_adjointFT 2017-04-05 14:50:28 +01:00
Guido Cossu 8c540333d5 Merge branch 'develop' into feature/hmc_generalise 2017-04-05 14:41:04 +01:00
Guido Cossu 6fd82228bf Working on the derivative 2017-04-05 10:51:44 +01:00
paboyle 5592f7b8c1 Creation mode better implementation 2017-04-05 02:35:34 +09:00
paboyle 35da4ece0b UID fix 2017-04-05 02:18:15 +09:00
paboyle 061b15b9e9 Merge branch 'feature/sitmo-skipahead' into develop 2017-04-05 01:24:49 +09:00
Guido Cossu ca6efc685e Merge branch 'develop' into feature/clover 2017-04-04 10:19:02 +01:00
portelli ff4e54ef80 Merge branch 'develop' into feature/hadrons 2017-04-03 18:56:21 +01:00
paboyle 561426f6eb Clean up 2017-04-02 23:13:48 +09:00
paboyle 83f6fab8fa Big/Small crush test, and fast SITMO rng init, faster but not ideal
MT and Ranlux init.
2017-04-02 12:10:51 +09:00
paboyle 0fade84ab2 No random device 2017-04-02 00:29:40 +09:00
paboyle 9dc7ca4c3b Sitmo fast init 2017-04-02 00:28:22 +09:00
paboyle 935d82f5b1 sanity checks 2017-04-02 00:27:28 +09:00
paboyle 9cbcdd65d7 No random device seed 2017-04-02 00:26:57 +09:00
paboyle f18f5ed926 Drop random device 2017-04-02 00:26:26 +09:00
paboyle d1d63a4f2d sitmo default 2017-04-02 00:26:05 +09:00
paboyle 7e5faa0f34 Multiple RNGs 2017-04-02 00:25:44 +09:00
paboyle 6af459cae4 Christoph's coefficients. 2017-03-31 17:07:43 +09:00
paboyle 1c4bc7ed38 Debugged staggered conventions 2017-03-31 14:41:48 +09:00
Lanny91 cd1bd921bd Reduced code duplication for Weak Hamiltonian contraction modules 2017-03-30 18:02:14 +01:00
Guido Cossu b8ae787b5e Correcting a simple typo 2017-03-30 11:33:15 +01:00
Guido Cossu fbe2c3b5f9 ]Merge branch 'develop' into feature/clover 2017-03-30 11:18:31 +01:00
Guido Cossu 1ed69816b9 First steps for the force term 2017-03-30 11:14:27 +01:00
Lanny91 fff5751b1a HADRONS: Updated rare kaon test program, including all contractions. Sink smearing still to be implemented. 2017-03-30 10:57:01 +01:00
Lanny91 2c81696fdd HADRONS: 4pt Weak + current disconnected topology (e.g. for rare neutral kaon decays) 2017-03-30 10:37:17 +01:00
Lanny91 c9dc22efa1 HADRONS: Standalone disconnected loop contraction. 2017-03-30 10:33:18 +01:00
Lanny91 0ab04a000f HADRONS: 3pt contraction with gamma insertion between two propagators. 2017-03-30 10:30:58 +01:00
paboyle 93ea5d9468 Pretty code 2017-03-30 15:00:03 +09:00
paboyle 1ec5d32369 Chulwoo's test to zmobius helped me shake out 2017-03-30 13:45:13 +09:00
paboyle 9fd23faadf Pretty layout 2017-03-30 13:44:45 +09:00
paboyle 10e4fa0dc8 Template instantiation improvements 2017-03-30 13:44:25 +09:00
paboyle c4aca1dde4 Conjugate coefficients on adjoint 2017-03-30 13:44:05 +09:00
paboyle b9e8ea3aaa conjugate coefficient on the dagger 2017-03-30 13:43:13 +09:00
paboyle 077aa728b9 Fix the ZMobius (I think) 2017-03-30 13:42:09 +09:00
paboyle a8d83d886e Macro controls 2017-03-30 13:31:34 +09:00
paboyle 7fd46eeec4 Trailing whitespace removal 2017-03-30 13:31:10 +09:00
paboyle e0c4eeb3ec Compiles again 2017-03-30 13:30:45 +09:00
paboyle cb9a297a0a Chulwoo's Zmobius test 2017-03-30 13:30:25 +09:00
paboyle 2b115929dc Small AVX512 asm ifdef patch 2017-03-29 18:51:23 +09:00
paboyle 5c6571dab1 Merge branch 'feature/bgq-asm' into develop 2017-03-29 18:48:55 +09:00
paboyle 417ec56cca Release candidate 2017-03-29 05:45:33 -04:00
paboyle 756bc25008 Verbose header print by default 2017-03-29 04:44:17 -04:00
paboyle 35695ba57a Bug fix in MPI3 2017-03-29 04:43:55 -04:00
paboyle 81ead48850 Log any errors to a file 2017-03-29 04:39:52 -04:00
paboyle d805867e02 Better init 2017-03-28 13:25:05 -04:00
paboyle e55a751e23 Merge branch 'feature/bgq-asm' of https://github.com/paboyle/Grid into feature/bgq-asm 2017-03-28 12:20:12 -04:00
paboyle 358eb75995 Shorten loop 2017-03-28 12:20:02 -04:00
paboyle 98f9318279 Build on AVX2 and MPI passing with clang++ 2017-03-28 23:16:04 +09:00
paboyle 4b17e8eba8 Merge branch 'develop' into feature/bgq-asm
Conflicts:
	lib/qcd/action/fermion/Fermion.h
	lib/qcd/action/fermion/WilsonFermion.cc
	lib/util/Init.cc
	tests/Test_cayley_even_odd_vec.cc
2017-03-28 04:49:30 -04:00
paboyle 75112a632a IO improvements to fail on IO error 2017-03-28 02:28:04 -04:00
paboyle 18bde08d1b Merge branch 'feature/staggering' into develop 2017-03-28 15:25:55 +09:00
Guido Cossu 3750b9ffee Deleting MPI test for OSX in Travis 2017-03-27 16:53:32 +09:00
Guido Cossu 5e549ebd8b Adding force terms 2017-03-27 16:43:15 +09:00
Guido Cossu fff484eca5 Populating Clover fermions methods 2017-03-27 15:12:57 +09:00
Guido Cossu 5fdc05782b More in the clover fermion class 2017-03-27 10:54:16 +09:00
paboyle d45cd7e677 Adding a simple read of NERSC test 2017-03-26 09:24:26 -04:00
paboyle 4e96679797 Added a bnl log 2017-03-25 09:25:46 -04:00
Guido Cossu a04eb7df5d Starting Clover term 2017-03-24 12:43:28 +09:00
Guido Cossu 4c1ea8677e Small cosmetic changes and vscode gitignore 2017-03-23 14:09:35 +09:00
paboyle fc93f0b2ec Save some code for static huge tlb's. It is ifdef'ed out but an interesting root only experiment.
No gain from it.
2017-03-21 22:30:29 -04:00
paboyle 8c8473998d Average over whole cluster the comm time. 2017-03-21 22:29:51 -04:00
Guido Cossu 120fb59978 Adding tests for WilsonFlow classes 2017-03-21 16:11:35 +09:00
Guido Cossu fd56b3ff38 Merge branch 'develop' into feature/hmc_generalise 2017-03-21 13:33:41 +09:00
Guido Cossu 0ec6829edc Fixing compilation errors for the WilsonFlow 2017-03-21 13:06:32 +09:00
Guido Cossu 18b7845b7b Adding WilsonFlow smearing 2017-03-21 11:52:05 +09:00
Guido Cossu 3d0fe15374 Added topological charge measurement 2017-03-17 16:14:57 +09:00
Guido Cossu 91886068fe Fixed seg fault for observable modules 2017-03-17 13:59:31 +09:00
Guido Cossu 6d1e9e5f92 Small cleanup of the observables 2017-03-17 11:42:55 +09:00
Guido Cossu b640230b1e Moving hmc observables in a different directory 2017-03-17 11:40:17 +09:00
paboyle e7c36771ed ZMobius prep for asm 2017-03-15 14:23:33 -04:00
Guido Cossu 038b6ee9cd Fixing JSON compilation error 2017-03-16 01:09:24 +09:00
Guido Cossu 38806343a8 Improving efficiency of the force term 2017-03-15 15:16:16 +09:00
Guido Cossu 831ca4e3bf Added Scalar action for fields in the adjoint representation 2017-03-14 14:55:18 +09:00
paboyle 8dc57a1e25 Layout change 2017-03-13 11:11:46 +00:00
paboyle f57bd770b0 Merge branch 'bugfix/dminus' into feature/bgq-asm 2017-03-13 11:11:03 +00:00
paboyle 4ed10a3d06 Merge branch 'develop' into feature/bgq-asm 2017-03-13 11:10:10 +00:00
Peter Boyle dfefc70b57 Merge pull request #93 from Lanny91/hotfix/qpx
Some fixes for QPX and generic SIMD types.
2017-03-13 09:31:26 +00:00
Chulwoo Jung 0b61f75c9e Adding ZMobius CG test 2017-03-13 00:12:43 -04:00
Chulwoo Jung 33edde245d Changing Dminus(Dag) to use full vectors to work correctly 2017-03-12 23:02:42 -04:00
paboyle b64e004555 MPI run fail on macos 2017-03-13 01:59:01 +00:00
paboyle 447c5e6cd7 Z mobius hermiticity correction 2017-03-13 01:30:43 +00:00
paboyle 8b99d80d8c Merge branch 'bgq-asm-shmemfixes' into feature/bgq-asm 2017-03-12 23:30:09 +00:00
Guido Cossu b3dede4dd3 Merge branch 'develop' into feature/hmc_generalise 2017-03-10 23:57:37 +09:00
Guido Cossu 4e34132f4d Correcting modules use in test files 2017-03-10 23:54:53 +09:00
Guido Cossu c07cb10247 Merge branch 'feature/hmc_generalise' of https://github.com/paboyle/Grid into feature/hmc_generalise 2017-03-10 22:37:25 +09:00
Guido Cossu d7767a2a62 Few more tests 2017-03-10 22:33:48 +09:00
Guido Cossu ec035983fd Fixing the implicit integration 2017-03-01 11:56:35 +00:00
paboyle 3901b17ade timeings from BNL 2017-02-28 17:06:45 -05:00
paboyle af230a1fb8 Average the time across the whole machine for outliers 2017-02-28 17:05:22 -05:00
Christopher Kelly 06a132e3f9 Fixes to SHMEM comms 2017-02-28 13:31:54 -08:00
Guido Cossu 596dcd85b2 Auxiliary fields 2017-02-27 13:16:38 +00:00
paboyle 96d44d5c55 Header fix 2017-02-24 19:12:11 -05:00
Guido Cossu 7270c6a150 Integrator works now 2017-02-24 17:03:42 +00:00
Lanny91 7fe797daf8 SIMD vector length sanity checks 2017-02-23 16:49:44 +00:00
Lanny91 486a01294a Corrected QPX SIMD width 2017-02-23 16:47:56 +00:00
paboyle 586a7c90b7 Merge branch 'develop' into feature/bgq-asm 2017-02-23 00:26:59 +00:00
paboyle e099dcdae7 Merge branch 'develop' into feature/bgq-asm 2017-02-23 00:25:29 +00:00
paboyle 4e7ab3166f Refactoring header layout 2017-02-22 18:09:33 +00:00
paboyle aac80cbb44 Bug fix from Chris K 2017-02-22 12:19:09 -05:00
Lanny91 c80948411b Added tRotate function and MaddRealPart struct for generic SIMD, bugfix in MultRealPart and minor cosmetic changes. 2017-02-22 14:57:10 +00:00
Lanny91 95625a7bd1 Use Grid Integer type 2017-02-22 13:09:32 +00:00
Lanny91 0796696733 Emulated integer vector type for QPX and generic SIMD instruction sets. 2017-02-22 12:01:36 +00:00
Peter Boyle f8b9ad7d50 Merge pull request #91 from sunpho84/public_modules_memebers
making public same serializable parameters in HMC Module
2017-02-22 00:53:20 +00:00
Peter Boyle 04a1959895 Merge pull request #90 from sunpho84/liming
adding --with switch to pass lime path
2017-02-22 00:52:53 +00:00
Peter Boyle cc773ae70c Merge pull request #89 from sunpho84/prepend_package_with_grid
Prepending PACKAGE_ with GRID_ in Config.h
2017-02-22 00:52:10 +00:00
Peter Boyle d21c51b9be Merge pull request #88 from sunpho84/pickpoketting
now it is possible to pass {coords list} to a peek or poke
2017-02-22 00:51:33 +00:00
Peter Boyle 597a7b4b3a Merge pull request #81 from edbennett/develop
Fix misleading message: "doxygen-pdf requires doxygen-pdf"
2017-02-22 00:50:59 +00:00
azusayamaguchi 1c30e9a961 Verified 2017-02-21 23:01:25 +00:00
Francesco Sanfilippo 93cc270016 making public same serializable parameters in HMC Module
RNGModuleParameters
GridModuleParameters
2017-02-21 23:11:56 +01:00
Francesco Sanfilippo 29b60f7e1a adding --with switch to pass lime path 2017-02-21 23:09:39 +01:00
Francesco Sanfilippo 041884acf0 Prepending PACKAGE_ with GRID_ in Config.h
Avoid polluting linking progr
2017-02-21 22:51:36 +01:00
Francesco Sanfilippo 15e668eef1 now it is possible to pass {coords list} to a peek or poke 2017-02-21 22:48:38 +01:00
azusayamaguchi bf7e3f20d4 Staggaered fermion optimised version 2017-02-21 14:35:42 +00:00
Guido Cossu 902afcfbaf Adding metric and the implicit steps 2017-02-21 11:30:57 +00:00
paboyle 3ae92fa2e6 Global changes to parallel_for structure.
Move the comms flags to more sensible names
2017-02-21 05:24:27 -05:00
paboyle 3906cd2149 Stencil fix on BNL KNL system 2017-02-20 17:51:31 -05:00
paboyle 5a1fb29db7 Useful debug code info to preserve 2017-02-20 17:49:23 -05:00
paboyle 661fc4d3d1 Debug AVX512 exchange code paths 2017-02-20 17:48:36 -05:00
paboyle 41009cc142 Move excange into the stencil only; keep Cshift fully general 2017-02-20 17:48:04 -05:00
paboyle 37720c4db7 Count bytes off node only 2017-02-20 17:47:40 -05:00
paboyle 1a30455a10 1000 iters on bmark for more accurate timing 2017-02-20 17:47:01 -05:00
Guido Cossu 97a6b61551 Covariant laplacian and implicit integration 2017-02-20 11:17:27 +00:00
paboyle cd0da81196 Merge branch 'feature/bgq-asm' of https://github.com/paboyle/Grid into feature/bgq-asm 2017-02-16 18:52:30 -05:00
paboyle f246fe3304 Improvements to avx for invertible to avoid latent bug 2017-02-16 23:52:44 +00:00
paboyle 8a29c16bde Faster gather exchange 2017-02-16 23:52:22 +00:00
paboyle d68907fc3e Debug temp 2017-02-16 18:51:35 -05:00
paboyle 5c0adf7bf2 Make clang happy with parenthesis 2017-02-16 23:51:33 +00:00
paboyle be3a8249c6 Faster gather 2017-02-16 23:51:15 +00:00
paboyle bd600702cf Vectorise the XYZT face gathering better.
Hard coded for simd_layout <= 2 in any given spread out direction; full generality is inconsistent
with efficiency.
2017-02-15 11:11:04 +00:00
Lanny91 f011bdb869 Fixed overwrite of pminus projection in construction of 4d propagator from 5d. 2017-02-14 14:07:17 +00:00
Guido Cossu bafb101e4f Testing different versions of the Laplacian 2017-02-13 15:38:11 +00:00
Guido Cossu 08fdf05528 Added and tested the covariant laplacian + CG solver 2017-02-13 15:05:01 +00:00
paboyle aca7a3ef0a Optimisation control improvements 2017-02-10 18:22:31 -05:00
Guido Cossu 9e72a6b22e Reverting to Xcode 7.3 2017-02-10 12:57:03 +00:00
Guido Cossu 1c12c5612c Xcode 8.2 for travis 2017-02-10 12:12:01 +00:00
Guido Cossu a8193c4bcb Correcting travis compilation on gcc 2017-02-10 10:59:30 +00:00
Guido Cossu c3d7ec65fa All tests compile. 2017-02-10 10:27:51 +00:00
Guido Cossu 8b6a6c8236 Resolving small merge conflict 2017-02-09 16:20:24 +00:00
Guido Cossu e0571c872b Merge branch 'develop' into feature/hmc_generalise 2017-02-09 16:12:00 +00:00
Guido Cossu c67f41887b Reverting parameters to original 2017-02-09 15:59:56 +00:00
Guido Cossu 84687ccf1f Handling an Intel compiler warning for Json class 2017-02-09 15:33:33 +00:00
Guido Cossu 3274561cf8 Cleanup 2017-02-09 15:18:38 +00:00
portelli e08fbb3771 Merge pull request #84 from Lanny91/feature/rare_kaon
Rare Kaon decay contraction code
2017-02-08 08:23:34 -08:00
Lanny91 d7464aa0fe Switched from XmlWriter to CorrWriter in contraction code 2017-02-08 16:13:44 +00:00
Lanny91 00d29153f0 Merge branch 'feature/hadrons' of https://github.com/paboyle/Grid into feature/rare_kaon 2017-02-08 16:11:15 +00:00
portelli 2ce989f220 Hadrons: default I/O to HDF5 2017-02-08 07:50:05 -08:00
Lanny91 d7a1dc85be Revert "Hadrons: test for rare kaon contraction code."
This reverts commit 1e257a1251.
2017-02-08 13:23:05 +00:00
Lanny91 fc19503673 Removed MSink namespace. 2017-02-08 13:17:39 +00:00
Lanny91 beba824136 Make use of GammaL class in Weak Hamiltonian contractions 2017-02-08 12:45:39 +00:00
Lanny91 6ebf8b12b6 Removed unnecessary repeat of write in Weak Hamiltonian contractions 2017-02-08 12:43:13 +00:00
Lanny91 e5a7ed4362 Moved write outside of loop, some physics corrections 2017-02-08 12:29:33 +00:00
Lanny91 b9f7ea47c3 Access hasModule function directly from Environment instance. 2017-02-08 10:10:06 +00:00
Lanny91 06f7ee202e Revert "Add function to say whether or not a module exists in application class"
This reverts commit 522f6bf91a.
2017-02-08 10:08:18 +00:00
Lanny91 2b2fc6453f Fixed single precision compatibility issues 2017-02-07 13:59:29 +00:00
Lanny91 bdd2765461 Added missing allocation of Weak Hamiltonian result vector 2017-02-07 13:06:42 +00:00
paboyle 2c246551d0 Overlap comms and compute options in wilson kernels 2017-02-07 01:37:10 -05:00
paboyle 71ac2e7940 Faster RNG init 2017-02-07 01:33:23 -05:00
paboyle 2bf4688e83 Running on BNL KNL 2017-02-07 01:32:10 -05:00
paboyle a48ee6f0f2 Don't use MPI3_leader any more. No real gain and complex 2017-02-07 01:31:24 -05:00
paboyle 73547cca66 MPI3 working i think 2017-02-07 01:30:02 -05:00
paboyle 123c673db7 Policy to control async or sync SendRecv 2017-02-07 01:24:54 -05:00
paboyle 61f82216e2 Communicator Policy, NodeCount distinct from Rank count 2017-02-07 01:22:53 -05:00
paboyle 8e7ca92278 Debugged cshift case 2017-02-07 01:21:32 -05:00
paboyle 485ad6fde0 Stencil working in SHM MPI3 2017-02-07 01:20:39 -05:00
paboyle 6ea2184e18 OMP define change 2017-02-07 01:17:16 -05:00
paboyle fdc170b8a3 Parallel fors in lattice transfer 2017-02-07 01:16:39 -05:00
paboyle 060da786e9 Comms benchmark improvements 2017-02-07 01:07:39 -05:00
paboyle 85c7bc4321 Bug fixes for cases that physics code couldn't hit but latent
and discovered on KNL (long vector, y SIMD dir) and checker dir set to y.
Remove the assertions on these code paths now they are tested.
2017-02-07 01:01:15 -05:00
paboyle 0883d6a7ce Overlap comms compute support; make reg naming consistent with bgq aasm 2017-02-07 00:59:32 -05:00
paboyle 9ff97b4711 Improved stencil tests passing all on KNL multinode 2017-02-07 00:58:34 -05:00
paboyle b5e9c900a4 Better printing and signal handling options 2017-02-07 00:57:55 -05:00
paboyle 4bbdfb434c Overlap comms compute modifications 2017-02-07 00:57:01 -05:00
Lanny91 4a45c06dd7 Code cleaning and addition of Weak Hamiltonian contraction log message 2017-02-06 20:12:30 +00:00
Lanny91 d6a7d7d1e0 Hadrons: added missing momentum parameter in rare kaon contraction test 2017-02-06 18:15:49 +00:00
Lanny91 1a122a0dd8 Hadrons: corrected gamma matrix inputs in rare kaon test 2017-02-06 17:35:41 +00:00
Lanny91 20e20733e8 Merge branch 'feature/hadrons' into feature/rare_kaon 2017-02-06 14:12:21 +00:00
Lanny91 b7cd1a19e3 Utilities for reading and writing "pair" objects. 2017-02-06 14:08:59 +00:00
Lanny91 f510002a62 Merge remote-tracking branch 'paboyle/feature/hadrons' into feature/hadrons 2017-02-03 14:37:34 +00:00
Christopher Kelly c94133af49 Added iteration reporting to CG and mixed CG
Added ability to manually change the initial CG inner tolerance in mixed CG
Added .hpp files to filelist script
2017-02-02 17:04:42 -05:00
portelli eedcaf6470 Merge branch 'feature/hadrons' into feature/qed-fvol 2017-02-01 15:53:10 -08:00
portelli e7d8030a64 operator>> for serialisable enums 2017-02-01 15:51:08 -08:00
portelli d775fbb2f9 Gammas: code cleaning and gamma_L implementation & test 2017-02-01 15:45:05 -08:00
portelli 863855f46f header fix 2017-02-01 11:59:44 -08:00
portelli 419af7610d New gamma matrices tidying: generated code is confined to Gamma.* for readability 2017-02-01 11:23:12 -08:00
Lanny91 1e257a1251 Hadrons: test for rare kaon contraction code. 2017-02-01 16:36:40 +00:00
Lanny91 522f6bf91a Add function to say whether or not a module exists in application class 2017-02-01 16:36:08 +00:00
Lanny91 d35d87d2c2 Weak Hamiltonian Eye-type contraction execution 2017-02-01 16:33:24 +00:00
Lanny91 74a5cda84b Removed unnecessary "3pt" labels 2017-02-01 15:03:49 +00:00
Lanny91 5be05d85b8 Fixed collision of Wall source and sink header ifdefs 2017-02-01 13:56:22 +00:00
Lanny91 35ac85aea8 Updated Weak Hamiltonian contractions to use zero-flop gamma matrices 2017-02-01 12:57:34 +00:00
Lanny91 fa237401ff Consistent variable name in macro 2017-02-01 12:56:55 +00:00
Lanny91 97053adcb5 Merge branch 'feature/hadrons' into feature/rare_kaon 2017-02-01 10:13:29 +00:00
Lanny91 f8fbe4d7a3 Merge remote-tracking branch 'paboyle/feature/hadrons' into feature/hadrons
# Conflicts:
#	extras/Hadrons/Modules/MContraction/Meson.hpp
#	tests/hadrons/Test_hadrons_meson_3pt.cc

Updated Meson.hpp to utilise zero-flop gamma matrices.
2017-02-01 09:27:00 +00:00
Lanny91 ef31c012bf Merge remote-tracking branch 'paboyle/develop' into feature/hadrons 2017-01-31 17:36:10 +00:00
portelli 7da7d263c4 typo 2017-01-30 10:53:13 -08:00
portelli 1140573027 Gamma adj fix: now in Grid namespace to avoid collisions 2017-01-30 10:53:04 -08:00
Lanny91 9e9f621d5d Hadrons: added Weak Hamiltonian module dependencies, some reformatting. 2017-01-30 17:54:21 +00:00
Lanny91 651e1a7cbc Hadrons: Momentum inserted as multiples of 2*pi/L 2017-01-30 17:14:33 +00:00
portelli a0cfbb6e88 Merge branch 'feature/gammas' into feature/hadrons
# Conflicts:
#	.gitignore
#	lib/qcd/spin/Dirac.cc
#	scripts/filelist
2017-01-30 09:10:49 -08:00
Lanny91 c4d3672720 Hadrons: Momentum projection in meson module. 2017-01-30 17:09:04 +00:00
portelli 515a26b3c6 gammas: copyright update 2017-01-30 09:07:09 -08:00
Guido Cossu 16be6d378c Now action factory support different Fields (templated) 2017-01-30 14:22:41 +00:00
Guido Cossu f05d0565aa Adding ScalarField theory 2017-01-30 10:59:28 +00:00
portelli b39f0d1fb6 Hadrons: default I/O to HDF5 if possible, XML otherwise 2017-01-27 18:12:35 -08:00
portelli 9f1267dfe6 Merge branch 'feature/qed-fvol' of github.com:paboyle/Grid into feature/qed-fvol 2017-01-27 17:06:34 -08:00
portelli 2e90285232 Merge pull request #80 from jch1g10/feature/qed-fvol
ChargedProp: remove ScalarField fs
2017-01-27 17:06:13 -08:00
portelli e254de982e Merge branch 'feature/qed-fvol' of github.com:paboyle/Grid into feature/qed-fvol 2017-01-27 17:02:35 -08:00
portelli 28d99b5297 Merge branch 'develop' into feature/qed-fvol 2017-01-27 16:59:53 -08:00
edbennett c946d3bf3f Merge branch 'develop' of github.com:edbennett/Grid into develop 2017-01-27 22:12:11 +00:00
edbennett 1c68098780 fix misleading message: "doxygen-pdf requires doxygen-pdf" 2017-01-27 22:04:26 +00:00
Lanny91 9bf4108d1f Weak Hamiltonian contraction modules, for Eye and NonEye contraction topologies. Execution for NonEye type diagrams has been implemented, but not yet for Eye type. 2017-01-27 16:58:11 +00:00
Guido Cossu 899e685627 Merge branch 'feature/sitmo_rng' into develop 2017-01-27 14:15:56 +00:00
James Harrison ee93f0218b ChargedProp: remove ScalarField fs 2017-01-27 12:22:48 +00:00
Guido Cossu 6929a84c70 Reformatting files 2017-01-27 11:54:44 +00:00
Guido Cossu 5c779a789b Moving registrations in an independent file 2017-01-27 11:23:51 +00:00
portelli 161ed102a5 Merge pull request #79 from jch1g10/feature/qed-fvol
Fixed bug in ChargedProp
2017-01-26 19:49:14 -08:00
portelli 3bf993d81a gitignore update 2017-01-26 17:00:59 -08:00
portelli fad743fbb1 Build system sanity check: corrected several headers not in the <Grid/*> format 2017-01-26 17:00:41 -08:00
Guido Cossu e863a948e3 Cleaning up files and directories 2017-01-26 15:24:49 +00:00
James Harrison f65a585236 ChargedProp: Switch to HDF5 output 2017-01-26 15:02:30 +00:00
Lanny91 977f34dca6 Added missing typename 2017-01-26 13:18:33 +00:00
Lanny91 90ad956340 Merge branch 'develop' of https://github.com/paboyle/Grid into feature/rare_kaon 2017-01-26 12:08:41 +00:00
Guido Cossu 7996f06335 Commented out registrations.
Move to an independent file that is linked only for the factory managed HMC
2017-01-25 18:27:45 +00:00
Guido Cossu ef8d3831eb Temporary patch the threading error in InsertSlice and ExtractSlice
Find source and fix the error
2017-01-25 18:12:04 +00:00
Guido Cossu 70ed9fc40c Updating the engine to the last version 2017-01-25 18:10:41 +00:00
Guido Cossu 7b40a3e3e5 Reorganizing files 2017-01-25 18:09:46 +00:00
portelli 4d3787db65 Hadrons fixed for new gammas, Meson only does one contraction but this’ll change in the future 2017-01-25 09:59:00 -08:00
Guido Cossu 677757cfeb Added and tested SITMO PRNG 2017-01-25 12:47:22 +00:00
Guido Cossu f7fbbaaca3 Compiles after merging 2017-01-25 12:11:58 +00:00
Guido Cossu 17629b8d9e Merge branch 'develop' into feature/hmc_generalise 2017-01-25 11:33:53 +00:00
Guido Cossu 0baa20d292 Againg fixing compilation on Travis, no LIME lib present 2017-01-25 11:18:44 +00:00
Guido Cossu 4571c918a4 Fixing compilation error when compiling without LIME 2017-01-25 11:14:43 +00:00
Guido Cossu 5251ea4d30 Adding more fermion action modules, generalised DWF 2017-01-25 11:10:44 +00:00
portelli 05cb6d318a gammas: adjoint implemented as a symbolic operation 2017-01-24 18:07:43 -08:00
portelli 0432e30256 Gamma right multiply code fix (now passes consistency check) 2017-01-24 17:36:23 -08:00
portelli 2c3ebc1e07 .gitignore update 2017-01-24 17:35:42 -08:00
portelli 068b28af2d Extensive gamma test program 2017-01-24 17:35:29 -08:00
portelli f7db342f49 Serialisable enums can be converted to int 2017-01-24 17:33:26 -08:00
portelli d65e81518f Merge branch 'feature/hadrons' into develop 2017-01-24 09:21:44 -08:00
Guido Cossu 7f456b4173 👷 Added all pseudofermion actions to the serialiser 2017-01-24 13:57:32 +00:00
portelli a37e71f362 New automatic implementation of gamma matrices, Meson and SeqGamma are broken 2017-01-23 19:13:43 -08:00
James Harrison ae99e99da2 Fixed bug in ChargedProp 2017-01-23 17:27:50 +00:00
Lanny91 c291ef77b5 Merge branch 'feature/hadrons' of https://github.com/paboyle/Grid into feature/hadrons 2017-01-23 15:24:47 +00:00
Lanny91 7dd2764bb2 Wall sink smearing 2017-01-23 15:17:54 +00:00
Guido Cossu 244f8fb6dc Added JSON parser (without NextElement) 2017-01-23 14:57:38 +00:00
azusayamaguchi 05c1924819 Timing loop change 2017-01-23 10:43:45 +00:00
portelli f3ca29af6c Merge branch 'feature/hadrons' into feature/qed-fvol 2017-01-21 13:41:05 -08:00
portelli b7da264b0a Hadrons: Application is not storing the environment ref but calling getInstance() each time, solving a very nasty set fault on Linux/KNL 2017-01-21 13:40:23 -08:00
portelli 37988221a8 Merge branch 'feature/serialisation-hdf5' into feature/qed-fvol 2017-01-20 14:04:20 -08:00
portelli 74ac2aa676 Merge branch 'feature/serialisation-hdf5' into feature/hadrons 2017-01-20 14:03:51 -08:00
portelli 4c75095c61 HDF5: header fix 2017-01-20 12:14:01 -08:00
portelli afa095d33d HDF5: better complex number support 2017-01-20 12:10:41 -08:00
portelli 6b5259cc10 HDF5 detects if a name is a dataset or not without using exception catching 2017-01-20 11:03:19 -08:00
Guido Cossu 27dfe816fa Added TwoFlavorsEO
Had to remove a conformability check in the Derivative of SchurDiff,
see the comments in the file
2017-01-20 16:59:31 +00:00
Lanny91 af29be2c90 Simplified operation of meson module. Result has been modified to output one contraction at a time for each pair of gamma insertions at source and sink. 2017-01-20 16:38:50 +00:00
Guido Cossu f96fac0aee All functionalities ready.
Todo: add all the fermion action modules
2017-01-20 12:56:20 +00:00
portelli 7423a352c5 HDF5: typos 2017-01-19 18:33:04 -08:00
portelli 81e66d6631 HDF5: revert back to native types 2017-01-19 18:24:53 -08:00
portelli ade1058e5f Hdf5Type does not need to be a pointer anymore 2017-01-19 18:23:55 -08:00
portelli 6eea9e4da7 HDF5 types static initialisation is mysteriously buggy on BG/Q, changing strategy 2017-01-19 18:02:53 -08:00
portelli 2c673666da Standardisation of HDF5 types 2017-01-19 17:19:12 -08:00
portelli 7a327a3f28 Merge branch 'develop' into feature/qed-fvol 2017-01-19 14:22:36 -08:00
Lanny91 07f2ebea1b Meson module now takes list of gamma matrices to insert at source and sink. 2017-01-19 22:18:42 +00:00
portelli d6401e6d2c Merge branch 'feature/hadrons' into develop 2017-01-19 14:10:01 -08:00
portelli 24d3d31b01 Genetic scheduler: uses insert instead of emplace for better compiler compatibility 2017-01-19 14:08:22 -08:00
Guido Cossu 851f2ad8ef Adding fermions actions support in the factories 2017-01-19 10:00:02 +00:00
portelli 5405526424 Code typo 2017-01-18 22:42:19 -08:00
portelli f3f0b6fef9 serious rewriting of Test_serialisation, now crashes if IO inconsistent 2017-01-18 17:41:05 -08:00
portelli 654e0b0fd0 Serialisable object are now comparable with == 2017-01-18 17:40:32 -08:00
portelli 4be08ebccc debug code cleaning 2017-01-18 17:39:59 -08:00
portelli f599cb5b17 HDF5 serial IO implemented and tested 2017-01-18 16:50:21 -08:00
Guido Cossu 23e0561dd6 Added all required functionalities, time for cleaning
All actions to be added
2017-01-18 16:31:51 +00:00
portelli a4a509497a Merge branch 'develop' of github.com:paboyle/Grid into develop 2017-01-17 16:22:22 -08:00
portelli 5803933aea First implementation of HDF5 serial IO writer, reader is still empty 2017-01-17 16:21:18 -08:00
Lanny91 8ae1a95ec6 Legal banners and module descriptions 2017-01-17 18:14:20 +00:00
Lanny91 82b7d4eaf0 Added noise loop dependencies 2017-01-17 15:58:32 +00:00
Lanny91 78774fbdc0 Construct loop propagator 2017-01-17 15:29:45 +00:00
Guido Cossu 924130833e Moved more parameters to serialization 2017-01-17 13:22:18 +00:00
Guido Cossu 7cf833dfe9 Fixed compilation error in tests hadrons (capital letter in dir name) 2017-01-17 11:00:54 +00:00
Guido Cossu 0157274762 HMC factories 2017-01-17 10:46:49 +00:00
Guido Cossu 87e8aad5a0 Added support for input file HMC modules (missing the actions yet) 2017-01-16 16:07:12 +00:00
Guido Cossu c6f59c2933 Adding factories 2017-01-16 10:18:09 +00:00
portelli 91a3534054 Lattice slice utilities now thread safe 2017-01-16 06:32:25 +00:00
portelli 16a8e3d0d4 gitignore update for ST3 2017-01-16 06:32:05 +00:00
Lanny91 b7f90aa011 Added momentum choice for wall source 2017-01-13 15:54:19 +00:00
portelli 92f8950a56 Charged scalar prop: cleaning and output 2017-01-13 13:30:56 +00:00
portelli 65987a8a58 First implementation of the scalar QED propagator, runs but absolutely not checked 2017-01-12 20:44:23 +00:00
portelli 889d828bc2 Code cleaning 2017-01-12 18:17:44 +00:00
Lanny91 f22b79da8f Added missing type aliases 2017-01-12 12:52:12 +00:00
Lanny91 3855673ebf Added header for wall source 2017-01-12 11:42:37 +00:00
Lanny91 4db82da0db Wall sources 2017-01-12 11:41:10 +00:00
Lanny91 0cdc3d2fa5 Merge remote-tracking branch 'refs/remotes/paboyle/feature/hadrons' into feature/hadrons 2017-01-12 11:26:55 +00:00
portelli ad98b6193d creating the necessary caches for the FFT EM scalar propagator 2017-01-11 18:40:43 +00:00
portelli fc760016b3 More uniform cache name for scalar momentum propagators 2017-01-11 18:39:58 +00:00
portelli 2da86f7dae Merge branch 'feature/hadrons' into feature/qed-fvol 2017-01-11 18:38:05 +00:00
portelli 41df1db811 Hadrons: number of dimensions entirely determined by the initial grid 2017-01-11 18:37:49 +00:00
Guido Cossu 0dfda4bb90 Working on the RNGModule 2017-01-09 11:06:18 +00:00
Guido Cossu 1189ebc8b5 Cleaning up the checkpointers interface 2017-01-05 15:52:52 +00:00
portelli 97843e2b58 Hadrons: free scalar buffer fix and output 2017-01-05 14:58:55 +00:00
portelli 82b3f54697 scalar free propagator fix 2017-01-05 14:58:07 +00:00
Guido Cossu 1bb8578173 Added module for checkpointers 2017-01-05 13:09:32 +00:00
Peter Boyle c3b6d573b9 Merge branch 'feature/bgq-asm' of https://github.com/paboyle/Grid into feature/bgq-asm 2016-12-30 22:42:17 +00:00
portelli 673994b281 Hadrons: modules for scalar propagators 2016-12-29 22:44:58 +01:00
portelli bbc0eff078 Hadrons: scalar sources 2016-12-29 22:44:22 +01:00
portelli 4c60e31070 Hadrons: code cleaning 2016-12-29 22:44:08 +01:00
portelli afbf7d4c37 QED Gimpl moved in Photon.h 2016-12-29 22:43:38 +01:00
portelli 8c3cc32364 Scalar action 2016-12-29 22:42:58 +01:00
Peter Boyle 1e179c903d Worried about integer; suspect where statements are broken 2016-12-27 17:46:38 +00:00
Peter Boyle 669cfca9b7 No inline 2016-12-27 17:45:40 +00:00
Peter Boyle ff2f559a57 Remove inline on gather optimised path 2016-12-27 17:45:19 +00:00
Peter Boyle 03c81bd902 Merge branch 'feature/bgq-asm' of https://github.com/paboyle/Grid into feature/bgq-asm 2016-12-27 11:25:35 +00:00
Peter Boyle a869addef1 Stats switch off 2016-12-27 11:25:22 +00:00
Peter Boyle 1caa3fbc2d LOCK UNLOCK only 2016-12-27 11:24:45 +00:00
Peter Boyle 3d21297bbb Call the fast path compressor for wilson kernels to avoid if else on projector 2016-12-27 11:23:13 +00:00
Peter Boyle 25efefc5b4 Back to original thread policy post test 2016-12-23 09:49:04 +00:00
Peter Boyle eabf316ed9 BGQ performance ASM 2016-12-22 21:56:08 +00:00
Peter Boyle 04ae7929a3 BGQ or KNL assembler now 2016-12-22 17:53:22 +00:00
Peter Boyle caba0d42a5 L1p controls 2016-12-22 17:52:55 +00:00
Peter Boyle 9ae81c06d2 L1p controls for BG/Q 2016-12-22 17:52:21 +00:00
Peter Boyle 0903c48caa Hot start SU3 2016-12-22 17:51:45 +00:00
Peter Boyle 7dc36628a1 QPX finishing 2016-12-22 17:50:48 +00:00
Peter Boyle b8cdb3e90a Debug hack; raises from 62GF/s to 72 GF/s per node on BG/Q 2016-12-22 17:50:14 +00:00
Peter Boyle 5241245534 Default to static scheduling 2016-12-22 17:49:21 +00:00
Dr Peter Boyle 960316e207 type conversion in printf 2016-12-22 17:27:01 +00:00
Guido Cossu 5214846341 Adding a resource manager 2016-12-22 12:41:56 +00:00
portelli 4c3fd9fa3f stochastic QED field module in Hadrons 2016-12-22 00:29:41 +01:00
portelli 17b3a10d46 stochastic QED: function to cache 1/sqrt(khat^2) 2016-12-22 00:29:19 +01:00
portelli 149a46b92c Merge branch 'feature/hadrons' into feature/qed-fvol 2016-12-22 00:26:43 +01:00
portelli 3215ae6b7e Hadrons: genetic scheduler crashes in multi-thread with 1 module, multi-threading deactivated for now 2016-12-22 00:26:30 +01:00
portelli 7a85fddc7e Hadrons: modification of registration mechanism to allow for persistent caches 2016-12-22 00:25:36 +01:00
Guido Cossu ce1a115e0b Removing redundant arguments for integrator functions, step 1 2016-12-20 17:51:30 +00:00
portelli db9c28a773 qed-fvol: Photon parameter name fix 2016-12-20 12:41:39 +01:00
portelli 9ac3ac41df serialisable Photon parameters 2016-12-20 12:41:01 +01:00
portelli 2af9ab9034 old Makefile cleaning 2016-12-20 12:40:26 +01:00
portelli 6f1ea96293 Merge branch 'develop' into feature/qed-fvol 2016-12-20 12:33:02 +01:00
portelli f8d11ff673 better serialisable enums (can be encapsulated into classes) 2016-12-20 12:31:49 +01:00
paboyle 3f2d53a994 BGQ assembler beginning 2016-12-20 10:21:26 +00:00
paboyle 8a337f3070 Move cayley into mainstream tests 2016-12-18 02:35:31 +00:00
paboyle a59f5374d7 Evade warning 2016-12-18 02:23:55 +00:00
paboyle 4b220972ac Warning fix 2016-12-18 02:14:17 +00:00
paboyle 629f43e36c Return statement needed 2016-12-18 02:09:37 +00:00
paboyle a3172b3455 Precision error 2016-12-18 02:07:45 +00:00
paboyle 3e6945cd65 Fixing AVX Z-mobius 2016-12-18 02:05:11 +00:00
paboyle 87be03006a AVX 512 code broke other compiles; fixing 2016-12-18 01:45:09 +00:00
paboyle f17436fec2 Bad commit fixed 2016-12-18 01:27:34 +00:00
Peter Boyle 4d8b01b7ed Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2016-12-18 00:56:57 +00:00
Peter Boyle fa6acccf55 Zmobius asm 2016-12-18 00:56:19 +00:00
Peter Boyle 55cb22ad67 Z mobius bmark 2016-12-18 00:55:37 +00:00
azusayamaguchi df9108154d Debugged 2 versions of assembler; ls vectorised, xyzt vectorised 2016-12-17 23:47:51 +00:00
azusayamaguchi b3e7f600da Partial implementation of 4d vectorisation assembler 2016-12-16 23:50:30 +00:00
azusayamaguchi d4071daf2a Template specialise 2016-12-16 22:28:29 +00:00
azusayamaguchi a2a6329094 AVX512 only for ASM compilation 2016-12-16 22:03:29 +00:00
azusayamaguchi eabc577940 Assembler possibly working 2016-12-16 16:55:36 +00:00
portelli 2e3c5890b6 qed-fvol: build fix 2016-12-15 20:06:46 +00:00
portelli bc6678732f Merge branch 'feature/hadrons' into feature/qed-fvol
# Conflicts:
#	Makefile.am
#	configure.ac
#	lib/qcd/action/gauge/Photon.h
2016-12-15 19:53:00 +00:00
portelli b10ae00c8a Merge commit '6ad73145bc9754a5f26093eee5a34473ba0cff82' into feature/qed-fvol 2016-12-15 19:48:58 +00:00
portelli 67d72000e7 Hadrons: more legal banner fixes 2016-12-15 18:26:39 +00:00
portelli 80cef1c78f Hadrons: legal banner fix 2016-12-15 18:21:52 +00:00
portelli 91e98b1dd5 Merge branch 'feature/hadrons' into develop 2016-12-15 18:15:56 +00:00
portelli b791c274b0 Revert "AVX: uninitialised variable fix"
This reverts commit c22c3db9ad.
2016-12-15 18:15:35 +00:00
portelli 596dd570c7 Linux linking fix 2016-12-15 12:26:53 +00:00
portelli cad158e42f Hadrons: tests improvement 2016-12-14 19:41:51 +00:00
portelli f63fac0c69 Hadrons: the XML runner can use a precomputed schedule 2016-12-14 19:41:30 +00:00
portelli ab92de89ab Hadrons: utility to schedule a run 2016-12-14 19:41:04 +00:00
portelli 846272b037 Hadrons: option to save and load a schedule 2016-12-14 19:40:36 +00:00
portelli f3e49e4b73 Hadrons: module templates update 2016-12-14 18:19:46 +00:00
portelli decbb61ec1 Hadrons: XML driven program is again a binary installed with Grid 2016-12-14 18:19:24 +00:00
portelli 7e2482aad1 Hadrons: cpde cleaning 2016-12-14 18:04:21 +00:00
portelli e1653a9f94 Hadrons: size fix in DWF module 2016-12-14 18:02:36 +00:00
portelli ea40854e0b Hadrons: type names are demangled 2016-12-14 18:02:18 +00:00
portelli 34df71e755 Hadrons: function to save an application as an XML file 2016-12-14 18:01:56 +00:00
portelli 3af663e17b Hadrons: modules remember their factory registration name 2016-12-14 17:59:45 +00:00
Azusa Yamaguchi 0cd6b1858c Merge branch 'develop' of https://github.com/paboyle/Grid into feature/staggering 2016-12-14 09:23:22 +00:00
Guido Cossu 0bd296dda4 Adding check of the Dag part in the benchmark 2016-12-14 03:15:09 +00:00
Guido Cossu af0ccdd8e9 Moving output order 2016-12-14 02:02:42 +00:00
portelli c22c3db9ad AVX: uninitialised variable fix 2016-12-13 19:05:58 +00:00
portelli 013e710c7d Hadrons: 3pt function test improvement 2016-12-13 19:04:43 +00:00
portelli 16693bd69d Hadrons: scheduler heuristic benchmark 2016-12-13 19:02:32 +00:00
portelli de8f80cf94 Hadrons: genetic operators improvement 2016-12-13 19:02:05 +00:00
Guido Cossu 2fb92dbc6e Cleaning up previous debug lines 2016-12-13 07:53:43 +00:00
Guido Cossu 5c74b6028b Commit for debugging, lot of IO 2016-12-13 06:35:30 +00:00
Guido Cossu e0be2b6e6c Adding a new tests for the Ls vec CG 2016-12-13 04:59:18 +00:00
Guido Cossu ef72f322d2 consistency of tests 2016-12-13 02:24:20 +00:00
Azusa Yamaguchi 426197e446 Nc=3 2016-12-12 09:10:54 +00:00
Azusa Yamaguchi 99e2c1e666 Kernels options 2016-12-12 09:08:53 +00:00
Azusa Yamaguchi 1440565a10 Decrease verbosity 2016-12-12 09:08:04 +00:00
Azusa Yamaguchi e9f0c0ea39 Staggered kernels options 2016-12-12 09:07:38 +00:00
Guido Cossu 7bc2065113 Adding report at the end of the DWF HMC tests 2016-12-12 04:21:34 +00:00
portelli 4a87486365 Hadrons: a bit of cleaning in the scheduler 2016-12-10 21:14:13 +01:00
Peter Boyle fe187e9ed3 Compiles and passes under ZMobius with assembler 2016-12-10 00:47:48 +00:00
Peter Boyle 0091b50f49 Zmobius working -- not asm yet 2016-12-09 22:51:32 +00:00
Peter Boyle fb8d4b2357 Lots of debug on performance Mobius 2016-12-08 17:28:28 +00:00
Peter Boyle ff71a8e847 Ready for sim 2016-12-08 17:00:32 +00:00
Peter Boyle 83fa038bdf Streaming stores 2016-12-08 16:58:42 +00:00
Peter Boyle 7a61feb6d3 Allocator added with caching for Linux VM subsystem optimisation 2016-12-08 16:58:01 +00:00
Peter Boyle 69ae817d1c Updates for supporting Mobius better 2016-12-08 16:43:28 +00:00
Guido Cossu 2bd4233919 Completed testing of the HMC for Ls vectorised version (on AVX2) 2016-12-07 04:56:37 +00:00
Guido Cossu 143c70e29f Debugged the threaded version. Cleaning up 2016-12-07 04:40:25 +00:00
portelli 51322da6f8 Hadrons: genetic scheduler improvement 2016-12-07 09:00:45 +09:00
portelli 49c3eeb378 Hadrons: more verbose genetic parameters 2016-12-07 08:59:58 +09:00
portelli c56707e003 useless debug message removed 2016-12-07 08:59:20 +09:00
Guido Cossu b812d5e39c Added single threaded version of the derivative for the Ls vectorised DWF 2016-12-06 16:31:13 +00:00
portelli 5b3edf08a4 Hadrons: sequential gamma source 2016-12-06 12:13:19 +09:00
portelli bd1d1cca34 Hadrons: code cleaning 2016-12-06 12:12:59 +09:00
portelli 646b11f5c2 Hadrons: exposing scheduler settings 2016-12-06 12:12:05 +09:00
portelli a683a0f55a Hadrons: meson tests renamed spectrum 2016-12-06 12:11:44 +09:00
portelli e6effcfd95 Hadrons: more contractions in the spectrum test 2016-12-05 17:41:58 +09:00
portelli aa016f61b9 Hadrons: empty baryon contractions 2016-12-05 17:26:57 +09:00
portelli d42a1b73c4 Hadrons: code cleaning 2016-12-05 17:26:36 +09:00
portelli d292657ef7 Hadrons: more module templates 2016-12-05 17:26:17 +09:00
portelli d1f7c6b94e Hadrons: templatisation of the fermion implementation 2016-12-05 16:47:29 +09:00
portelli 7ae734103e Hadrons: namespace macro to tackle GCC 5 bug 2016-12-05 14:29:32 +09:00
Guido Cossu 01480da0a8 Merge branch 'develop' into feature/hmc_generalise 2016-12-05 05:10:27 +00:00
portelli 7a1ac45679 Hadrons: configure.ac Linux typo 2016-12-05 14:00:10 +09:00
portelli 320268fe93 Hadrons: code cleaning 2016-12-05 13:57:34 +09:00
portelli dd6fb140c5 Hadrons: big module reorganisation 2016-12-05 13:53:31 +09:00
portelli 0b4f680d28 Hadrons: meson run test 2016-12-05 11:44:58 +09:00
portelli a69086ba1f Hadrons: application run minor fixes 2016-12-05 11:44:36 +09:00
portelli 7433eed274 Hadrons: module creation fix 2016-12-05 11:44:16 +09:00
portelli ee5b1fe043 Hadrons: freeing object message fix 2016-12-05 09:08:45 +09:00
portelli 1540616b22 Hadrons: integer types cleanup 2016-12-05 08:53:48 +09:00
portelli 8190523e4c Hadrons: type fix in module creation 2016-12-02 11:04:34 +09:00
portelli b5555d85a7 Hadrons: generelalised FImpl for actions 2016-12-02 11:04:15 +09:00
Peter Boyle e27c6b217c Updating 2016-12-01 12:42:53 +00:00
portelli 9ad3d3453e Hadrons is now a library, the previous XML driven program is now a test 2016-12-01 21:36:29 +09:00
Peter Boyle f7a6b8e5ed Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2016-12-01 11:39:52 +00:00
paboyle 6adf35da54 Faster Mobius 2016-12-01 11:39:04 +00:00
portelli d8b716d2cd Hadrons: static initialisation fixed 2016-12-01 15:43:16 +09:00
Peter Boyle cd01c1dbe9 Ls 16 more relevant 2016-11-30 22:11:10 +00:00
James Harrison 6ad73145bc Calculate Wilson loop average over multiple configurations. 2016-11-30 15:17:22 +00:00
paboyle bd0430b34f Serialisation in malloc fixed 2016-11-29 22:27:55 +00:00
Azusa Yamaguchi c097fd041a Merge branch 'develop' of https://github.com/paboyle/Grid into feature/staggering 2016-11-29 13:44:17 +00:00
Azusa Yamaguchi 77fb25fb29 Push 5d tests 2016-11-29 13:43:56 +00:00
Azusa Yamaguchi 389e0a77bd Staggerd Fermion 5D 2016-11-29 13:13:56 +00:00
paboyle 2f92b4860b Test the full Mooee sector 2016-11-29 00:15:08 +00:00
paboyle 4704f2d009 Actions updated 2016-11-29 00:14:36 +00:00
Guido Cossu ae9688e343 Reporting also the total mflops 2016-11-28 11:37:02 +00:00
portelli 43928846f2 first steps to make Hadrons a library 2016-11-28 16:02:15 +09:00
portelli fabcd4179d Hadrons: propagator type coming from the fermion implementation 2016-11-28 14:02:10 +09:00
portelli a8843c9af6 Code cleaning, the fermion implementation can be sepcified using the macro FIMPL 2016-11-27 16:47:22 +09:00
portelli 7a1a7a685e Merge branch 'feature/fft-opt' into feature/hadrons 2016-11-27 15:32:03 +09:00
Guido Cossu 1e44fd3094 Added some details on the mpi flags for Cray machines 2016-11-26 18:30:53 +00:00
Guido Cossu d8258f0758 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2016-11-26 18:25:32 +00:00
Guido Cossu 6c0cc5676b Adding Eigen.inc to the gitignore 2016-11-26 18:25:12 +00:00
portelli f7293f2ddb Merge pull request #69 from jch1g10/feature/qed-fvol 2016-11-26 07:04:04 +09:00
portelli 11dc0b398b Merge pull request #74 from Lanny91/develop 2016-11-26 07:01:51 +09:00
Lanny91 b18950f776 Added simd real divide test with QPX divide fixes 2016-11-25 13:21:33 +00:00
Lanny91 0acbf77bc6 Add QPX Div structure 2016-11-24 13:24:12 +00:00
portelli 3cdf945d84 Test_fftf fix 2016-11-24 09:10:03 +09:00
portelli 5833f247fa more FFt optimisations 2016-11-24 09:09:48 +09:00
Azusa Yamaguchi 95f43d27ae Merge branch 'develop' of https://github.com/paboyle/Grid into feature/staggering 2016-11-22 13:49:22 +00:00
Azusa Yamaguchi 668ca57702 Merge branch 'develop' of https://github.com/paboyle/Grid into feature/staggering 2016-11-22 13:49:11 +00:00
portelli a2cffb0304 AVXFMA target fixed 2016-11-21 17:47:18 +01:00
portelli bafbac6ac4 Merge branch 'feature/gen-simd' into develop 2016-11-19 13:45:30 +01:00
portelli 595f1ce371 GEN SIMD build fix 2016-11-19 13:45:12 +01:00
portelli 6d7cde4eb4 README update 2016-11-19 13:17:35 +01:00
portelli 97cddda49e Merge branch 'feature/gen-simd' into feature/doxygen
# Conflicts:
#	Makefile.am
#	configure.ac
2016-11-19 13:11:13 +01:00
portelli 433afd36f5 Makefile rule for simple_* objects 2016-11-19 01:33:13 +01:00
portelli b873504b90 fully generic SIMD 2016-11-19 01:32:39 +01:00
Guido Cossu 62749d05a6 Naming the scalar action 2016-11-17 12:26:20 +00:00
Guido Cossu 3834feb4b7 Adding action names 2016-11-16 16:46:49 +00:00
James Harrison 6b8ee7bae0 Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-11-15 13:08:08 +00:00
James Harrison 739c2308b5 Set imaginary part of stochastic QED field to zero using real() instead of conjugate(). 2016-11-15 13:07:52 +00:00
Guido Cossu 454302414d Small modif at the test hmc 2016-11-15 12:31:13 +00:00
portelli 042ae5b87c generic 256bits SIMD 2016-11-15 12:16:15 +00:00
James Harrison a71b69389b QedFVol: calculate square Wilson loops up to 10x10 2016-11-14 18:23:04 +00:00
James Harrison d49e502f53 Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-11-14 18:00:33 +00:00
James Harrison 92ec3404f8 Set imaginary part of stochastic QED field to zero after FFT into position space 2016-11-14 17:59:02 +00:00
James Harrison f4ebea3381 QedFVol: add functions for computing spatial and timelike Wilson loops 2016-11-14 17:51:53 +00:00
James Harrison cf167d0cd1 QedFVol: implement exponentiation of photon field 2016-11-14 17:02:29 +00:00
Guido Cossu 6f8b771a37 Adding date of the last commit 2016-11-10 18:52:00 +00:00
Guido Cossu 4e1ffdd17c Adding git info to the configure output 2016-11-10 18:44:36 +00:00
portelli 1aa695cd78 Hadrons: merge typo 2016-11-10 18:38:30 +00:00
Guido Cossu a783282b8b Merge branch 'develop' into feature/hmc_generalise 2016-11-10 18:13:07 +00:00
Guido Cossu 19b85d8486 Some comments in the hmc files 2016-11-10 17:55:58 +00:00
paboyle 58f4950652 Merge branch 'release/v0.6.0' into develop 2016-11-09 12:44:00 +00:00
paboyle c363bdd784 Merge branch 'release/v0.6.0' 2016-11-09 12:43:14 +00:00
paboyle 604f0ea2f6 Merge branch 'develop' into release/v0.6.0 2016-11-09 04:13:01 -08:00
paboyle 42c912f608 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2016-11-09 04:12:15 -08:00
paboyle 33dc1f51b5 Final sign off commits from Cori-1 2016-11-09 04:11:03 -08:00
James Harrison c30d96ea50 QedFVol: x86intrin.h namespace fix 2016-11-09 11:06:20 +00:00
portelli 13a8997789 Merge branch 'release/v0.6.0' into feature/hadrons
# Conflicts:
#	Makefile.am
2016-11-08 20:43:39 +00:00
portelli 9576f0903d namespace fix 2016-11-08 19:07:47 +00:00
portelli 34cf702b24 README is now a symlink to README.md 2016-11-08 17:00:38 +00:00
portelli 8a5e3a917c Merge branch 'develop' into release/v0.6.0
# Conflicts:
#	tests/core/Test_fft_gfix.cc
2016-11-08 16:53:42 +00:00
portelli 65bcf281d0 Merge branch 'develop' of github.com:paboyle/Grid into develop 2016-11-08 16:51:19 +00:00
portelli cd0be8cb24 Test_fft_gfix.c precision fix 2016-11-08 15:32:05 +00:00
portelli 3d2a22a14d include fix for MKL 2016-11-08 15:31:47 +00:00
James Harrison 7ffe17ada1 Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-11-08 14:52:43 +00:00
portelli a26adfb090 README: only markdown 2016-11-08 14:11:18 +00:00
portelli f6e1a5b348 building tests depends on building the library at the top level 2016-11-08 14:08:33 +00:00
portelli c5a025d421 README typo 2016-11-08 14:07:59 +00:00
azusayamaguchi 50d277d8d9 Merge branch 'develop' into release/v0.6.0 2016-11-08 13:44:14 +00:00
azusayamaguchi 343f3e829f Fixes prerelease to make all tests 2016-11-08 13:42:12 +00:00
azusayamaguchi f85b35314d Fix a routine for single node processor coor from rank 2016-11-08 11:49:13 +00:00
azusayamaguchi 3dc2e05d6e Time as well since MKL returns zero for Mflops 2016-11-08 11:36:18 +00:00
azusayamaguchi 0cff8754d1 Usecs 2016-11-08 11:35:41 +00:00
Guido Cossu afc8d3e524 Adding support for parallel recursive compilation for the tests 2016-11-07 11:13:43 +00:00
azusayamaguchi 692b44dac1 Merge branch 'develop' into release/v0.6.0 2016-11-04 22:48:11 +00:00
azusayamaguchi 96ba42a297 omm buf 2016-11-04 22:47:25 +00:00
portelli 7df940dc3e homemade test recusrive target for old autotools versions 2016-11-04 22:32:25 +00:00
azusayamaguchi f7b60004f3 Merge branch 'develop' into release/v0.6.0 2016-11-04 16:08:07 +00:00
portelli 8af8b047fd tests is now a recusrsive target 2016-11-04 13:44:21 +00:00
portelli 6592078fef Make.inc removed, once again don't commit it! 2016-11-04 13:43:40 +00:00
portelli ad971ca07b fftw3.h is now expected to be an external header 2016-11-04 13:12:35 +00:00
portelli f2f16eb972 fftw3.h removed, please don't commit this file back 2016-11-04 13:11:05 +00:00
azusayamaguchi b7d55f7dfb Fix a typo in reorg of the --dslash-asm 2016-11-04 11:35:08 +00:00
azusayamaguchi 6e548a8ad5 Linux compile needed 2016-11-04 11:34:16 +00:00
Azusa Yamaguchi ee686a7d85 Compiles now 2016-11-03 16:58:23 +00:00
Azusa Yamaguchi 1c5b7a6be5 Staggered phases first cut, c1, c2, u0 2016-11-03 16:26:56 +00:00
portelli a5dd4a9bab Merge branch 'feature/fft-opt' into develop 2016-11-03 14:34:46 +00:00
portelli ec232af851 Photon.h references removed 2016-11-03 14:34:16 +00:00
portelli 17e30281e9 Merge branch 'develop' into feature/fft-opt
# Conflicts:
#	lib/FFT.h
2016-11-03 14:14:03 +00:00
portelli 2854e601e6 FFT test typo 2016-11-03 14:09:47 +00:00
portelli aee44dc694 Photon.h removed from develop branch 2016-11-03 13:54:15 +00:00
portelli 75bbf6a0af Merge branch 'develop' into feature/feynman-rules 2016-11-03 13:52:11 +00:00
portelli c65d23935a README update 2016-11-03 13:48:20 +00:00
portelli 92cd797636 MPI auto configure fix 2016-11-03 13:48:07 +00:00
paboyle 111bfbc6bc notimestamp by default 2016-11-03 11:40:26 +00:00
paboyle f41a230b32 Decrease mpi3l verbose 2016-11-02 19:54:03 +00:00
paboyle c067051d5f Merge branch 'develop' into release/v0.6.0 2016-11-02 13:59:18 +00:00
paboyle afdeb2b13c Merge branch 'feature/mpi3-master-slave' into develop 2016-11-02 13:43:20 +00:00
paboyle 9e2ec2719b Merge branch 'develop' into feature/mpi3-master-slave 2016-11-02 13:02:56 +00:00
paboyle 757a928f9a Improvement to use own SHM_OPEN call to avoid openmpi bug. 2016-11-02 12:37:46 +00:00
Guido Cossu bc248b6948 Merge branch 'release/v0.6.0' into feature/KNL_double_prec
Conflicts:
	lib/simd/Grid_avx512.h
2016-11-02 10:40:49 +00:00
Guido Cossu ae8561892e Eliminating useless defines 2016-11-02 10:21:06 +00:00
paboyle 32375aca65 Semaphore sleep/wake up on remote processes. 2016-11-02 09:27:20 +00:00
paboyle bb94ddd0eb Tidy up of mpi3; also some cleaning of the dslash controls. 2016-11-02 08:07:09 +00:00
portelli 330a9b3f4c Merge pull request #65 from jch1g10/feature/qed-fvol 2016-11-01 19:53:25 +00:00
portelli c2d78493c8 Merge pull request #64 from jch1g10/feature/feynman-rules 2016-11-01 19:53:08 +00:00
James Harrison 28ff66a381 Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-11-01 16:07:46 +00:00
James Harrison 78c7bcee36 QedFVol: Change variables of type "double" to type "Real". 2016-11-01 16:06:05 +00:00
James Harrison 7f0fc0eff5 Remove explicit use of double-precision types in photon.h 2016-11-01 16:02:35 +00:00
Azusa Yamaguchi 164d3691db Staggered 2016-11-01 14:24:22 +00:00
paboyle 791cb050c8 Comms improvements 2016-11-01 11:35:43 +00:00
portelli 00a7b95631 Merge remote-tracking branch 'gh-james/feature/qed-fvol' into feature/qed-fvol 2016-10-31 18:46:23 +00:00
portelli 94d8321d01 Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-10-31 18:41:30 +00:00
portelli d5e95bc350 Merge branch 'release/v0.6.0' into feature/feynman-rules 2016-10-31 18:36:21 +00:00
portelli 6efac3a252 Merge pull request #61 from jch1g10/feature/feynman-rules
Add missing volume factor in stochastic QED field
2016-10-31 18:35:22 +00:00
portelli 7a84906b5f Merge branch 'release/v0.6.0' into feature/fft-opt 2016-10-31 18:31:49 +00:00
portelli 07416e4567 README update 2016-10-31 18:21:52 +00:00
portelli 66d832c733 FFTW header fix 2016-10-31 16:39:29 +00:00
portelli e74417ca12 big build system polish 2016-10-31 16:31:27 +00:00
portelli 7bd0084b5d Merge branch 'develop' into release/v0.6.0 2016-10-31 16:30:22 +00:00
Guido Cossu e8c3174ae2 Small change in the defines 2016-10-30 12:23:11 +00:00
Guido Cossu 9b066e94d0 Compilation with both single and double precision 2016-10-30 12:04:06 +00:00
James Harrison ac24cc9f99 Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-10-29 11:05:26 +01:00
James Harrison 618abdf302 Add missing volume factor in stochastic QED field 2016-10-29 11:04:02 +01:00
Guido Cossu e1042aef77 First version of the doube prec for testing purposes
It does not compile single and double version at the same time
2016-10-28 17:20:04 +01:00
paboyle aa6a839c60 avx512 build fix; detect clang/gcc intrinsics vs. ICPC 2016-10-28 09:13:09 +01:00
portelli ac99a56237 Merge branch 'develop' into release/v0.6.0 2016-10-27 11:53:24 +01:00
portelli b4d2af8c89 threaded FFT 2016-10-26 19:46:36 +01:00
portelli 434af6aeaa Merge branch 'develop' into feature/fft-opt 2016-10-26 18:50:38 +01:00
portelli e90f8ac841 Merge branch 'develop' into feature/feynman-rules 2016-10-26 18:50:21 +01:00
portelli a1705a8d53 debug message removed 2016-10-26 18:50:07 +01:00
portelli ca21003f01 Merge branch 'feature/fft-opt' into feature/feynman-rules
# Conflicts:
#	lib/FFT.h
#	lib/qcd/action/fermion/WilsonFermion5D.h
#	tests/core/Test_fft.cc
2016-10-26 18:44:47 +01:00
portelli 14ddf2c234 more FFT optimisations 2016-10-26 17:36:26 +01:00
Guido Cossu 1d666771f9 Debugging the RNG, eliminate the barrier after broadcast 2016-10-26 16:08:23 +01:00
Guido Cossu d50055cd96 Making the ILDG support optional 2016-10-26 09:48:01 +01:00
Azusa Yamaguchi bca861e112 Note:FFT shoud be GridFFT (Not change yet).
Gauge fix with FFt is added (tests/core)
2016-10-25 14:21:48 +01:00
James Harrison 3ab4c8c0bb QedFVol: calculate plaquette and 2x2 Wilson loop of stochastic QED field 2016-10-25 13:32:02 +01:00
portelli 33d199a0ad temporary thread safety in FFT 2016-10-25 12:56:40 +01:00
paboyle 93896ce59e Roll version number 2016-10-25 06:12:49 +01:00
paboyle b1508e4124 Merge branch 'feature/mpi3' into develop 2016-10-25 06:06:36 +01:00
paboyle b820076b91 Merge branch 'develop' into feature/mpi3 2016-10-25 06:02:33 +01:00
paboyle 09f66100d3 MPI 3 compile on non-linux 2016-10-25 06:01:12 +01:00
azusayamaguchi d7d92af09d Travis fail fix attempt 2016-10-25 01:45:53 +01:00
azusayamaguchi 460d0753a1 Merge branch 'develop' into feature/mpi3
Conflicts:
	lib/simd/Grid_avx512.h
2016-10-25 01:08:51 +01:00
azusayamaguchi 8f8058f8a5 More random bits on parallel seeding 2016-10-25 01:05:52 +01:00
azusayamaguchi d97a27f483 Verbose 2016-10-25 01:05:31 +01:00
azusayamaguchi 7c3363b91e Compiles all comms targets 2016-10-25 00:04:17 +01:00
azusayamaguchi b94478fa51 mpi, mpi3, shmem all compile.
mpi, mpi3 pass single node multi-rank
2016-10-24 23:45:31 +01:00
Guido Cossu 47c7159177 ILDG reader/writer works
Fill the xml header with the required information, todo.
2016-10-24 21:57:54 +01:00
portelli 13bf0482e3 FFT optimisation 2016-10-24 19:25:40 +01:00
portelli a795b5705e memory optimisation 2016-10-24 19:25:15 +01:00
portelli 392e064513 fast local peek-poke 2016-10-24 19:24:21 +01:00
azusayamaguchi b6a65059a2 Update to use shared memory to contain the stencil comms buffers
Tested on 2.1.1.1 1.2.1.1 4.1.1.1 1.4.1.1 2.2.1.1 subnode decompositions
2016-10-24 17:30:43 +01:00
Guido Cossu f415db583a Adding ILDG format 2016-10-24 15:48:22 +01:00
Guido Cossu f55c16f984 Adding a barrier in the RNG save 2016-10-24 11:02:14 +01:00
azusayamaguchi ea25a4d9ac Works 2016-10-23 06:10:05 +01:00
azusayamaguchi c190221fd3 Internal SHM comms in non-simd directions working
Need to fix simd directions
2016-10-22 18:14:27 +01:00
Guido Cossu df67e013ca More debug output for the RNG 2016-10-22 13:34:17 +01:00
Guido Cossu 3e990c9d0a Reverting the broadcast change 2016-10-22 13:26:43 +01:00
Guido Cossu 4b740fc8fd Debugging the RNG state save 2016-10-22 13:06:00 +01:00
azusayamaguchi 0fcd2e7188 Simplify the comms structure prior to implementing Shared memory direct bouncs 2016-10-21 22:44:10 +01:00
azusayamaguchi 910b8dd6a1 use simd type 2016-10-21 22:35:29 +01:00
azusayamaguchi 75ebd3a0d1 Typo fixes and rotate for CLANG 2016-10-21 22:34:29 +01:00
Guido Cossu cccd14b09e Small cleanup 2016-10-21 17:20:54 +01:00
Guido Cossu e6acffdfc2 Fixing the plaquette computation 2016-10-21 16:06:34 +01:00
portelli 26d124283e Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-10-21 15:23:31 +01:00
portelli 0d889b7041 QedFVol: first attempt at generating a QED field 2016-10-21 15:21:32 +01:00
portelli 7c8f79b147 more stochastic QED fixes 2016-10-21 15:20:12 +01:00
azusayamaguchi 09fd5c43a7 Reasonably fast version 2016-10-21 15:17:39 +01:00
portelli ab31ad006a Merge branch 'feature/feynman-rules' into feature/qed-fvol 2016-10-21 14:42:18 +01:00
portelli 462921e549 QED: fix stochastic field 2016-10-21 14:41:08 +01:00
Guido Cossu 392130a537 Working on the 5d 2016-10-21 14:22:25 +01:00
azusayamaguchi f22317748f Merge branch 'feature/mpi3' of https://github.com/paboyle/Grid into feature/mpi3 2016-10-21 13:36:35 +01:00
azusayamaguchi 6a9eae6b6b Reporting improvements 2016-10-21 13:36:18 +01:00
azusayamaguchi fad96cf250 StencilBufs 2016-10-21 13:36:00 +01:00
azusayamaguchi f331809c27 Use variable type for loop 2016-10-21 13:35:37 +01:00
portelli bd6a228af6 Merge commit '20a091c3eddfdb67a82ece6413740a93650a2f98' into feature/feynman-rules 2016-10-21 13:10:30 +01:00
portelli 63d219498b first (dirty) implementation of Feynman stoctachtic EM field 2016-10-21 13:10:13 +01:00
paboyle 2c54a53d0a Compile verbose reduce 2016-10-21 12:12:14 +01:00
paboyle 306160ad9a bcopy threaded 2016-10-21 12:07:28 +01:00
azusayamaguchi 20a091c3ed Intel vs. Clang intrinsics differences absorbed 2016-10-21 09:08:36 +01:00
azusayamaguchi 202078eb1b Cray / OpenSHMEM ordering differs 2016-10-21 09:07:20 +01:00
paboyle a762b1fb71 MPI3 working with a bounce through shared memory on my laptop.
Longer term plan: make the "u_comm_buf" in Stencil point to the shared region and avoid the
send between ranks on same node.
2016-10-21 09:03:26 +01:00
Guido Cossu deef2673b2 Separating the Lattice theories stub from the QCD.h file 2016-10-20 17:24:08 +01:00
paboyle 5b5925b8e5 Forgot to add 2016-10-20 17:09:40 +01:00
Guido Cossu 977b0a6dd9 Merge branch 'develop' into feature/hmc_generalise 2016-10-20 17:04:41 +01:00
Guido Cossu 977d844394 Few modifications on stdout messages 2016-10-20 17:01:59 +01:00
paboyle b58adc6a4b commVector 2016-10-20 17:00:15 +01:00
paboyle f9d5e95d72 allocator template typedefs moved to AlignedAllocator 2016-10-20 16:59:39 +01:00
paboyle 4f8e636a43 commVector 2016-10-20 16:59:16 +01:00
paboyle 9b39f35ae6 commVector different for SHMEM compat 2016-10-20 16:58:53 +01:00
paboyle 5fe2b85cbd MPI3 and shared memory support 2016-10-20 16:58:01 +01:00
paboyle c7cccaaa69 Comm vector for shmem 2016-10-20 16:57:31 +01:00
paboyle cbcfea466f MPI3 2016-10-20 16:57:14 +01:00
paboyle 4955672fc3 MPI3 2016-10-20 16:57:00 +01:00
paboyle 39f1c880b8 mpi3 2016-10-20 16:56:40 +01:00
paboyle 8c043da5b7 SHMEM and comms allocator made different 2016-10-20 16:56:05 +01:00
paboyle 3cbe974eb4 Layout 2016-10-20 16:55:21 +01:00
portelli 6e4a06e180 qed-fvol: initial commit 2016-10-20 15:04:00 +01:00
portelli 997fd882ff Merge branch 'develop' into feature/feynman-rules
# Conflicts:
#	lib/Threads.h
#	lib/qcd/action/fermion/WilsonFermion.cc
#	lib/qcd/action/fermion/WilsonFermion.h
#	lib/qcd/utils/SUn.h
#	lib/simd/Grid_avx.h
#	lib/simd/Intel512common.h
2016-10-19 18:35:18 +01:00
Guido Cossu 590675e2ca Csum in hex format 2016-10-19 17:26:25 +01:00
Guido Cossu 8c65bdf6d3 Printing checksum for the RNG file 2016-10-19 16:56:11 +01:00
Guido Cossu 74f1ed3bc5 Adding some documentation for HMC 2016-10-19 10:51:13 +01:00
paboyle 7af9b87318 Cache face tables to improve performance.
Extract merge now looking poor.
2016-10-18 09:51:37 +01:00
paboyle 811ca45473 GNU clang hack for AVX512 since there are missing reduce intrinsics in Clang 3.9 and GCC-6 AVX512 support 2016-10-17 16:23:21 +01:00
paboyle bc1a4d40ba Faster integer handling avoid push_back 2016-10-17 16:16:44 +01:00
Guido Cossu 79270ef510 Added a test for EODWF Scaled Shamir with general HMC 2016-10-14 17:34:26 +01:00
Guido Cossu e250e6b7bb Moving parameters outside of the HMCrunner 2016-10-14 17:22:32 +01:00
paboyle c8079e6621 Time the face gateher in x-dir more carefully 2016-10-13 22:28:50 +01:00
Guido Cossu 261342c15f Adding gh-pages 2016-10-13 11:51:25 +01:00
azusayamaguchi 8b0d171c9a 32bit issue on the KNL code variant where byte offsets were stored 2016-10-12 17:49:32 +01:00
azusayamaguchi 1f293b76b4 Merge branch 'feature/knl-stats' into develop 2016-10-12 13:47:58 +01:00
azusayamaguchi 8bbd9ebc27 Reversing changes to Stencil class 2016-10-12 13:47:20 +01:00
azusayamaguchi 6472b431f0 __rdpmc needed for gcc, clang++ 2016-10-12 12:29:08 +01:00
azusayamaguchi bd205a3293 Fixing for non x86 and non KNL 2016-10-12 12:09:15 +01:00
azusayamaguchi 496beffa88 Fix non-KNL build 2016-10-12 12:06:08 +01:00
azusayamaguchi 9b63e97108 align not absolutely required and confuses clang++ 2016-10-12 11:51:21 +01:00
azusayamaguchi 81f2aeaece KNL streaming stores, and KNL performance coutners 2016-10-12 11:45:22 +01:00
paboyle 2d4a45c758 Typecast pointer 2016-10-12 09:14:15 +01:00
paboyle a123dcd7e9 Static required for shmem. Reading same object twice requires csum reset 2016-10-12 00:29:57 +01:00
paboyle 6b27c42dfe Cosmetic 2016-10-12 00:29:39 +01:00
paboyle f7c2aa3ba5 runtime by default 2016-10-12 00:29:13 +01:00
paboyle 0f182f033b Drop macos with gcc 2016-10-11 22:29:06 +01:00
paboyle 7240d73184 Parallelise the x faces; fix the segv on KNL with comms 2016-10-11 22:21:07 +01:00
paboyle 42cd148f5e Base pointer for comms buffer under AVX512 assembly 2016-10-11 16:06:06 +01:00
Guido Cossu eda4dd622e Some more edit 2016-10-11 15:45:20 +01:00
paboyle 6e01264bb7 don't use static by default 2016-10-11 10:03:39 +01:00
paboyle 6f408256bc FMA4 option moved on the align 2016-10-11 10:03:01 +01:00
paboyle 8d11681aac verbose remove 2016-10-10 23:50:42 +01:00
paboyle 3d5c9a1ee9 No compile fix on clang++ 3.9 2016-10-10 23:50:13 +01:00
paboyle db749f103f Add Wilson, DWF, Overlap feynman rule tests 2016-10-10 23:48:35 +01:00
paboyle dc389e467c axpy_ssp for any coeff type via template 2016-10-10 23:48:05 +01:00
paboyle 3619167d62 Mass parameter 2016-10-10 23:47:33 +01:00
paboyle 96f1d1b828 Debugged Domain wall and Overlap feynman rules (infinite Ls, finite mass). 2016-10-10 23:46:45 +01:00
paboyle 657e0a8f4d Mass parameter 2016-10-10 23:46:10 +01:00
paboyle 616e7cd83e Mass parameter 2016-10-10 23:45:48 +01:00
paboyle 6f26d2e8d4 Overlap tree level feynman rule 2016-10-10 23:45:18 +01:00
paboyle c014574504 A "please implement me" feynman rule. If this were abstract virtual it would
require/force implementation
2016-10-10 23:44:00 +01:00
paboyle d7ce164e6e Feynman rule for DWF 2016-10-10 23:43:36 +01:00
paboyle c0d5b99016 Dminus 2016-10-10 23:43:19 +01:00
paboyle 09ca32d678 Dminus added for Cayley 2016-10-10 23:42:55 +01:00
paboyle 082ae350c6 static schedule by default 2016-10-10 23:42:30 +01:00
Guido Cossu 611b5d74ba Fix for AVX+FMA3 compilation 2016-10-10 15:26:17 +01:00
Guido Cossu b56c9ffa52 Fix for AVXFMA 2016-10-10 14:43:37 +01:00
Guido Cossu c68a2b9637 Minor fix 2016-10-10 11:54:58 +01:00
Guido Cossu 293df6cd20 Generalising the HMCRunner and moving parameters to the user level 2016-10-10 11:49:55 +01:00
Guido Cossu 65f61bb3bf Reset QCD colours to 3 2016-10-10 09:46:17 +01:00
Guido Cossu 26b9740d53 Some fix for the GenericHMCrunner 2016-10-10 09:43:05 +01:00
portelli cb02b7088f Merge branch 'develop' into feature/doxygen
# Conflicts:
#	configure.ac
2016-10-09 13:35:44 +01:00
portelli 70c32fa49b Merge branch 'develop' of github.com:paboyle/Grid into develop 2016-10-09 12:55:46 +01:00
portelli 77c8a94dae AVXFMA4 flag fix for Intel Compiler 2016-10-09 12:55:12 +01:00
Guido Cossu 6eb873dd96 Added scalar action phi^4
Check Norm2 output (Complex type assumption)
2016-10-07 17:28:46 +01:00
Guido Cossu 11b4c80b27 Added support for hmc and binary IO for a general field 2016-10-07 13:37:29 +01:00
Guido Cossu 2e453dfbf5 Added some instrumentation to benchmark the force computation 2016-10-06 17:52:45 +01:00
Guido Cossu c065e454c3 Adding Binrary IO, untested 2016-10-06 10:12:11 +01:00
paboyle 4089984431 Timing hooks 2016-10-06 09:25:12 +01:00
portelli 98439847cf configure portability fix 2016-10-05 14:57:20 +01:00
Guido Cossu c78bbd0f8c Fix ASM compilation 2016-10-04 15:37:32 +01:00
Guido Cossu d9b5fbd374 In the middle of adding a general binary writer 2016-10-04 11:24:08 +01:00
Guido Cossu cfbc1a26b8 Now the gauge implementation has to take care of the Nexp 2016-10-03 16:20:06 +01:00
Guido Cossu 257f69f931 One more function to generalise the HMC integrator 2016-10-03 15:50:04 +01:00
Guido Cossu e415260961 First cut on generalised HMC
Backward compatibility OK
2016-10-03 15:28:00 +01:00
portelli 7ea4b959a4 hopefully more portable configure output 2016-09-27 11:54:37 +01:00
portelli 536e2ff073 *.inc removed: please don't commit these files either! 2016-09-27 11:54:03 +01:00
portelli 798ff34d7e configure removed: please don't commit configure! 2016-09-27 11:29:31 +01:00
paboyle 87acd06990 Use streaming stores 2016-09-26 10:11:34 +01:00
paboyle 9353b6edfe Fenv out of grid namespace 2016-09-26 10:09:13 +01:00
paboyle 167cc2650e GNU SOURCE problem on travis 2016-09-26 09:58:09 +01:00
paboyle 34f887ca1c Test_fft not complete; preparing for tests of momentum space DWF and Overlap feynman rules but not there yet. 2016-09-26 09:44:36 +01:00
paboyle 7089b6d5a5 Setting up but not implemented some QED rules 2016-09-26 09:43:40 +01:00
paboyle 2ba7d43ddd Divide handling 2016-09-26 09:43:14 +01:00
paboyle 836e929565 Divide handling improved 2016-09-26 09:42:22 +01:00
paboyle b6713ecb60 Momentum space rules for Overlap, DWF untested to date 2016-09-26 09:39:09 +01:00
paboyle 52a39f0fcd Divide in ET 2016-09-26 09:38:38 +01:00
paboyle 81a7a03076 Integer << 2016-09-26 09:38:17 +01:00
paboyle 16b37b956c divide goes to ET 2016-09-26 09:37:59 +01:00
paboyle 567b6cf23f demangle moves to logging 2016-09-26 09:36:51 +01:00
paboyle 296396646d FPE's on macos set up 2016-09-26 09:36:14 +01:00
Guido Cossu 04a437c92c Minor modification to the filelist script 2016-09-23 11:12:45 +01:00
Guido Cossu 5c190a1b8c Merge branch 'develop' into feature/hirep 2016-09-23 11:06:06 +01:00
Guido Cossu 15d8f5c88c Small change to the configure.ac to include the canonical names 2016-09-23 11:05:36 +01:00
Guido Cossu c4ac6e7e8f Consolidating HMC interface
Uniformed interface for standard action in fundamental rep and Hirep
2016-09-23 10:47:42 +01:00
Guido Cossu 510e340e16 Debugged last commit for the Two index representation 2016-09-22 22:16:21 +01:00
Guido Cossu 6ffadca153 Restored number of colours to 3 2016-09-22 14:22:54 +01:00
Guido Cossu b6597b74e7 Added support for the Two index Symmetric and Antisymmetric representations
Tested for HMC convergence: OK
Added also a test file showing an example for mixed representations
2016-09-22 14:17:37 +01:00
portelli a034e9901b Merge branch 'develop' into feature/hadrons 2016-09-20 13:49:33 +01:00
portelli d2573189d8 build system: FFTW fix 2016-09-20 12:30:24 +01:00
portelli 65ca174dbb gitignore update 2016-09-20 11:25:06 +01:00
Antonin Portelli 0724f7af75 QPX single precision implementation 2016-09-19 18:09:12 +01:00
portelli 2e74520821 removed libtool use (BG/Q compatibility) 2016-09-16 15:25:49 +01:00
Antonin Portelli 6dd75ad9e5 Merge branch 'develop' of github.com:paboyle/Grid into feature/bgq 2016-09-16 15:07:54 +01:00
Guido Cossu fda408ee6f Added first lines for supporting Two Index representations 2016-09-13 10:43:30 +01:00
Guido Cossu b9c80318a2 Merge branch 'develop' into feature/hirep 2016-09-13 10:01:51 +01:00
Guido Cossu 5df5d52d41 Fix for the Intel compiler 2016-09-12 17:17:20 +01:00
Guido Cossu f76f281e58 Cleaning files after fix 2016-09-09 11:34:25 +01:00
Guido Cossu aa20cc8b52 Fixing compilation error with AVX512 flag 2016-09-09 02:58:52 -07:00
Guido Cossu 0fd179fb33 Merge branch 'develop' into feature/hirep 2016-09-01 12:59:53 +01:00
Guido Cossu f45ef8d114 Minor modification in ActionBase.h 2016-09-01 11:46:46 +01:00
paboyle 7422953e36 Poisson solver example 2016-08-31 00:42:47 +01:00
paboyle 8535d433a7 Cold or hot must support any precisoin 2016-08-31 00:27:53 +01:00
paboyle b573d1f35a Wilson tree level added 2016-08-31 00:27:04 +01:00
paboyle 0c1d7e4daf Mom space prop for Wilson action 2016-08-31 00:26:36 +01:00
paboyle 02e983a0cd Momentum space prop and free prop convolution 2016-08-31 00:26:02 +01:00
paboyle d15ab66aae FFT moves higher in include order 2016-08-31 00:25:22 +01:00
paboyle 9005b82c6d Multi dim FFT, and normalisation fix 2016-08-31 00:24:52 +01:00
paboyle 3475f45ce7 Demangle support for typeid stuff 2016-08-31 00:23:48 +01:00
paboyle 0744f38866 Demangle support is useful 2016-08-31 00:23:28 +01:00
paboyle 62febd2823 Wilson prop test 2016-08-31 00:23:09 +01:00
Guido Cossu fd5614738d Merge branch 'develop' into feature/hirep 2016-08-30 18:21:36 +01:00
Guido Cossu 005dcc51aa Reset travis 2016-08-30 14:44:10 +01:00
Guido Cossu 655c893f86 Another test on travis 2016-08-30 14:38:42 +01:00
Guido Cossu 843f5783b4 Again travis test separating single and double 2016-08-30 14:29:09 +01:00
Guido Cossu 8986c9fedd Single and double precision travis matrix 2016-08-30 14:25:24 +01:00
Guido Cossu c80a1d427c Retest original version of travis yaml 2016-08-30 14:05:05 +01:00
Guido Cossu ae57032500 Separate single and double builds in travis 2016-08-30 14:00:34 +01:00
Guido Cossu f75468728f Another error on travis 2016-08-30 13:56:23 +01:00
Guido Cossu 5acd856663 Correction of error in travis 2016-08-30 13:49:49 +01:00
Guido Cossu b0d3e4bb2c Separating travis builds 2016-08-30 13:44:07 +01:00
Guido Cossu b512ccbee6 HMC for Adjoint fermions works
Accepts and reproduces known results

Check initial instability of inverters
when starting from hot configurations
2016-08-30 11:31:25 +01:00
paboyle 8c89391c02 FFTW unresolved fixed when no fftw3.h 2016-08-24 16:41:47 +01:00
paboyle bfac5195b8 tidy up 2016-08-24 16:38:36 +01:00
paboyle a782ca3238 Merge branch 'feature/fft-flop-count' into develop 2016-08-24 15:06:17 +01:00
paboyle 744691097f Printing 2016-08-24 15:05:56 +01:00
paboyle ff6da364e8 FFT double and single precision gives good performance now in multithreaded code. 2016-08-24 15:05:00 +01:00
portelli 4d11a6f5f2 first commit for QPX intrinsics 2016-08-23 14:41:44 +01:00
paboyle 88be3b39bb Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2016-08-22 18:29:36 +01:00
paboyle 8a02824e08 Merge branch 'feature/FFT' into develop 2016-08-22 16:25:04 +01:00
paboyle 356e7940fd fftw can be switched off 2016-08-22 16:24:49 +01:00
paboyle 73ce476890 Include fftw headers 2016-08-22 16:24:21 +01:00
paboyle 29c4ef41de Adding a test for libfftw3 2016-08-22 16:21:01 +01:00
paboyle e423a09974 FFT improved and test_FFT passing under MPI 8 processes, 8^4 for LatticeComplexD and LatticeSpinMatrixD 2016-08-18 02:23:21 +01:00
paboyle 17097a93ec FFTW test ran over 4 mpi processes. 2016-08-17 01:33:55 +01:00
paboyle 94a6373a7f Merge branch 'feature/eigen-cleanup' into develop 2016-08-15 23:58:34 +01:00
paboyle 4ab7dbfd57 Instantiate 2016-08-15 23:00:40 +01:00
paboyle 90e70790f3 Feature for z-Mobius prep 2016-08-15 22:31:29 +01:00
Guido Cossu 9c2e8d5e28 Nc=3 just to let all the test pass in Travis 2016-08-09 15:46:57 +01:00
Guido Cossu 147e2025b9 Added unit tests on the representation transformations
Status: Passing all tests
2016-08-08 16:54:22 +01:00
portelli 573b8c6020 build system: -O3 is not overriden by env CXXFLAGS 2016-08-06 01:26:24 +01:00
portelli 15218ec57f more Travis MPI fix 2016-08-06 00:49:14 +01:00
portelli ec68e08dd2 Travis MPI fix 2016-08-06 00:36:05 +01:00
paboyle fc25d2295c fftw download 2016-08-06 00:28:52 +01:00
paboyle 8dc2cfcedb Adding fftw header pulling 2016-08-06 00:28:28 +01:00
portelli 17c843700e missing doxygen.inc added 2016-08-05 15:38:21 +01:00
portelli 7b56f63a5c configure Doxygen output fix 2016-08-05 15:35:29 +01:00
portelli b1cfb4d661 first try at a nicer Doxygen implementation 2016-08-05 15:29:18 +01:00
portelli 836f93780c first try at including MPI tests in Travis 2016-08-05 13:41:52 +01:00
paboyle 5a68715be3 Richards sweep test 2016-08-05 10:51:57 +01:00
paboyle 32bc7a6ab8 MPI back out of change that hangs
AVX2 for clang, gcc needs the -mfma flag.
2016-08-05 10:36:00 +01:00
portelli b65e72e521 Merge pull request #43 from rprollins/bench/output-format
Benchmark_dwf_sweep and Benchmark_zmm output formats
2016-08-04 16:47:01 +01:00
portelli d1aaff65e8 README update 2016-08-04 16:27:02 +01:00
portelli 7ff7c7d90d Merge branch 'develop' into feature/hadrons 2016-08-04 16:22:10 +01:00
portelli 93d29bb699 build system improvements after discussion with Peter 2016-08-04 16:19:59 +01:00
portelli a2e9430abe Hadrons: fix after build system update 2016-08-03 17:14:32 +01:00
portelli 2485ef9c9c Merge branch 'feature/new-build' into feature/hadrons
# Conflicts:
#	Makefile.am
#	scripts/copyright
2016-08-03 16:49:16 +01:00
portelli 3b376ed54e build system: error if MPI not found 2016-08-03 15:23:38 +01:00
portelli d5c1f614ba gitignore update 2016-08-03 15:14:33 +01:00
portelli 2edc24225d untracking ltmain.sh 2016-08-03 15:12:44 +01:00
portelli 629283726b build system: local Grid link flag moved to configure.ac 2016-08-03 15:07:42 +01:00
portelli 6adb66dd08 build system: finer management of GMP/MPFR dependence 2016-08-03 15:06:45 +01:00
portelli 5be92bb708 link fix in README 2016-08-03 12:40:56 +01:00
portelli f4c049ea6d README update 2016-08-03 12:38:54 +01:00
portelli bc092ad30f build system fix 2016-08-03 11:47:38 +01:00
portelli dad642ed1b various build system fixes and improvements 2016-08-03 11:39:20 +01:00
portelli 63ae39abc7 proper propagation of OpenMP flags 2016-08-02 17:41:32 +01:00
portelli 9e5b934d21 improved LAPACK configuration 2016-08-02 17:26:54 +01:00
portelli a7b483d67a Tests in subdirectories are not built by default 2016-08-02 12:14:28 +01:00
portelli bb99ce0680 bootstrap script fix 2016-08-01 09:51:06 +01:00
portelli 83307df1af travis update for new build system 2016-08-01 09:38:40 +01:00
Guido Cossu 49b5c49851 Checked the hermiticity of the op in derivative, ok
Still CG fails to converge
2016-07-31 12:37:33 +01:00
portelli e9f30cab2c first working version for the new build system 2016-07-30 17:53:18 +01:00
Guido Cossu 089f0ab582 Debugged HMC for Creutz relation 2016-07-28 16:44:41 +01:00
Richard Rollins df6c9f55d1 Use common benchmark output format for dwf_sweep and zmm 2016-07-20 17:38:56 +01:00
Guido Cossu b93e18ed50 Modified the Dirac Kernel class to compile with different number of colours
Added the general push_back functionality to accomodate for all defined representations

Compiles, not tested
2016-07-18 16:36:28 +01:00
Guido Cossu 9c77bb69a5 Added all elements for Hirep HMC
TODO: Test and debug
2016-07-18 12:05:23 +01:00
paboyle 27f3ecc833 Merge branch 'feature/bugfix-ck-cj' into develop 2016-07-16 01:59:52 +01:00
paboyle f9e90eeb1f Sign error on the force for 4d fields fixed 2016-07-16 01:52:44 +01:00
paboyle fad5c675eb sign error on the 4d gparity force 2016-07-16 01:51:56 +01:00
paboyle 4908b77d46 Fixed conflicts. PLEASE avoid making wholesale cosmetic only changes, this created
a HUGE amount of difficult to resolve and understand conflicts .

Wholesale formatting, reordering functions etc... in a central file like Tensor_class
or Grid_vector_types while others are also editing without making substantial functionality
changes creates pain.
2016-07-15 20:59:07 +01:00
paboyle f4dd5062d7 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2016-07-15 19:26:06 +01:00
paboyle da34d75841 Merge branch 'feature/Ls-vectorised-actions' into develop 2016-07-15 19:09:47 +01:00
paboyle 980ff18956 Solving the instantiation no compile issue 2016-07-15 17:19:44 +01:00
Guido Cossu 7edf4c6c04 Added HMC utitities for the higher representations
TODO: Inherit types for the pseudofermions, Debugging, testing
2016-07-15 13:39:47 +01:00
paboyle 1a6c7204ac Disable instantiation; Use cache version instead 2016-07-15 00:34:39 +01:00
paboyle 49310fbab3 Done with red black change over 2016-07-15 00:08:43 +01:00
paboyle 6049d5ac47 Update 2016-07-15 00:08:32 +01:00
paboyle 35d0d35238 Updated file list 2016-07-15 00:02:53 +01:00
paboyle c0e878705e Updated file list 2016-07-15 00:02:39 +01:00
paboyle 5c0c8efb9e Updated file list 2016-07-15 00:02:11 +01:00
paboyle dfd714e1ef Multiple implementations for the 5d hopping terms, depending on cache friendly
ops and/or the 5th direction being vectorised
All use 4d redblack.
2016-07-15 00:00:09 +01:00
paboyle 79a8ca1a62 Rewrite for performance. Impl dependent instantiations give
4d linalg impls of the 5d hopping terms (and inverse)
Cache friendly loop orderings of the above
Dense matrix stored and apply to the above

-- Switch to Ls vectorised, and use dense matrix approach for the MooeeInv
   and rotate/shift of the Mooee M5D routines.
2016-07-14 23:58:15 +01:00
paboyle fb45eb2eb2 5d ls vec rename of impl class 2016-07-14 23:57:26 +01:00
paboyle a307274c96 Fermion impl rename for ls vectorised 5d approaches 2016-07-14 23:56:13 +01:00
paboyle 3f2c44a5fe Updating the class to 5d selection based on impl type 2016-07-14 23:55:26 +01:00
paboyle 48fb1cdc11 Update domain 5d vectorised impl type, move the type over to 4d redblack with
the dense OO inverse
2016-07-14 23:54:35 +01:00
paboyle 8a79e93cc2 Rename the 5d domain wall fermion vectorised Ls impl class 2016-07-14 23:53:00 +01:00
paboyle 3493b51879 Modest updates 2016-07-14 23:52:13 +01:00
paboyle de3e79d300 red black for Ls vectorised is 4d red black. Update accordingly now I've made this choice 2016-07-14 23:49:42 +01:00
paboyle dd62a61c5c Added broadcast and rotation of simd vectors 2016-07-14 23:49:00 +01:00
paboyle 8f47d0b5ab Rotation needed for hopping term in fifth dim with Ls vectorised fields 2016-07-14 23:45:36 +01:00
paboyle 42af132dab Fix for chris kellys request to peek poke on checkerboarded fields 2016-07-14 23:44:48 +01:00
paboyle 9db2c6525d updating benchmarks for red black 4d for Ls vectorised code 2016-07-14 23:44:02 +01:00
paboyle adbc7c1188 Adding files for multiple implementations (cache opt) and Ls vectorisation
of the 5D cayley form chiral fermions for the 5d matrix. With Ls entirely
in the vector direction, s-hopping terms involve rotations.

The serial dependence of the LDU inversion for Mobius and 4d even odd
checkerboarding is removed by simply applying Ls^2 operations (vectorised
many ways) as a dense matrix operation.

This should give similar throughput but high flops (non-compulsory flops)
but enable use of the KNL cache friendly kernels throughout the code.

Ls is still constrained to be a multiple of Nsimd, which is as much as 8 for AVX512
with single precision.
2016-07-14 22:59:21 +01:00
Guido Cossu 9dc345e8e8 Debugged smearing and adding HMC functions for hirep 2016-07-13 17:51:18 +01:00
Christopher Kelly 8b9301a74c Merge branch 'feature/bugfixes' into develop 2016-07-13 12:31:34 -04:00
Christopher Kelly 6f47fbb1e2 Disabled parallel for loops in ExtractSlice and InsertSlice due to race conditions. Likely will need to do so for localConvert too. 2016-07-13 10:49:18 -04:00
Guido Cossu a9ae30f868 Added representations definitions for the HMC 2016-07-12 13:36:10 +01:00
Christopher Kelly a3c0fb79b6 Fix to iVector and iMatrix pokeIndex and checkerboard local site indexing. 2016-07-11 17:15:22 -04:00
paboyle 62601bb649 Bug fix 2016-07-08 20:46:29 +01:00
paboyle ef97e32152 Adding persistent communicators 2016-07-08 17:16:08 +01:00
Guido Cossu daea5297ee Wrote the projector in the adjoint representation algebra 2016-07-08 16:14:16 +01:00
Guido Cossu 5028969d4b Added generators for the adjoint representation 2016-07-08 15:40:11 +01:00
paboyle c667d9fdcc Trying to make compile clean on travis; seem to have a make -j 4 problem with fftw 2016-07-07 23:26:39 +01:00
paboyle 7dbb94bab2 Update 2016-07-07 22:51:37 +01:00
paboyle 236dcc820b typo fix 2016-07-07 22:46:11 +01:00
paboyle a42a441a6a Rename the reconfigure script to ./autogen.sh 2016-07-07 22:35:45 +01:00
paboyle a0676beeb1 Open up dependency on Eigen and FFTW 2016-07-07 22:31:07 +01:00
Christopher Kelly c5106d0c03 Bugfix 2016-07-07 16:06:30 -04:00
Guido Cossu fbf96b1bbb ]Merge branch 'develop' into feature/hirep 2016-07-07 14:20:10 +01:00
Guido Cossu 3c49ddfaa4 Merge branch 'temporary-smearing' into develop 2016-07-07 14:04:59 +01:00
Guido Cossu ffb8b3116c Tested smeared RHMC Wilson1p1, accepting 2016-07-07 11:49:36 +01:00
Christopher Kelly 290493e162 Merge branch 'feature/multi_prec' into develop 2016-07-06 19:29:57 -04:00
Christopher Kelly dd8cfff111 Another fix for pedantic compilers 2016-07-06 18:22:15 -04:00
Christopher Kelly 184642adb0 Fix for pedantic compilers 2016-07-06 18:15:15 -04:00
Christopher Kelly 4774a3bcd2 Generalized HotConfiguration and functions it calls to accept gauge fields with precision other than the default. 2016-07-06 18:01:08 -04:00
Christopher Kelly 25fafa9a89 Comment 2016-07-06 16:19:41 -04:00
Christopher Kelly 713520d3d2 Added tester for mixed CG 2016-07-06 16:18:19 -04:00
Christopher Kelly 85ed8175cb Implemented mixed precision CG. Fixed filelist to exclude lib/Old directory and include Config.h. 2016-07-06 15:57:04 -04:00
Christopher Kelly df5c788ef2 Merge branch 'develop' into feature/multi_prec 2016-07-06 14:52:28 -04:00
Christopher Kelly 15f22425c8 Added option to prevent CG from exiting when it fails to converge 2016-07-06 14:50:01 -04:00
Guido Cossu e87182cf98 Debugged the copy constructor of the Lattice class 2016-07-06 15:31:00 +01:00
Guido Cossu e3d5319470 Debugged the real() and imag() functions and added tests to Test_Simd 2016-07-06 14:16:03 +01:00
Guido Cossu ffedeb1c58 Minor modifications 2016-07-06 11:41:27 +01:00
Guido Cossu 3e3b367aa9 Small changes in the Log files 2016-07-05 15:05:28 +01:00
Guido Cossu 3e80947c2b Cleaned up HMC output. Tested smeared HMCs for single precision (OK) 2016-07-05 12:03:54 +01:00
Guido Cossu fdfbf11c6d Merge branch 'develop' into temporary-smearing 2016-07-04 18:45:10 +01:00
Guido Cossu 9cb90f714e Merge remote-tracking branch 'origin/develop' into temporary-smearing 2016-07-04 17:28:40 +01:00
Guido Cossu 6ce174cd60 Testing smearing for RHMC routines 2016-07-04 16:36:49 +01:00
Guido Cossu 17ca5240f7 Testet smeared EOWilsonRatio, accepts 2016-07-04 16:25:15 +01:00
Guido Cossu 2daffdf95d Tested smeared WilsonRatio action, accepts 2016-07-04 16:17:28 +01:00
Guido Cossu 149f826601 Tested smearing for Nf2 WilsonFermionAction, non EO: accepts 2016-07-04 16:09:19 +01:00
Guido Cossu cd8ee27080 Simple change in iGamma for smearing 2016-07-04 16:02:57 +01:00
Guido Cossu 0fa66e8f3c Debugged smearing for EOWilson, accepts 2016-07-04 15:35:37 +01:00
Guido Cossu 8dd099267d Corrected a bug in the Expression Templates (acso and asin were wrong) 2016-07-03 12:28:25 +01:00
Guido Cossu 1a6d65c6a4 Converted set_uw and set_fj to all complex functions 2016-07-03 10:27:43 +01:00
paboyle fc4a043663 Colors and banner clean up 2016-07-02 16:15:38 +01:00
paboyle 61ba50665e Merge branch 'hotfix/v0.5.1' into develop 2016-07-01 16:34:30 +01:00
paboyle 446c768cd3 Merge branch 'hotfix/v0.5.1'
Double precision compile fix
2016-07-01 16:33:59 +01:00
paboyle bfe14000a9 Double compile fix 2016-07-01 16:33:51 +01:00
Guido Cossu 092fa0d8da Debugged set_fj,
to be fixed: BUG in imag()
2016-07-01 16:06:20 +01:00
portelli e0b7004f96 Merge branch 'master' into feature/hadrons 2016-07-01 15:54:34 +01:00
paboyle 1ceff48133 Merge branch 'release/v0.5.0' into develop 2016-06-30 15:15:59 -07:00
paboyle 680645f849 Merge branch 'release/v0.5.0' 2016-06-30 15:15:03 -07:00
paboyle 3fc6e03ad1 Version file 2016-06-30 14:44:09 -07:00
paboyle 2d6614f3a1 Merge branch 'feature/knl-cache-opt' into develop 2016-06-30 14:36:20 -07:00
paboyle 4e041b5103 Merge branch 'feature/knl-cache-opt' of https://github.com/paboyle/Grid into feature/knl-cache-opt 2016-06-30 14:36:08 -07:00
paboyle 712b9a3489 Asm only for avx512 2016-06-30 14:35:02 -07:00
paboyle bdaa5b1767 Updated to have perfect prefetching for the s-vectorised kernel with any cache blocking. 2016-06-30 14:35:02 -07:00
paboyle 8fcefc021a Improved the prefetching when using cache blocking codes 2016-06-30 14:35:02 -07:00
paboyle 1445189361 COntrol the prefetch strategy 2016-06-30 14:35:02 -07:00
paboyle 05c884a62a Prefetch change 2016-06-30 14:35:01 -07:00
paboyle a25bec87d9 Prefetch during save 2016-06-30 14:35:01 -07:00
paboyle 2d8bb4c594 Tweaks 2016-06-30 14:35:01 -07:00
paboyle 51cb2d4328 update file lists 2016-06-30 14:35:01 -07:00
paboyle 6d58cb2a68 Enable reordering of the loops in the assembler for cache friendly.
This gets in the way of L2 prefetching however. Do next next link in stencil
prefetching.
2016-06-30 14:35:01 -07:00
paboyle c8b35d960c Merge branch 'develop' of https://github.com/paboyle/Grid into feature/knl-cache-opt 2016-06-30 14:30:49 -07:00
paboyle 532f41dd61 Asm only for avx512 2016-06-30 14:00:34 -07:00
paboyle 661b0ab45d Updated to have perfect prefetching for the s-vectorised kernel with any cache blocking. 2016-06-30 13:07:42 -07:00
Guido Cossu 565e9329ba Changed the colouring classes 2016-06-30 16:51:03 +01:00
paboyle 4bc08ed995 Improved the prefetching when using cache blocking codes 2016-06-26 12:54:14 -07:00
paboyle b2933a0557 COntrol the prefetch strategy 2016-06-25 12:55:25 -07:00
paboyle db057cc276 Prefetch change 2016-06-25 12:54:50 -07:00
paboyle 22e88eaf54 Prefetch during save 2016-06-25 12:54:14 -07:00
paboyle 09fe3caebd Tweaks 2016-06-25 11:08:05 -07:00
Guido Cossu 5e02392f9c Fixed compilation error for benchmark_dwf
Some parts were assuming floating point precision
2016-06-20 12:30:51 +01:00
paboyle 17a8f51a9b update file lists 2016-06-19 11:59:10 -07:00
paboyle 1b7f88dd00 Enable reordering of the loops in the assembler for cache friendly.
This gets in the way of L2 prefetching however. Do next next link in stencil
prefetching.
2016-06-19 11:45:58 -07:00
portelli d6737e4bd8 Travis fix for Linux clang builds 2016-06-14 19:15:08 +01:00
portelli 75fc295f6e Merge branch 'hadrons' into feature/hadrons 2016-06-14 17:51:15 +01:00
portelli d539888e57 Merge pull request #37 from rprollins/fix/mpi_communicator
Removed write to stdout in constructor for MPI CartesianCommunicator
2016-06-14 17:25:40 +01:00
Richard Rollins 86187d7cca Removed write to stdout in constructor for MPI CartesianCommunicator 2016-06-14 15:34:20 +01:00
paboyle 87418e7df1 Slightly faster prefetching perf. 2016-06-13 02:32:52 -07:00
paboyle 55f65b81b5 Improvements to the assembler interface that let us move chunks of the
site and s loop into the kernels. This will save on function call overhead and
guarantee L2 prefetching strategy is right since OMP can't distribute the
sub-chunks of work.
2016-06-09 01:12:36 -07:00
Azusa Yamaguchi d9408893b3 Prefetching in the normal kernel implementation. 2016-06-08 05:43:48 -07:00
paboyle 05acc22920 placeholder for non temporal loads optimisation 2016-06-07 13:18:21 -07:00
paboyle 8ac021de73 Added a test an fixed it for red black precon Ls innermost vectorised DWF 2016-06-07 13:16:56 -07:00
paboyle e503ef5590 Cleaned up 2016-06-07 00:11:36 +01:00
paboyle a7682b0060 Only instantiate the one routine to avoid duplicate symbol under g++5/MacOS 2016-06-06 23:48:21 +01:00
portelli 0b731b5d80 Hadrons: genetic scheduler parameter fix 2016-06-06 17:46:53 +01:00
portelli 8e2078be71 Hadrons: environment with fully generic object store 2016-06-06 17:45:37 +01:00
paboyle d4c9d71fc8 Merge branch 'master' of https://github.com/paboyle/Grid 2016-06-06 07:06:54 -07:00
paboyle 786ca52c43 Problems remain in the red black preconditioning of the Ls vectorisation 2016-06-06 07:05:51 -07:00
Peter Boyle 048ac04abc Update Benchmark_dwf.cc 2016-06-03 13:44:41 +01:00
Peter Boyle f78d89bcbe Update Lebesgue.cc
kill verbose
2016-06-03 13:33:42 +01:00
paboyle 53d06046b0 Compiling updates for KNL 2016-06-03 03:47:54 -07:00
paboyle 5d3a1a025d timers flag 2016-06-03 03:25:38 -07:00
paboyle 139cc5f1ae Large change with KNL preparation 2016-06-03 03:24:26 -07:00
portelli 1826ed06a3 Merge branch 'master' into hadrons 2016-05-27 16:50:31 +01:00
portelli 1c0e922585 Merge pull request #35 from aportelli/master
empty SIMD fix
2016-05-27 16:49:13 +01:00
portelli 9d5f693cbe empty SIMD fix 2016-05-24 10:56:27 +01:00
Peter Boyle 5c90c3b457 Merge pull request #34 from aportelli/master
Polymorphic lattices & various small updates
2016-05-24 10:50:04 +01:00
portelli 3ff96c502b Merge branch 'master' into hadrons 2016-05-12 19:24:18 +01:00
portelli 91e04056f9 fix of the empty SIMD 2016-05-12 19:24:10 +01:00
portelli 15a0908bfc Merge branch 'master' into hadrons 2016-05-12 18:35:46 +01:00
portelli 3789e3f31c additional fixed in slice functions 2016-05-12 18:35:38 +01:00
portelli bb2125962b Hadrons: finished implementation of 5D quarks 2016-05-12 18:34:42 +01:00
portelli 232fda5fe1 Hadrons: DWF action 2016-05-12 18:34:10 +01:00
portelli 2b31bf61ff Hadrons: message fix 2016-05-12 18:33:49 +01:00
portelli afe5a94745 Hadrons: getModule with upcast 2016-05-12 18:33:36 +01:00
portelli 7ae667c767 Hadrons: module template update 2016-05-12 18:33:08 +01:00
portelli 07f0b69784 Merge branch 'master' into hadrons 2016-05-12 13:02:18 +01:00
portelli 0c66719210 const fix in slice functions 2016-05-12 13:01:35 +01:00
portelli 5c06e89d69 Hadrons: code cleaning 2016-05-12 12:49:49 +01:00
portelli 3d75e0f0d1 Hadrons: MQuark fix 2016-05-12 12:02:15 +01:00
portelli 362f255100 Hadrons: module parameters can now be accessed from outside 2016-05-12 11:59:28 +01:00
paboyle 3a5b5c8bec Save an old tar of tree 2016-05-12 03:20:17 -07:00
paboyle fdbe071213 space added 2016-05-12 02:59:51 -07:00
portelli 3d78ed03ef Merge branch 'master' into hadrons 2016-05-11 15:21:46 +01:00
portelli 4bc21ec7cb thread CL argument fix 2016-05-11 15:21:29 +01:00
portelli e3083b6dfc Merge commit 'ab894186589224d570e0ecef8eea06443194a8ab' 2016-05-11 15:20:41 +01:00
paboyle ab89418658 Precision change going in; useful for mixed precision algorithms for example. 2016-05-11 15:18:47 +01:00
paboyle 28cd99882c Subslicing 2016-05-11 15:06:54 +01:00
portelli 835003b3c5 Hadrons: removed useless gauge global parameters 2016-05-11 15:01:52 +01:00
portelli 328d213c9e Hadrons: FS case sensitivity fix 2016-05-11 14:44:14 +01:00
paboyle aceaee774c ExtractSlice / InsertSlice for lower dimensional lattices where the lattice is not
distributed in the orthogonal direction.
Useful for fermion 4d/5d etc..
2016-05-11 14:12:02 +01:00
portelli 56a8d7a5bc Hadrons: build system fix 2016-05-11 10:27:14 +01:00
portelli 78198d1b04 Hadrons: size fix for module graph with one vertex 2016-05-10 20:13:28 +01:00
portelli 84fa2bdce6 Hadrons: modules moved in their own directory & utility script to add new modules 2016-05-10 20:12:48 +01:00
portelli 29dfe99e7c Hadrons: more scheduler optimizations 2016-05-10 19:19:38 +01:00
portelli d604580e5a Hadrons: all objects/modules mapped to an integer address system to remove string operations from scheduling 2016-05-10 19:07:41 +01:00
portelli 7dfdc9baa0 Hadrons: lattice dynamic cast fix 2016-05-10 10:41:20 +01:00
portelli 9e986654e6 Hadrons: first version of the genetic scheduler 2016-05-09 14:49:06 +01:00
portelli df3fbc477e Hadrons: code cleaning 2016-05-07 13:26:56 -07:00
portelli bb580ae077 Hadrons: significant overhaul of the object registration system, previous version didn't allow dry runs 2016-05-07 13:19:38 -07:00
portelli 2c226753ab Hadrons: comments on graph theory algorithm complexity 2016-05-06 06:35:11 -07:00
portelli ea0cea668e Hadrons: minor code cleaning 2016-05-05 16:13:14 -07:00
Peter Boyle f8f9fd6f22 Merge pull request #33 from aportelli/master
Travis for clang 3.8 + various updates/fixes
2016-05-05 22:57:13 +01:00
portelli 75cd72a421 Hadrons: memory management for fermion matrices, dynamic ownership in garbage collector 2016-05-04 19:11:03 -07:00
portelli cbe52b0659 Hadrons: debug message removed 2016-05-04 12:20:33 -07:00
portelli 3aa6463ede Hadrons: general lattice store & a lot of code cleaning 2016-05-04 12:17:27 -07:00
portelli 312637e5fb Merge branch 'master' into hadrons
# Conflicts:
#	lib/Log.h
2016-05-04 12:16:18 -07:00
portelli 101aa769eb LatticeBase contain the grid pointer and a virtual destructor to allow polymorphic lattice pointers 2016-05-04 12:15:31 -07:00
portelli 0bf99bfde5 log polish 2016-05-04 12:14:49 -07:00
portelli 64bf6fe54e macro to dump NERSC header to a stream 2016-05-04 12:14:38 -07:00
portelli 798d8f7340 Hadrons: Modules: better log messages 2016-05-03 18:17:58 -07:00
portelli ba878724ce Hadrons: sources are now independent modules 2016-05-03 18:17:28 -07:00
portelli b865dd9da8 Hadrons: solver renaming 2016-05-03 18:16:57 -07:00
portelli 8b313a35ac Hadrons: random and NERSC gauge configurations 2016-05-03 17:08:42 -07:00
portelli 02ec23cdad Hadrons: Fermion actions and gauge fields are modules now 2016-05-03 17:08:42 -07:00
portelli 1161d566b9 minor code cleaning 2016-05-02 19:32:11 -07:00
portelli 6e83b6a203 Hadrons: namespace reorganisation, now everything is in Grid::Hadrons, the 'using Grid::operator<<' statement is used to prevent a very nasty compilation error with GCC. 2016-05-02 19:31:21 -07:00
portelli 48fcc34d72 CMeson: first implementation, still need proper output 2016-05-01 18:31:40 -07:00
portelli d08d93c44c Merge branch 'master' into hadrons 2016-05-01 18:30:44 -07:00
portelli c698b16d75 function to generate Chroma-style gamma matrix products 2016-05-01 18:30:35 -07:00
portelli c4c89336fe SliceSum: shutting down warning about non-threaded code for now 2016-05-01 18:29:57 -07:00
portelli fa59789580 ConjugateGradient: cleaner output 2016-05-01 18:29:20 -07:00
portelli 0ab10cdedb Merge branch 'master' into hadrons 2016-05-01 16:08:05 -07:00
portelli 92c2c7d3b5 SchurRedBlackDiagMooeeSolve: fix: guess was not initialised from input 2016-05-01 16:07:55 -07:00
portelli e99ce0875f directly exit when using '--help' option 2016-05-01 16:05:16 -07:00
portelli 22653edf12 Merge branch 'master' into hadrons 2016-05-01 15:55:58 -07:00
portelli cc1d9eb05b Merge commit '999b3a2e26bdd8300d389699dd299e7e5d951af6' 2016-05-01 15:55:22 -07:00
portelli 12d2a95846 Merge branch 'master' into hadrons 2016-05-01 15:05:02 -07:00
portelli 57c027fea2 Travis update 2016-05-01 15:04:52 -07:00
portelli 207dc439a7 Travis debug 2016-05-01 15:00:35 -07:00
portelli 978cf52f6b Merge branch 'master' into hadrons 2016-05-01 14:53:38 -07:00
portelli 77ef0bba48 Travis update 2016-05-01 14:53:28 -07:00
portelli 63b730de80 Hadrons: for the moment, test with unit gauge 2016-05-01 14:50:57 -07:00
portelli 7905c5b8e5 Hadrons: Z2 source code fix 2016-05-01 14:49:45 -07:00
Peter Boyle 999b3a2e26 Merge pull request #32 from aportelli/master
Proposal for Travis update + minor build system fix
2016-05-01 22:05:02 +01:00
portelli 5e4b58ac40 Hadrons: Z2 source expression fix 2016-05-01 12:49:26 -07:00
portelli 468d8dc682 Merge branch 'master' into hadrons 2016-05-01 12:03:24 -07:00
portelli 7ee577eee6 Travis fix 2016-05-01 11:34:20 -07:00
portelli d27ceb75dd Travis fix 2016-05-01 11:32:28 -07:00
portelli 65c2b794b5 Travis update 2016-05-01 11:23:57 -07:00
portelli de82b08f70 Travis fix 2016-05-01 11:18:58 -07:00
portelli 1d03f515b9 Travis status in README 2016-05-01 11:18:47 -07:00
portelli 1c4c287925 Make.inc generation fix 2016-05-01 11:18:25 -07:00
portelli 10bbfdc3b2 Travis update 2016-05-01 10:58:03 -07:00
portelli e15f0b47c1 Travis fix 2016-05-01 10:54:43 -07:00
portelli 0fd0661be3 Travis fix 2016-05-01 10:49:36 -07:00
portelli 6628806142 Travis debug 2016-05-01 10:47:13 -07:00
portelli 17198a4abd Travis update 2016-05-01 10:43:14 -07:00
portelli beb11fd4ef Merge branch 'master' into hadrons 2016-05-01 10:32:24 -07:00
Peter Boyle 465e6f01b7 Update .travis.yml 2016-04-30 18:04:36 +01:00
Peter Boyle 0eec752216 Update .travis.yml 2016-04-30 17:46:44 +01:00
Peter Boyle 122195384e Update .travis.yml 2016-04-30 17:41:23 +01:00
Peter Boyle 2ae1c14c03 Update .travis.yml 2016-04-30 17:34:38 +01:00
Peter Boyle 0ddb7e707b Update .travis.yml 2016-04-30 17:22:22 +01:00
Peter Boyle e2d8f67f63 Update .travis.yml 2016-04-30 17:11:57 +01:00
Peter Boyle 0d99f62027 Update .travis.yml 2016-04-30 17:08:42 +01:00
paboyle c23375cd65 Testing travis CI integration 2016-04-30 06:30:56 -07:00
paboyle a762a0d9ff Attempt at CIT testing 2016-04-30 06:29:41 -07:00
paboyle f7ca6ca889 Bernoulli reenabled -- using integral type for the discrete_distribution, but
then casts in the fill
2016-04-30 03:48:28 -07:00
paboyle ec4a9b7f6c The Bernoulli gives a no compile due to a static assertion that the type be integral
in 4.7 random.h

Probably need to go through an Integer type, and then conver to real after the random draw
to make clean.
2016-04-30 03:42:24 -07:00
paboyle 5341977948 IMCI fixes. Thought I had committed these. The "real" disambiguation
between std::real and Grid::real shouldn't have been necessary and I don't
know why only the icpc v16.0 on babbage hits it.
May need a longer term rename of Grid::real or some careful EnableIf work.
2016-04-30 03:34:16 -07:00
Peter Boyle f0aed4672e Merge pull request #31 from aportelli/master
Various fixes & updates
2016-04-30 11:31:00 +01:00
portelli d7662b5175 Merge branch 'master' into hadrons 2016-04-30 00:24:59 -07:00
portelli 344d251fc4 re-fix of test Make.inc 2016-04-30 00:24:50 -07:00
portelli dc5f32e5f0 Merge branch 'master' into hadrons 2016-04-30 00:18:31 -07:00
portelli f6c53e5039 Merge commit '1e554350acae0e67fa7177ed0db9d4f684a54af2' 2016-04-30 00:17:52 -07:00
portelli 1869d28429 Hadrons: first prototype with working inversions 2016-04-30 00:17:04 -07:00
portelli 405b175665 Merge branch 'master' into hadrons 2016-04-30 00:16:06 -07:00
portelli ba09cbae3e function to read std::vector from a string (blank separated values) 2016-04-30 00:15:44 -07:00
portelli 6aa000176f Fermion <-> Propagator functions 2016-04-30 00:14:33 -07:00
portelli 23b6172c31 Bernoulli RNG 2016-04-30 00:14:13 -07:00
portelli ca5eebe10c gitignore update 2016-04-30 00:13:53 -07:00
portelli 3f128443ab OS X icpc fix 2016-04-30 00:13:33 -07:00
paboyle 1e554350ac The threaded coms didn't agree with GCC. Suprised, and looks like GCC bug. 2016-04-29 16:49:18 -07:00
paboyle c79ea0dcef Fixingn IMCI 2016-04-22 21:52:54 -07:00
paboyle e3f141f82f Fixed SSE compile with typecasts 2016-04-22 10:30:30 -07:00
paboyle a6dfa2386b GCC choked on intrinsics calls that ICPC did not 2016-04-22 06:33:41 -07:00
Peter Boyle d9b5e66877 Update Make.inc 2016-04-20 18:25:48 +01:00
paboyle 8fd8bc25e9 simd 5th dim with rotation 2016-04-19 15:39:00 -07:00
paboyle ba427abde9 simd 5d 2016-04-19 15:38:39 -07:00
paboyle 9b6ab6db16 simd in 5th dimension support 2016-04-19 15:38:01 -07:00
paboyle 806a83d38b simd in fifth dim support for dwf 2016-04-19 15:36:19 -07:00
paboyle 7223753355 Rotate in a direction > 2 for simd_layout 2016-04-19 15:35:15 -07:00
paboyle b27bac4669 Updates for simd in one dir 2016-04-19 15:34:10 -07:00
paboyle c8a93d6a93 Cartesian changes to allow all simd in one direction 2016-04-19 15:18:12 -07:00
paboyle 04072a5e1f Rotate is a temporary hack. Would like to merge ALL
permutes as rotates of length 2, and make any rotate active
over any subset of lane bits. This is hard, and requires general
permute; current intrinsics mean this is only really possible for specific
case by case encodings as presently performed. Intel could produce a general
permute.. would help. IBM did it in VMX.
2016-04-19 15:15:34 -07:00
paboyle 574ea4f843 const safety 2016-04-19 15:15:11 -07:00
paboyle f2ae9682ff Remove some timing hacks 2016-04-19 15:14:32 -07:00
paboyle 587f80cd93 Updated to compile and pass under intel SDE 2016-04-19 15:13:54 -07:00
paboyle 528eb773ad Merged.
Merge branch 'master' of https://github.com/paboyle/Grid
2016-04-19 22:24:34 +01:00
paboyle e5657510b0 Rotate support for Ls simd-ized 2016-04-19 22:24:18 +01:00
paboyle f473919526 Rotate support 2016-04-19 22:23:51 +01:00
Peter Boyle 8f1b0afc2a Merge pull request #28 from aportelli/master
Build system fix
2016-04-16 09:55:45 +01:00
Peter Boyle 1494b0f397 Merge pull request #29 from giltirn/master
Grid_empty implementation and Lanzcos checkerboard fix
2016-04-16 09:55:24 +01:00
portelli e33b0f6ff7 cleaner output 2016-04-16 08:41:53 +01:00
portelli 9ee54e0db7 debug output removed 2016-04-16 08:41:28 +01:00
portelli feae35d92c Hadrons: pass strings by value 2016-04-16 08:41:12 +01:00
Christopher Kelly ab56ccdd25 -Complete and working implementation of Grid_empty 2016-04-15 13:17:42 -04:00
portelli 3834d81181 Merge branch 'master' into hadrons 2016-04-14 15:15:45 +01:00
portelli cf2f69812b build system fix 2016-04-14 15:13:55 +01:00
neo 339be37dba Debugging smeared HMC 2016-04-13 17:00:14 +09:00
paboyle c323425496 Small change 2016-04-11 10:38:43 +01:00
neo a87b744621 HMC runs but does not accept with smearing on 2016-04-07 16:45:11 +09:00
Christopher Kelly a646260e82 Merge remote-tracking branch 'origin/master' into ckelly-dec12-2015 2016-04-06 13:57:28 -04:00
Christopher Kelly af9c8d1372 -Checkerboard fixes for Lanczos 2016-04-06 13:50:56 -04:00
paboyle 650e02b344 Smaller vols too 2016-04-06 06:52:09 -07:00
paboyle a524ca2a4b New benchmark update 2016-04-06 03:35:56 -07:00
paboyle 23a7176b71 Loop over volumes 2016-04-06 03:22:11 -07:00
paboyle b1192a8908 Benchmark_zmm added 2016-04-06 03:00:07 -07:00
paboyle e8dddb1596 Adding extra benchmark 2016-04-06 10:32:54 +01:00
coppolachan 97d0d56bcb Debugging Smearing routines (set_fj) 2016-04-06 17:58:43 +09:00
paboyle c7ba47bdc7 Merge branch 'master' of https://github.com/paboyle/Grid 2016-04-06 02:56:28 +01:00
coppolachan 7c7ea35ffb Putting the Traceless Antihermitian part outside the deriv in pseudofermion actions 2016-04-05 16:28:09 +09:00
coppolachan 4b1cf580e0 Debugging the Smearing routines 2016-04-05 16:19:30 +09:00
paboyle e67fc2be18 Adding a trial for openmp overhead minimisation 2016-03-31 16:00:37 +01:00
paboyle f473ef7591 Fixing the compile 2016-03-31 07:47:42 -07:00
paboyle f7b1060aed Use headers to clear macros and sub precision 2016-03-31 14:52:37 +01:00
paboyle 8052556275 Cleaning up the single/double kernel implementation switch 2016-03-31 14:51:32 +01:00
paboyle 60d965f79e AVX512 improvements; sigfpe trapping too 2016-03-30 08:42:34 +01:00
paboyle 83b15bfcdd Better Avx512 assembly sequence for SU3 using fmaddsub to get the imag imag sign 2016-03-30 08:39:39 +01:00
paboyle 1ecbf9794d Merge branch 'master' of https://github.com/paboyle/Grid 2016-03-30 08:37:55 +01:00
paboyle 2ded354403 configure 2016-03-30 00:17:43 -07:00
paboyle 340428a1fe Eigen fixes and HDCR work 2016-03-30 00:16:02 -07:00
paboyle c77b7ee897 AddSub based alternate SU3 routine 2016-03-28 17:55:22 -06:00
paboyle b6c3bc574b Moving to a more coherent organisation of the inline assembly and arch dependencies. 2016-03-28 16:24:37 +01:00
paboyle 1e355a51e1 Interface change 2016-03-27 23:46:55 -07:00
paboyle ad80f61fba AVX512 shaken out 2016-03-28 00:38:05 -06:00
paboyle 61469252fe AVX512 shaken out under SDE 2016-03-28 00:37:12 -06:00
paboyle 02198ac5b5 Tolerance and more coverage 2016-03-28 00:36:17 -06:00
paboyle 21abaf7e91 Gamma sign change 2016-03-28 00:35:45 -06:00
paboyle 165bffc2e7 Avx512 changes for assembler kernels 2016-03-26 22:25:45 -06:00
paboyle 644fd6d32e Build avx512 clean 2016-03-25 09:35:33 -07:00
azusa f54e0ec9bd Try lanczos to set up hdcr subspace 2016-03-17 10:36:16 +00:00
paboyle a155a362da Update from HDCR tuning 2016-03-16 02:31:04 -07:00
paboyle 60d4564151 ICC no compile fix 2016-03-16 02:30:40 -07:00
paboyle d4e57f4bc6 IO Bandwidth reporting 2016-03-16 02:30:16 -07:00
paboyle 3920b2c0ab HDCR updates 2016-03-16 02:29:58 -07:00
paboyle 2733c4b93c hdcr updates 2016-03-16 02:29:37 -07:00
paboyle e17c773a0b Longer runs for vtune 2016-03-16 02:29:13 -07:00
paboyle 36a800f26c Microsecond granularity support 2016-03-16 02:28:51 -07:00
paboyle b75da563d9 Resurrect timestamp. Should make optional 2016-03-16 02:28:17 -07:00
paboyle f9faec38be Printing fix under comms none 2016-03-16 02:27:53 -07:00
paboyle d6b64f47d9 Uint64 sum for IO rates 2016-03-16 02:27:22 -07:00
paboyle a359f7a9f5 Merge branch 'master' of https://github.com/paboyle/Grid 2016-03-11 16:07:07 -08:00
paboyle b606deb3f0 Uint64 gsum 2016-03-11 16:06:54 -08:00
portelli 179e82b5ca Merge branch 'master' into hadrons 2016-03-08 12:55:33 +00:00
paboyle 090e7aa930 Merge remote-tracking branch 'origin/chulwoo-dec12-2015'
Merge Chulwoo's Lanczos related improvements.
Merge Nd!=4 fixes for pure gauge HMC from Evan.
2016-03-08 09:55:14 +00:00
paboyle 2dce9c3cff HDCR running on 16^3 with 2x-3x speed up. 2016-03-08 01:01:50 -08:00
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
paboyle e55c35734b Fix a nocompile 2016-03-03 20:33:28 +00:00
portelli f2c59c8730 Merge branch 'master' into hadrons 2016-03-02 17:15:05 +00:00
paboyle 325e745daa Merge branch 'master' of https://github.com/paboyle/Grid 2016-03-02 07:04:03 -08:00
paboyle 61413565d0 Back off the inlined spin proj as not working 2016-03-02 07:03:09 -08:00
paboyle ff129d9ad9 Redundant operations removed 2016-03-02 07:02:37 -08:00
paboyle 03fcd3b33a Back out of the colour 2016-03-02 07:01:15 -08:00
paboyle 68b02da483 Backing off the colour 2016-03-02 07:00:43 -08:00
paboyle e051119769 extern "C" should have been in the header file, but Cray is apparently not C++ friendly. 2016-03-02 07:00:00 -08:00
portelli fdd0848593 Hadrons: license text update 2016-02-25 12:07:21 +00:00
portelli 92f666905f copyright script update to 80 column text 2016-02-25 12:06:24 +00:00
portelli 5980fa8640 test implementation of DWF inverter 2016-02-25 11:56:16 +00:00
coppolachan 2d8bb356e3 Smearing routines compile (still untested) 2016-02-25 02:43:59 +09:00
Guido Cossu f3661aac4f Merge pull request #24 from aportelli/master
BG/Q compatibility + XML fixes
2016-02-23 18:22:43 +00:00
coppolachan a7251f28c7 Stout smearing compiles (untested) 2016-02-24 03:16:50 +09:00
portelli 1eb169ac0b compatibility fix 2016-02-23 16:36:50 +00:00
portelli a0d8eb2c24 minor code cleaning 2016-02-23 16:33:00 +00:00
portelli 1e10b4571d fix after Grid update 2016-02-23 16:21:45 +00:00
portelli 02f8b84ac9 Merge branch 'master' into hadrons 2016-02-23 16:13:39 +00:00
portelli 5674c3e241 cycle count fix for x86 2016-02-23 16:08:18 +00:00
portelli 62c4ba0d1e gitignore update 2016-02-23 16:01:29 +00:00
Antonin Portelli 497e7e4c53 BG/Q compatibility fix 2016-02-23 15:57:38 +00:00
portelli cfd368596d Merge branch 'master' into hadrons 2016-02-22 15:25:02 +00:00
portelli 19526d09c2 Merge commit '6aeaf6f568a391e34b913f08be6a11beb28d8842' 2016-02-22 15:23:26 +00:00
Peter Boyle 6aeaf6f568 Parallel IO worked on. I'm puzzled because I already thought I shook this out on MacOS + OpenMPI and then
turned up problems on the BlueWaters Cray.

Gets 75MB/s from home filesystem on parallel configuration read. Need to make the RNG IO parallel,
and also to look at aggregating bigger writes for the parallel write.
Not sure what the home filesystem is.
2016-02-21 08:03:21 -06:00
Peter Boyle 40f2db9bc0 Disable metropolis step until 10 traj covered. Should move to exposing these
in XML input and start having "applications" directory.
2016-02-21 08:01:44 -06:00
Peter Boyle 2cfa20cc4e Improving the logging, got fed up with color so optionally disable.
Backtrace macro used everwhere
2016-02-21 07:58:53 -06:00
Peter Boyle a5f683d124 Machine generated 2016-02-21 07:57:42 -06:00
Peter Boyle 02a57ffa6f machine generated. Should remove from git .. but annoys downloaders 2016-02-21 07:57:02 -06:00
Jung 9f0d9ade68 Added configure flag for LAPACK. Tested ImplicitlyRestartedLanczos::calc()
Checking in before cleaning up
2016-02-20 02:50:32 -05:00
neo c1b1b89d17 More on smearing routines, writing APEsmear (dev) 2016-02-19 17:15:27 +09:00
neo 771235017d Adding smearing routines (development) 2016-02-19 15:30:41 +09:00
paboyle 3425751cb8 Missing return value 2016-02-19 01:06:03 +00:00
paboyle db5e8050a8 Attempts at some optimisation 2016-02-18 22:33:58 +00:00
paboyle a3fbabf404 Bug fix 2016-02-18 18:08:24 +00:00
Peter Boyle 22422a84d9 Small problem in compressor fix 2016-02-17 19:03:09 -06:00
Peter Boyle b6f6da923e Change to the compressor & stencil interface a little. 2016-02-17 18:27:11 -06:00
Peter Boyle c9fadf97a5 Simplify the compressor interface again. 2016-02-17 18:16:45 -06:00
Peter Boyle c650bb3f3d Very small merge speed up. 2016-02-16 18:41:53 -06:00
Peter Boyle 81395e85d1 Regressing to not overlap comms and compute becasue bluewaters, edison, and cori are so rubbish at it. 2016-02-16 13:56:44 -06:00
Peter Boyle 340a29b735 More careful sequencing of comms 2016-02-15 16:04:59 -06:00
Peter Boyle f7be108e35 100 iters faster 2016-02-15 16:03:04 -06:00
Peter Boyle a0fc47c6f9 Cheaper implementation 2016-02-15 16:02:36 -06:00
Peter Boyle 42a9ac71d2 BUg fix, wait till complete. 2016-02-14 16:21:21 -06:00
Peter Boyle 41c2b09184 Shmem comms [NO MPI] target added. The dwf test runs and passes.
Not really shaken out to my satisfaction though as I want more tests done, so don't declare as working.
But committing my current while I try a few experimentals.
2016-02-14 14:24:38 -06:00
paboyle 294dbf1bf0 Compile on OpenMPI shmem 2016-02-11 23:45:51 +00:00
Peter Boyle 9548c8b91f Had to break this out for universal access through the code base. 2016-02-11 07:40:09 -06:00
Peter Boyle 7f927a541c Shmem related fixes for shmem compile 2016-02-11 07:37:39 -06:00
paboyle e2f73e3ead Updates for shmem 2016-02-10 16:50:32 -08:00
neo 6371676a75 Correcting some compilation errors for clang-sse 2016-02-10 11:37:03 +09:00
Jung bd84c23298 definitions reconciled. 2016-01-25 16:30:59 -05:00
Jung 7aa8d5e8af Faiing to compile, comparing with master 2016-01-25 16:03:02 -05:00
Jung 6012b0ec23 Checking in changes before changing to chulwoo-dec12-2015 2016-01-25 09:40:58 -05: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
portelli ae682674e0 Hadrons: first full implementation of the scheduler 2016-01-13 20:23:51 -08:00
portelli 17c43f49ac Hadrons: application class now take parameter file name as argument 2016-01-13 20:22:37 -08:00
portelli 30146e977c gitignore update 2016-01-13 20:20:43 -08: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 fc6ad65751 Pushed the overlap comms tweaks 2016-01-11 06:34:22 -08:00
paboyle dafc74020c Overlap comms compute improvements in hand op kernels, and better timing from Edison and Cori 2016-01-10 16:54:27 -08:00
paboyle d19321dfde Overlap comms compute changes 2016-01-10 19:20:16 +00:00
Jung 5924e5a562 Merge branch 'master' of https://github.com/paboyle/Grid into scidac1_2
Conflicts:
	configure
	lib/qcd/action/Actions.h
	lib/qcd/action/fermion/WilsonKernels.h
2016-01-06 03:44:57 -05:00
paboyle c99d748da6 Timing reports in benchmarks now reflect the asynch comms thread statistics 2016-01-04 14:42:16 +00:00
paboyle 02452afd36 Optional overlap of comms with compute 2016-01-04 14:18:40 +00:00
paboyle 331768dcff Added overlap comms compute mode 2016-01-03 01:38:11 +00:00
paboyle 4aac345bea Updated logging to colour code according to message type 2016-01-02 17:21:14 +00:00
paboyle 15c0022042 GPLv2 clarified, and copyright message and banner in Init function.
Color is just showing off....
2016-01-02 15:22:30 +00:00
paboyle aae8bf31a7 Global edit adding copyright and license info to every source file. 2016-01-02 14:51:32 +00:00
paboyle 1e68b1c1bd Create a benign default for gparity twists 2016-01-02 14:06:53 +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
paboyle 841a37f941 Fix to WilsonCompressor that fixes a bug in comms phase due to the sign change on gamma
matrix in hopping term.
Add logging of time spent in CG.
2015-12-29 23:49:41 +00:00
Azusa Yamaguchi e6cad3821c Logging improvement 2015-12-29 19:51:18 +00:00
Azusa Yamaguchi 98de1cbb6a Optimised version of rectangle term staples.
~3.4x faster than the naive.
2015-12-29 19:22:59 +00:00
Azusa Yamaguchi f7d61b8b81 Plaq plus rectangle and Iwasaki, Symanzik DBW2.
http://arxiv.org/pdf/hep-lat/0610075.pdf plaq and rect regress plausibly over 100 trajectories
and under HMC with average plaq and rectangle coming out ok.
2015-12-28 16:39:26 +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
portelli 54eacec261 Hadrons: namespace std not used anymore in compiled sources 2015-12-23 14:30:33 +00:00
portelli 76c78f04e2 Hadrons: first complete prototype for run loop 2015-12-23 14:21:35 +00:00
portelli 379580cd89 Merge branch 'master' into hadrons 2015-12-23 14:20:22 +00:00
portelli 1e0be161e5 MacroMagic: inline functions to avoid double symbol issues 2015-12-23 14:20:05 +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 0abfbcc8eb Naming of files improvement. 2015-12-21 15:37:26 +00:00
paboyle 1b94253ba4 Logging improvement 2015-12-21 15:36:28 +00:00
paboyle 36e6f9ac7b Bug fix. Guess not initialised in refresh step; didn't hit before due to luck in not having a vector
created with NAN data.
2015-12-21 15:34:35 +00:00
paboyle 2f41691c11 Bug fix. Guess was not zeroed prior to CG call. Was earlier accidentally benign just due to luck. 2015-12-21 15:33:36 +00:00
paboyle 09bfe52840 Remove extraneous variable 2015-12-21 15:30:28 +00:00
paboyle 8c9010d0f4 Isnan check on guess and convergence assert on result 2015-12-21 15:29:46 +00:00
paboyle 42c583265c Remove timestamp 2015-12-21 15:28:03 +00:00
paboyle 539d698492 Prototypes for CML routines 2015-12-21 15:26:42 +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 6f0198d4d9 Merge branch 'master' of https://github.com/paboyle/Grid 2015-12-17 22:34:54 +00:00
paboyle 67ccb043f1 Added TM fermions for DSDR etc.. 2015-12-17 22:34:28 +00:00
Azusa Yamaguchi 24a5a81c53 SSE compile fix 2015-12-16 09:09:37 +00:00
Jung eb1759d7ea Added Gparity instantiation to no HANDOPT case
deleted configure (as intended?)
2015-12-16 00:04:09 -05: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
Jung bc34b7e808 Merge branch 'master' of https://github.com/paboyle/Grid into scidac1_2
Conflicts:
	lib/qcd/action/fermion/WilsonKernels.h
	tests/Make.inc
2015-12-15 11:11:59 -05:00
Jung 284453c5e9 Added gparity mobius defs, added params to ScaledShamir
checking in before puling master
2015-12-14 12:15:06 -05:00
paboyle af855cc129 Updating to fix peek poke to checkerboarded arrays since Chulwoo needs this. 2015-12-12 07:11:46 +00:00
paboyle a5314eddbb Update todo list 2015-12-10 23:34:03 +00:00
paboyle 78ca15fdd8 Merge branch 'aportelli-master' 2015-12-10 23:15:16 +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
portelli 14a80733f9 Merge branch 'master' into hadrons 2015-12-08 13:57:53 +00:00
portelli 200de272ed IO: serialisable enums 2015-12-08 13:54:00 +00:00
portelli d68a72e28b IO: code cleaning and string binary IO fix 2015-12-08 13:53:33 +00:00
portelli ab45f029f4 ignore Config.h.in 2015-12-08 13:52:44 +00:00
Jung 77054bd61c Added back Test_gparity 2015-12-08 01:41:32 -05:00
portelli 17f9268a55 XmlIO: minor code cleaning 2015-12-07 18:30:00 +00:00
portelli 78f0c2595d autotool file accidentally committed 2015-12-07 18:28:06 +00:00
portelli d4db009a58 Hadrons: starting scheduler implementation 2015-12-07 18:26:38 +00:00
portelli 20ce7e0270 Hadrons: algorithm to determine all possible topological ordering 2015-12-07 15:46:36 +00:00
Jung f2b4edc090 Fixes for Gparity comparison with CPS (Instantiation, Gamma matrix convention) 2015-12-07 02:04:57 -05:00
Jung fb81acca3c Merge branch 'master' of https://github.com/paboyle/Grid 2015-12-03 12:11:10 -05:00
portelli bb195607ab Hadrons: fix in topological sort algorithm name 2015-12-02 19:40:11 +00:00
portelli 6f090e22c0 Hadrons: graph topological sort 2015-12-02 19:33:34 +00:00
portelli 339e983172 Merge branch 'master' into hadrons 2015-12-02 14:38:04 +00:00
portelli 4a7f3d1b7b Merge branch 'master' into hadrons
# Conflicts:
#	configure
2015-12-02 10:57:51 +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
paboyle 6b97b271ae Integer divide useful 2015-11-28 17:01:20 -08:00
paboyle fa01ae5980 integer divide 2015-11-28 17:00:34 -08:00
paboyle 113131b01c THis failed for some reason. Suspect Antonin has made more progress. 2015-11-28 16:59:59 -08:00
paboyle b2c02a6106 Runs fastst on cori 2015-11-28 16:58:16 -08:00
paboyle 02d730513a Divide function 2015-11-28 16:54:43 -08:00
paboyle d875c2bd39 More verbose useful 2015-11-28 16:54:19 -08:00
paboyle cc32ba615a Verbose changes 2015-11-28 16:53:54 -08:00
paboyle 6684739452 Better to drop KMP_AFFINITY override 2015-11-28 16:52:44 -08:00
Peter Boyle bc4b252883 Merge branch 'master' of https://github.com/paboyle/Grid 2015-11-29 00:33:01 +00:00
Peter Boyle 11cf0f08f3 This file is not yet debugged. 2015-11-29 00:32:45 +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 ef84d54033 precision set 2015-11-29 00:30:44 +00:00
Peter Boyle 41e8038c56 Makefile update 2015-11-29 00:30:19 +00:00
Peter Boyle 8a33846095 No compile fix 2015-11-29 00:29:58 +00:00
Peter Boyle 54f04ee5c9 Perf event interface was linux specfic and use ifdef to protect 2015-11-29 00:24:48 +00:00
Peter Boyle 825875fd48 compile fixes 2015-11-29 00:24:25 +00:00
Peter Boyle f8290bfd58 Compile fixes 2015-11-29 00:24:04 +00:00
Azusa Yamaguchi 967be91692 update merge 2015-11-26 09:51:41 +00:00
azusayamaguchi d43034d3ac Merge pull request #21 from aportelli/master
Overhaul of I/O interface
2015-11-19 11:45:50 +00:00
portelli 06f8ecea04 Merge commit '899ca41cb8c8f47771bfd37cd895cbc2184e5560' 2015-11-16 18:16:25 +00:00
portelli af19118113 new I/O interface 2015-11-16 18:14:37 +00:00
paboyle e9ff25b06b Small threading change makes a difference on Cori. 2015-11-07 00:07:05 -08:00
paboyle 05a7029600 Stencil change 2015-11-07 00:06:31 -08:00
paboyle b04b8914fd EXECINFO change 2015-11-07 00:05:57 -08:00
paboyle 7522e3f0dd Stencil interface change fix no compile 2015-11-07 00:05:10 -08:00
paboyle 1cc0d7b811 Bigger ncall as timing loops got small on cori 2015-11-07 00:04:40 -08:00
paboyle 899ca41cb8 Merge branch 'master' of github.com:paboyle/Grid
Conflicts:
	lib/qcd/action/fermion/WilsonFermion5D.cc
2015-11-06 03:50:04 -08:00
paboyle d29b4c1dee Assembler files 2015-11-06 03:48:48 -08:00
paboyle a2ff068e29 Asm and threading for many core 2015-11-06 03:47:14 -08:00
paboyle b362f8d27b Threading for many core 2015-11-06 03:46:41 -08:00
paboyle 64770d9052 Threading changes for many core and asm calls 2015-11-06 03:46:21 -08:00
paboyle 17af18dcab Changes for AVX512 assembler 2015-11-06 03:45:51 -08:00
Peter Boyle 28022755ae Stencil class name global change to StencilImpl typedef 2015-11-06 05:30:17 -06:00
Peter Boyle 98d8ba6d14 Remove autogen files from CVS 2015-11-06 05:29:07 -06:00
Peter Boyle 27813cf518 More timing detail reported 2015-11-06 05:27:13 -06:00
Peter Boyle 955b482aaf Partial optimisation of the extraction/merger of simd vecs. 2015-11-06 05:26:20 -06:00
Peter Boyle f9b2fce93b Changing whole stencil class to be template and not just single functions 2015-11-06 05:25:10 -06:00
Peter Boyle 473fa28a6c Partial optimisation; comms in x-dir for red black dslash will be slow as the checker skipping block strided
loops are non threadable. Will need to write a kernel for these instead and drive them with a lookup table
to make a look sufficiently simple to thread.
2015-11-06 05:23:23 -06:00
Peter Boyle 5d854c869c Stencil interface changes 2015-11-06 05:22:33 -06:00
Peter Boyle 880ff88362 Comms optimisation 2015-11-06 05:22:18 -06:00
Peter Boyle f85b9ddd97 Remove nonfunctioning lanczos 2015-11-06 05:21:21 -06:00
Azusa Yamaguchi 4690acc3c8 Don't know why peter committed these as they didn't compile 2015-11-06 10:31:48 +00:00
Azusa Yamaguchi 3281745fde Exec info and linux check to stop non-portable code breaking 2015-11-06 10:31:24 +00:00
Azusa Yamaguchi c2d96644a0 EXEC INFO check 2015-11-06 10:31:05 +00:00
paboyle 1159de165c Asm option for AVX512 2015-11-05 22:04:51 -08:00
portelli c4e2202550 First graph class implementation and test 2015-11-05 14:28:14 +00: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 6be9716e6f New file 2015-11-04 03:26:28 -08:00
paboyle 32762346ad Better run time on KNC 2015-11-04 03:25:34 -08:00
paboyle 4a41c885ed Use Linux kernel interface to hardware performance counters. Dead useful. 2015-11-04 03:24:19 -08:00
paboyle 0f48658a27 Update minor 2015-11-04 03:23:46 -08:00
paboyle 757b31ed42 Threading for KNC mods. 2015-11-04 03:22:14 -08:00
paboyle 5aafdd7e1a Inline asm for KNL, KNC, Skylake Xeon 2015-11-04 03:21:15 -08:00
paboyle ac7d1f26ad Either blocking or lebesgue curve 2015-11-04 03:19:16 -08:00
paboyle 1a8bf938b3 Use either sub-blocking or lebesgue 2015-11-04 03:18:51 -08:00
paboyle 63a2993827 Exec info an cache blocking 2015-11-04 03:16:56 -08:00
paboyle 4e65ad21ac Adding a routine for AVX512 / IMCI with explicit assembly implementations 2015-11-04 03:15:08 -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 3b7576ad53 Switch off for now 2015-11-04 05:13:29 -06:00
paboyle 9b5d31ffc1 mac , mult routines
Lines# with '#' will be ignored, and an empty message aborts the commit.
2015-11-04 03:10:34 -08:00
paboyle a38762159c Inline assembly hooks for AVX 512. Better way in some ways than BAGEL to generate assembly.
Updated Grid_avx512.h
2015-11-04 03:09:06 -08:00
Peter Boyle ffc5dab17f AMD FMA4 support added for Interlagos/BlueWaters 2015-11-04 04:29:58 -06:00
Peter Boyle 96608c70d1 chrono causing some problems on Cray systems. Suspend use for now 2015-11-04 04:28:31 -06:00
Peter Boyle d35d63b171 Algorithm in 2015-11-04 04:27:44 -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
Peter Boyle 24044dbc56 Debugged a problem with checkerboarded cshift in the checker dimension which arose
only when mpi spread out in the checker dimension. Added a test that trapped and helped debug this
2015-11-04 10:00:55 +00:00
Peter Boyle abb23df83f formatting only 2015-11-04 10:00:27 +00:00
Peter Boyle 12c5ec813c Useful debug messages (commented out) are included for preservation in case I need to revisit this 2015-11-04 09:59:27 +00:00
Peter Boyle 1271508ca2 Bug fix for spread out in x (EO) direction.
This is really annoying -- it is very hard to thread the loops with the index
recursion on buffer offset in the red-black case. Must think of a good threading
solution here.
2015-11-04 09:57:57 +00:00
Peter Boyle ec5af35166 EO bug fix when spread out in x-direction 2015-11-04 09:56:58 +00:00
Peter Boyle b3d70a3bb2 Ncall change 2015-11-04 09:55:21 +00:00
Peter Boyle c26220e9ab EO benchmark as well as non-eo 2015-11-04 09:54:48 +00:00
Peter Boyle 0f59356e86 Problem in comms fixed 2015-11-02 00:00:15 +00:00
portelli 538b16610b First commit for measurement software 'Hadrons' 2015-10-27 17:33:18 +00:00
portelli 8709117aea Log: generalised Logger class to allow separate logs in Grid-based applications 2015-10-27 17:31:13 +00:00
portelli 1b22ce5720 tests Make.inc fix 2015-10-27 10:47:52 +00:00
portelli e6b9aa9076 Config.h removed form repository 2015-10-27 10:47:07 +00:00
portelli d9f2e2e06a Merge pull request #2 from paboyle/master
Update from Peter
2015-10-19 14:52:52 +01:00
Peter Boyle 41299da406 files added 2015-10-09 01:01:46 +02:00
Peter Boyle 8889af45ca FMA4 added 2015-10-09 01:00:53 +02:00
Peter Boyle d4289a33b8 AMD FMA4 addition 2015-10-09 00:44:20 +02:00
Peter Boyle 83afb2e26a Poly support for lanczos 2015-10-09 00:43:21 +02:00
Peter Boyle 3726fe7481 Bigger vec length 2015-10-09 00:42:54 +02:00
Peter Boyle 6d06bd9493 Minor change in commented out code 2015-10-09 00:42:21 +02:00
Peter Boyle 6ee23f409e Lanczos addition 2015-10-09 00:41:00 +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
Peter Boyle 814c79f38d SIMD improvements for mac and madd use in complex for avx, sse 2015-10-09 00:38:52 +02:00
paboyle 1878bf97d0 Babbage fix 2015-09-30 16:04:01 -07:00
paboyle 3a478e5f2a No compile babbage fix 2015-09-30 16:03:05 -07:00
paboyle a660ce716b No compile babbage fix 2015-09-30 16:02:44 -07:00
paboyle f4b6d1dfea NGO stores reenabled 2015-09-30 16:02:14 -07:00
paboyle 23813ac798 No compile on babbage fix 2015-09-30 16:01:28 -07:00
paboyle af89c40462 Better timing tweaks to give sensible results on 24 threads on Edison dual ivybridge nodes. 2015-09-28 16:09:04 -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 64d64d1ab6 Updating to modify non-inlining permute routines and hopefully get better reg use and
enhance performance.
2015-09-25 08:55:04 -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 638d6675ee Tested rms dH is ~ dt^4 numerically, so believe the ForceGradient is correct now.
Paranoia makes me want to diddle with the FG step to ensure dt^2 reappears.
2015-08-31 16:33:20 +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 eed889ea05 Update on todo list 2015-08-30 12:23:08 +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 612957f057 pull in original license. 2015-08-21 10:19:08 +01:00
Peter Boyle cea8ac9a22 Credits to orig source where I found the macro tricks. 2015-08-21 10:14:53 +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 091785e5f5 Better list 2015-08-20 17:19:48 +01:00
Peter Boyle 77d299b414 Cosmetic 2015-08-20 16:30:52 +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
portelli dd498f993e Merge pull request #1 from paboyle/master
Sync with Peter
2015-08-19 17:27:31 +02:00
Peter Boyle fdfe194c41 Threading bug in RNG fill fixed. 2015-08-19 14:41:05 +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 5c364f8082 One flavour rational unprec added; untested but does compile.
Moving param structs into a single header for later connection to file I/O using
macromagic.h
2015-08-18 14:40:08 +01:00
Peter Boyle a842a6c94d One flavour rational unprec added; untested but does compile.
Moving param structs into a single header for later connection to file I/O using
macromagic.h
2015-08-18 14:40:08 +01:00
Peter Boyle 2dd9ad7b0f Update TODO list 2015-08-18 10:43:32 +01:00
Peter Boyle cd242a2637 Update TODO list 2015-08-18 10:43:32 +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 76f3855629 Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-18 09:23:58 +01:00
Peter Boyle 8621e2409f Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-18 09:23:58 +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 0bc38a69ce Adding PV pseudofermion in prep for DWF HMC.
Not compiled this yet, but cloned in from BFM.
2015-08-18 09:19:42 +01:00
Peter Boyle 25d0eae50c Adding PV pseudofermion in prep for DWF HMC.
Not compiled this yet, but cloned in from BFM.
2015-08-18 09:19:42 +01:00
Peter Boyle 24382d77bb Adding PV pseudofermion in prep for DWF HMC.
Not compiled this yet, but cloned in from BFM.
2015-08-17 23:14:48 +01:00
Peter Boyle ef6a9e6b07 Adding PV pseudofermion in prep for DWF HMC.
Not compiled this yet, but cloned in from BFM.
2015-08-17 23:14:48 +01:00
Peter Boyle 353d66def1 Unused apparently 2015-08-16 01:41:05 +01:00
Peter Boyle b8166af92b Unused apparently 2015-08-16 01:41:05 +01:00
Peter Boyle afeabe0d23 Tidying 2015-08-16 00:14:10 +01:00
Peter Boyle 6180487517 Tidying 2015-08-16 00:14:10 +01:00
Peter Boyle 2d6b97be06 Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-16 00:13:14 +01:00
Peter Boyle 0e088d2264 Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-16 00:13:14 +01:00
Peter Boyle 53da927c3c Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-15 23:59:04 +01:00
Peter Boyle f0e32f12cf Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-15 23:59:04 +01:00
Peter Boyle c7b50d18e7 Merge branch 'master' of https://github.com/paboyle/Grid 2015-08-15 23:56:31 +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 f40475f382 Reorganising the Fermion interface 2015-08-14 14:16:45 +01:00
Peter Boyle ba8c09a58e Reorganising the Fermion interface 2015-08-14 14:16:45 +01:00
Peter Boyle 045c85823b Extra test 2015-08-14 13:18:59 +01:00
Peter Boyle b3b46fd456 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 59d66eb17a 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 028e2061e0 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 fc9b36c769 Gamma5 mult direct 2015-08-13 10:51:29 +01:00
Peter Boyle 2c216a42f9 Gamma5 mult direct 2015-08-13 10:51:29 +01:00
Peter Boyle 45b01858a8 Gamma5 mult direct 2015-08-13 10:51:29 +01:00
Peter Boyle c39078162e Gparity improvements 2015-08-13 10:51:01 +01:00
Peter Boyle 145b807ba2 Gparity improvements 2015-08-13 10:51:01 +01:00
Peter Boyle 1c2d148bfa Gparity improvements 2015-08-13 10:51:01 +01:00
Peter Boyle 7e9203d8e0 Some bug fixes for more complicated types introduced with gparity 2015-08-13 10:50:34 +01:00
Peter Boyle 8d4c43327b Some bug fixes for more complicated types introduced with gparity 2015-08-13 10:50:34 +01:00
Peter Boyle 546513861f Some bug fixes for more complicated types introduced with gparity 2015-08-13 10:50:34 +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 8a0be42080 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 c8dca58e6d File list update. 2015-08-11 06:37:42 +01:00
Peter Boyle ded3945467 File list update. 2015-08-11 06:37:42 +01:00
Peter Boyle 04e0e9f5a0 File list update. 2015-08-11 06:37:42 +01:00
Peter Boyle 826fbb18c4 Preconditioned conjugate residual 2015-08-11 06:24:53 +01:00
Peter Boyle 9cd7f9ecad Preconditioned conjugate residual 2015-08-11 06:24:53 +01:00
Peter Boyle 69ce87fbe4 Preconditioned conjugate residual 2015-08-11 06:24:53 +01:00
Peter Boyle 07d672baeb Header 2015-08-11 06:23:38 +01:00
Peter Boyle 26f5ee0621 Header 2015-08-11 06:23:38 +01:00
Peter Boyle f165b1a120 Header 2015-08-11 06:23:38 +01:00
Peter Boyle 3903dfe6a5 Gparity modifications in the Gparity compressor variant. 2015-08-11 06:22:20 +01:00
Peter Boyle 881acaa065 Gparity modifications in the Gparity compressor variant. 2015-08-11 06:22:20 +01:00
Peter Boyle 0a9ebac514 Gparity modifications in the Gparity compressor variant. 2015-08-11 06:22:20 +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 aeb7442d8f 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 ce34856e32 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 d98e8366a0 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 742db5d8b4 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
Peter Boyle 5e9bef8a1b Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
	lib/qcd/hmc/HMC.h
	tests/Make.inc
	tests/Test_hmc_WilsonFermionGauge.cc
2015-08-01 22:24:54 +09:00
Peter Boyle a1d1dc96d6 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
	lib/qcd/hmc/HMC.h
	tests/Make.inc
	tests/Test_hmc_WilsonFermionGauge.cc
2015-08-01 22:24:54 +09:00
Peter Boyle 35feb93f56 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
	lib/qcd/hmc/HMC.h
	tests/Make.inc
	tests/Test_hmc_WilsonFermionGauge.cc
2015-08-01 22:24:54 +09:00
Peter Boyle bb7d8535aa Test for DWF force term passes 2015-08-01 22:07:05 +09:00
Peter Boyle 4866467e98 Test for DWF force term passes 2015-08-01 22:07:05 +09:00
Peter Boyle f37552a385 Test for DWF force term passes 2015-08-01 22:07:05 +09:00
Peter Boyle 848104b1a9 Changes making force term test for DWF pass. 2015-08-01 22:06:07 +09:00
Peter Boyle 2994274267 Changes making force term test for DWF pass. 2015-08-01 22:06:07 +09:00
Peter Boyle 2157a6919a Changes making force term test for DWF pass. 2015-08-01 22:06:07 +09:00
Peter Boyle 8627e237c8 Jackson smoothed chebyshev and (untested) completion of force terms
for Cayley, Partial and Cont fraction dwf and overlap.
have even odd and unprec forces.
2015-08-01 05:58:35 +09:00
Peter Boyle 1d0be956ae Jackson smoothed chebyshev and (untested) completion of force terms
for Cayley, Partial and Cont fraction dwf and overlap.
have even odd and unprec forces.
2015-08-01 05:58:35 +09:00
Peter Boyle 1d67d29183 Jackson smoothed chebyshev and (untested) completion of force terms
for Cayley, Partial and Cont fraction dwf and overlap.
have even odd and unprec forces.
2015-08-01 05:58:35 +09:00
neo 702ab15b6a Amending a merge mistake 2015-07-30 17:21:42 +09:00
neo f78cea58fa Amending a merge mistake 2015-07-30 17:21:42 +09:00
neo 3dd846c93c Amending a merge mistake 2015-07-30 17:21:42 +09:00
neo bcdc67b152 Small change in the HMC interface.
Example of multiple levels in the WilsonFermion hmc test.

Merge remote-tracking branch 'upstream/master'

Conflicts:
	lib/qcd/hmc/HMC.h
	lib/qcd/hmc/integrators/Integrator.h
	lib/qcd/hmc/integrators/Integrator_algorithm.h
	tests/Test_simd.cc
2015-07-30 17:16:57 +09:00
neo c2aff0ccd4 Small change in the HMC interface.
Example of multiple levels in the WilsonFermion hmc test.

Merge remote-tracking branch 'upstream/master'

Conflicts:
	lib/qcd/hmc/HMC.h
	lib/qcd/hmc/integrators/Integrator.h
	lib/qcd/hmc/integrators/Integrator_algorithm.h
	tests/Test_simd.cc
2015-07-30 17:16:57 +09:00
neo 490009745c Small change in the HMC interface.
Example of multiple levels in the WilsonFermion hmc test.

Merge remote-tracking branch 'upstream/master'

Conflicts:
	lib/qcd/hmc/HMC.h
	lib/qcd/hmc/integrators/Integrator.h
	lib/qcd/hmc/integrators/Integrator_algorithm.h
	tests/Test_simd.cc
2015-07-30 17:16:57 +09:00
Peter Boyle 68d9463be5 Bug in two flav pseudofermion corrected to reimport gauge field upon rejection.
exp(-DeltaH) = 1 now, and plaquette is sensible. Will reproduce an old Wilson Gauge
Wilson Fermion SCRI plaquette with precision in mass matching shortly.
2015-07-29 21:02:07 +09:00
Peter Boyle de153b70ce Bug in two flav pseudofermion corrected to reimport gauge field upon rejection.
exp(-DeltaH) = 1 now, and plaquette is sensible. Will reproduce an old Wilson Gauge
Wilson Fermion SCRI plaquette with precision in mass matching shortly.
2015-07-29 21:02:07 +09:00
Peter Boyle 9ff0b2987c Bug in two flav pseudofermion corrected to reimport gauge field upon rejection.
exp(-DeltaH) = 1 now, and plaquette is sensible. Will reproduce an old Wilson Gauge
Wilson Fermion SCRI plaquette with precision in mass matching shortly.
2015-07-29 21:02:07 +09:00
Peter Boyle 0b603225d1 Two flavour HMC for Wilson/Wilson is conserving energy.
Still to check plaq and <e(-dH)>, but nevertheless this is
progress
2015-07-29 17:53:39 +09:00
Peter Boyle cc4ca48d13 Two flavour HMC for Wilson/Wilson is conserving energy.
Still to check plaq and <e(-dH)>, but nevertheless this is
progress
2015-07-29 17:53:39 +09:00
Peter Boyle 4fe110bd07 Two flavour HMC for Wilson/Wilson is conserving energy.
Still to check plaq and <e(-dH)>, but nevertheless this is
progress
2015-07-29 17:53:39 +09:00
Peter Boyle f4c74e34d8 Committing incomplete work for parameter file I/O.
MacroMagic.h is central. Guido and I plan to move
over to generating virtual (XML, JSON, YAML, text, binary) encoding
from macro based system.
2015-07-27 18:32:28 +09:00
Peter Boyle bc09d7c3bd Committing incomplete work for parameter file I/O.
MacroMagic.h is central. Guido and I plan to move
over to generating virtual (XML, JSON, YAML, text, binary) encoding
from macro based system.
2015-07-27 18:32:28 +09:00
Peter Boyle 4cc2ef84d3 Committing incomplete work for parameter file I/O.
MacroMagic.h is central. Guido and I plan to move
over to generating virtual (XML, JSON, YAML, text, binary) encoding
from macro based system.
2015-07-27 18:32:28 +09:00
Peter Boyle 51031dd46c Files renamed 2015-07-27 18:30:19 +09:00
Peter Boyle 4c3f36b80c Files renamed 2015-07-27 18:30:19 +09:00
Peter Boyle 019f7a802e Files renamed 2015-07-27 18:30:19 +09:00
Peter Boyle 63015324c1 Two flavour pseudofermion action 2015-07-26 12:28:03 +09:00
Peter Boyle 9de40578d3 Two flavour pseudofermion action 2015-07-26 12:28:03 +09:00
Peter Boyle 97b41c41b0 Two flavour pseudofermion action 2015-07-26 12:28:03 +09:00
Peter Boyle 36b8f35eed Elemental force term for Wilson dslash added and tests thereof passing.
Now need to construct pseudofermion two flavour, ratio, one flavour, ratio
action fragments.
2015-07-26 10:54:38 +09:00
Peter Boyle d7e6b65a76 Elemental force term for Wilson dslash added and tests thereof passing.
Now need to construct pseudofermion two flavour, ratio, one flavour, ratio
action fragments.
2015-07-26 10:54:38 +09:00
Peter Boyle d9d4c5916a Elemental force term for Wilson dslash added and tests thereof passing.
Now need to construct pseudofermion two flavour, ratio, one flavour, ratio
action fragments.
2015-07-26 10:54:38 +09:00
Peter Boyle a4953610bb Merge branch 'master' of https://github.com/paboyle/Grid 2015-07-24 01:33:19 +09:00
Peter Boyle ba4989dd45 Merge branch 'master' of https://github.com/paboyle/Grid 2015-07-24 01:33:19 +09:00
Peter Boyle 1d70a45d84 Merge branch 'master' of https://github.com/paboyle/Grid 2015-07-24 01:33:19 +09:00
Peter Boyle 5e370db6c5 Sizable improvement in multigrid for unsquared.
6000 matmuls CG unprec
2000 matmuls CG prec (4000 eo muls)
1050 matmuls PGCR on 16^3 x 32 x 8 m=.01

Substantial effort on timing and logging infrastructure
2015-07-24 01:31:13 +09:00
Peter Boyle 28bdc90908 Sizable improvement in multigrid for unsquared.
6000 matmuls CG unprec
2000 matmuls CG prec (4000 eo muls)
1050 matmuls PGCR on 16^3 x 32 x 8 m=.01

Substantial effort on timing and logging infrastructure
2015-07-24 01:31:13 +09:00
Peter Boyle d1afebf71e Sizable improvement in multigrid for unsquared.
6000 matmuls CG unprec
2000 matmuls CG prec (4000 eo muls)
1050 matmuls PGCR on 16^3 x 32 x 8 m=.01

Substantial effort on timing and logging infrastructure
2015-07-24 01:31:13 +09:00
paboyle e0ed320827 Bug work around 2015-07-21 22:49:36 -07:00
paboyle c67bc303db Bug work around 2015-07-21 22:49:36 -07:00
paboyle f62f1699cb Bug work around 2015-07-21 22:49:36 -07:00
paboyle ee37130b5e Removed troublesome macros 2015-07-21 22:41:01 -07:00
paboyle 91629a24fe Removed troublesome macros 2015-07-21 22:41:01 -07:00
paboyle 5a68a9bbd4 Removed troublesome macros 2015-07-21 22:41:01 -07:00
Peter Boyle 5b475d5e08 5x speed up now 2015-07-22 00:30:05 +09:00
Peter Boyle d6a2d734d3 5x speed up now 2015-07-22 00:30:05 +09:00
Peter Boyle 11c99d5e66 5x speed up now 2015-07-22 00:30:05 +09:00
neo 479912a5ed Merge remote-tracking branch 'upstream/master' 2015-07-21 17:17:50 +09:00
neo d01310383f Merge remote-tracking branch 'upstream/master' 2015-07-21 17:17:50 +09:00
neo 5fc6af1c77 Merge remote-tracking branch 'upstream/master' 2015-07-21 17:17:50 +09:00
Peter Boyle b382660425 INSTALL 2015-07-21 13:58:57 +09:00
Peter Boyle 1c3ab017e8 INSTALL 2015-07-21 13:58:57 +09:00
Peter Boyle 135998acf5 INSTALL 2015-07-21 13:58:57 +09:00
Peter Boyle 987801c86d Merge 2015-07-21 13:56:22 +09:00
Peter Boyle 8925845684 Merge 2015-07-21 13:56:22 +09:00
Peter Boyle 4e94ddad46 Merge 2015-07-21 13:56:22 +09:00
Peter Boyle f8be0aeed1 No changes shown on git diff 2015-07-21 13:54:09 +09:00
Peter Boyle e34f8adbf4 No changes shown on git diff 2015-07-21 13:54:09 +09:00
Peter Boyle 5ac625f716 No changes shown on git diff 2015-07-21 13:54:09 +09:00
Peter Boyle 9651ab661b Small pretty layout change 2015-07-21 13:53:23 +09:00
Peter Boyle c7925e5c9b Small pretty layout change 2015-07-21 13:53:23 +09:00
Peter Boyle 8d654a86de Small pretty layout change 2015-07-21 13:53:23 +09:00
Peter Boyle fb65953d82 This was needed to compile on gcc 2015-07-21 13:52:59 +09:00
Peter Boyle 9d18773fbc This was needed to compile on gcc 2015-07-21 13:52:59 +09:00
Peter Boyle df2aac01f4 This was needed to compile on gcc 2015-07-21 13:52:59 +09:00
Peter Boyle 98dfc9254f This file is being developed and will remain hacky until the new algorithm
is complete
2015-07-21 13:52:23 +09:00
Peter Boyle 81987b64a6 This file is being developed and will remain hacky until the new algorithm
is complete
2015-07-21 13:52:23 +09:00
Peter Boyle 487fde8496 This file is being developed and will remain hacky until the new algorithm
is complete
2015-07-21 13:52:23 +09:00
Peter Boyle 44cf212720 Printing change 2015-07-21 13:51:56 +09:00
Peter Boyle 821ac7b6f4 Printing change 2015-07-21 13:51:56 +09:00
Peter Boyle 0007669381 Printing change 2015-07-21 13:51:56 +09:00
Peter Boyle cbec16fedd More info 2015-07-21 13:48:57 +09:00
Peter Boyle 01f9b1f6a4 More info 2015-07-21 13:48:57 +09:00
Peter Boyle a700933611 More info 2015-07-21 13:48:57 +09:00
Peter Boyle 64703207d4 Tweaks to subspace set up to put in g5 r5 hermiticity 2015-07-21 12:13:03 +09:00
Peter Boyle 59baa15d9f Tweaks to subspace set up to put in g5 r5 hermiticity 2015-07-21 12:13:03 +09:00
Peter Boyle c515d069cd Tweaks to subspace set up to put in g5 r5 hermiticity 2015-07-21 12:13:03 +09:00
Peter Boyle 021478af3b verbose 2015-07-21 12:12:29 +09:00
Peter Boyle 8a4f9d2367 verbose 2015-07-21 12:12:29 +09:00
Peter Boyle 8a7b7f1e2b verbose 2015-07-21 12:12:29 +09:00
neo 0ea846dcdc Merge remote-tracking branch 'upstream/master'
Conflicts:
	configure
2015-07-21 11:57:34 +09:00
neo 52e9c6b8db Merge remote-tracking branch 'upstream/master'
Conflicts:
	configure
2015-07-21 11:57:34 +09:00
neo a9c15626e1 Merge remote-tracking branch 'upstream/master'
Conflicts:
	configure
2015-07-21 11:57:34 +09:00
Guido Cossu d6489c8bf5 Merge pull request #16 from aportelli/master
AX_GCC_X86_AVX_XGETBV macro fix
2015-07-21 11:55:40 +09:00
Guido Cossu 7fc26258c7 Merge pull request #16 from aportelli/master
AX_GCC_X86_AVX_XGETBV macro fix
2015-07-21 11:55:40 +09:00
Guido Cossu 5c721b0aa0 Merge pull request #16 from aportelli/master
AX_GCC_X86_AVX_XGETBV macro fix
2015-07-21 11:55:40 +09:00
neo ab916d80fd More NEON functionalities 2015-07-21 11:52:15 +09:00
neo 7343a95772 More NEON functionalities 2015-07-21 11:52:15 +09:00
neo 9adaeb061a More NEON functionalities 2015-07-21 11:52:15 +09:00
portelli b0eedfd7ba fix of AX_GCC_X86_AVX_XGETBV macro 2015-07-17 11:15:57 +09:00
portelli 3fc9c00465 fix of AX_GCC_X86_AVX_XGETBV macro 2015-07-17 11:15:57 +09:00
portelli 73c4a1dac9 fix of AX_GCC_X86_AVX_XGETBV macro 2015-07-17 11:15:57 +09:00
portelli 6b8190a032 gitignore update 2015-07-17 11:15:17 +09:00
portelli 807e329a18 gitignore update 2015-07-17 11:15:17 +09:00
portelli ce7c24989d gitignore update 2015-07-17 11:15:17 +09:00
Peter Boyle 2da20f1443 This file drives me crazy 2015-07-11 23:06:31 +09:00
Peter Boyle ab509d3f8e This file drives me crazy 2015-07-11 23:06:31 +09:00
Peter Boyle 7907e4ca03 This file drives me crazy 2015-07-11 23:06:31 +09:00
neo c431816393 Cleaning up files for HMC 2015-07-07 14:59:37 +09:00
neo 48ae886c32 Cleaning up files for HMC 2015-07-07 14:59:37 +09:00
neo 97afe4125f Cleaning up files for HMC 2015-07-07 14:59:37 +09:00
neo 1e9317e5cf Simplifying HMC syntax for the final user 2015-07-06 18:32:20 +09:00
neo 19a1ffedcc Simplifying HMC syntax for the final user 2015-07-06 18:32:20 +09:00
neo 0f21c38ff8 Simplifying HMC syntax for the final user 2015-07-06 18:32:20 +09:00
neo 510f55ba30 Rearranging files in hmc 2015-07-06 16:46:43 +09:00
neo 32e6887d5f Rearranging files in hmc 2015-07-06 16:46:43 +09:00
neo fa42b652e5 Rearranging files in hmc 2015-07-06 16:46:43 +09:00
neo f95db88d19 Added minimum norm integrator
Little rearrangement of HMC and integrator classes
2015-07-06 16:17:32 +09:00
neo 1991852025 Added minimum norm integrator
Little rearrangement of HMC and integrator classes
2015-07-06 16:17:32 +09:00
neo 68fe0769a1 Added minimum norm integrator
Little rearrangement of HMC and integrator classes
2015-07-06 16:17:32 +09:00
neo 12e1682a87 HMC for Wilson Gauge action works
Fixed bug in momenta generation
2015-07-06 12:58:49 +09:00
neo 2718038977 HMC for Wilson Gauge action works
Fixed bug in momenta generation
2015-07-06 12:58:49 +09:00
neo 808f5820fa HMC for Wilson Gauge action works
Fixed bug in momenta generation
2015-07-06 12:58:49 +09:00
neo 6261770f59 Debugged vector version of ProjectOnGroup 2015-07-06 02:24:58 +09:00
neo 62d8952c0a Debugged vector version of ProjectOnGroup 2015-07-06 02:24:58 +09:00
neo 0ffcdf6204 Debugged vector version of ProjectOnGroup 2015-07-06 02:24:58 +09:00
neo 7a4ed7a867 HMC ready but untested 2015-07-04 17:47:50 +09:00
neo b1f94fa292 HMC ready but untested 2015-07-04 17:47:50 +09:00
neo e6087e1820 HMC ready but untested 2015-07-04 17:47:50 +09:00
neo 250965c6ca More progress in the HMC construction 2015-07-04 02:43:14 +09:00
neo 30c9dc473d More progress in the HMC construction 2015-07-04 02:43:14 +09:00
neo 59be55c0ab More progress in the HMC construction 2015-07-04 02:43:14 +09:00
neo 55f05a778f Skeleton of HMC/Integrators 2015-07-03 16:51:41 +09:00
neo 9655d43017 Skeleton of HMC/Integrators 2015-07-03 16:51:41 +09:00
neo ab3ad78ece Skeleton of HMC/Integrators 2015-07-03 16:51:41 +09:00
Peter Boyle 2c9ceaef94 No compile fix 2015-07-02 02:03:09 +01:00
Peter Boyle a666e66e36 No compile fix 2015-07-02 02:03:09 +01:00
Peter Boyle 4deffd1ccb No compile fix 2015-07-02 02:03:09 +01:00
Peter Boyle 55e313bd08 Cleaning up the recursion for traceIndex<n> after the changes the enable G++ to
compile it again.
2015-07-01 23:43:57 +01:00
Peter Boyle 84ec7c40cd Cleaning up the recursion for traceIndex<n> after the changes the enable G++ to
compile it again.
2015-07-01 23:43:57 +01:00
Peter Boyle a5c3edaca9 Cleaning up the recursion for traceIndex<n> after the changes the enable G++ to
compile it again.
2015-07-01 23:43:57 +01:00
Peter Boyle ef0ec1d0b2 Merge branch 'master' of https://github.com/paboyle/Grid 2015-07-01 22:51:04 +01:00
Peter Boyle 69a3d3203c Merge branch 'master' of https://github.com/paboyle/Grid 2015-07-01 22:51:04 +01:00
Peter Boyle 31a0c8d783 Merge branch 'master' of https://github.com/paboyle/Grid 2015-07-01 22:51:04 +01:00
paboyle 1e29d9f778 Some useful XC30 commands 2015-07-01 22:50:13 +01:00
paboyle 4cbcc7fd23 Some useful XC30 commands 2015-07-01 22:50:13 +01:00
paboyle ea5f2fcac4 Some useful XC30 commands 2015-07-01 22:50:13 +01:00
paboyle 46cf661ecd More xc30 config commansd 2015-07-01 22:48:58 +01:00
paboyle d4c4ce49fc More xc30 config commansd 2015-07-01 22:48:58 +01:00
paboyle 993420633b More xc30 config commansd 2015-07-01 22:48:58 +01:00
paboyle cb9da7b371 Temporarily disable gmp dependency simply because Cray XC30's I'm benchmarking
have a downlevel gmp version that chokes on ::max_align_t where gmp had a
bug as far as I recall.
2015-07-01 22:47:33 +01:00
paboyle c0ea404a7c Temporarily disable gmp dependency simply because Cray XC30's I'm benchmarking
have a downlevel gmp version that chokes on ::max_align_t where gmp had a
bug as far as I recall.
2015-07-01 22:47:33 +01:00
paboyle e3456bf559 Temporarily disable gmp dependency simply because Cray XC30's I'm benchmarking
have a downlevel gmp version that chokes on ::max_align_t where gmp had a
bug as far as I recall.
2015-07-01 22:47:33 +01:00
paboyle 71e6733d4d Modified memory bw test to display word size 2015-07-01 22:46:53 +01:00
paboyle 0aec35bfc0 Modified memory bw test to display word size 2015-07-01 22:46:53 +01:00
paboyle 39271b02dd Modified memory bw test to display word size 2015-07-01 22:46:53 +01:00
Peter Boyle 98b84d230a Change the SIMD command correctly with precision = double vs. single and
connect the "Real" default precisoin to a configure flag.
Have RealF, RealD and Real types, where Real is compile target dependent single/double,
RealF is single and RealD is double etc..
2015-07-01 22:45:15 +01:00
Peter Boyle dc66161f47 Change the SIMD command correctly with precision = double vs. single and
connect the "Real" default precisoin to a configure flag.
Have RealF, RealD and Real types, where Real is compile target dependent single/double,
RealF is single and RealD is double etc..
2015-07-01 22:45:15 +01:00
Peter Boyle 638d2cda11 Change the SIMD command correctly with precision = double vs. single and
connect the "Real" default precisoin to a configure flag.
Have RealF, RealD and Real types, where Real is compile target dependent single/double,
RealF is single and RealD is double etc..
2015-07-01 22:45:15 +01:00
paboyle c4777879e6 Remove dependency on wrong file 2015-07-01 13:04:02 +01:00
paboyle b139941423 Remove dependency on wrong file 2015-07-01 13:04:02 +01:00
paboyle 61c3491b8b Remove dependency on wrong file 2015-07-01 13:04:02 +01:00
Peter Boyle e618c609fe Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-30 15:17:46 +01:00
Peter Boyle ef81d6bf06 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-30 15:17:46 +01:00
Peter Boyle 9143f071d7 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-30 15:17:46 +01:00
Peter Boyle e164ed6f12 Big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:17:27 +01:00
Peter Boyle f41c7dffef Big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:17:27 +01:00
Peter Boyle 03ca506a3d Big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:17:27 +01:00
Peter Boyle 95ecf81d42 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:03:11 +01:00
Peter Boyle 74e397b29c big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:03:11 +01:00
Peter Boyle 98c817df1b big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:03:11 +01:00
Peter Boyle f36dbfffe5 VPGCR updates 2015-06-30 15:02:27 +01:00
Peter Boyle 7cfe432ee2 VPGCR updates 2015-06-30 15:02:27 +01:00
Peter Boyle 8eaf657f95 VPGCR updates 2015-06-30 15:02:27 +01:00
Peter Boyle 8581c05ab3 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:01:44 +01:00
Peter Boyle 490042f8e1 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:01:44 +01:00
Peter Boyle 8ad81bed32 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:01:44 +01:00
Peter Boyle 59cd42c164 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:01:26 +01:00
Peter Boyle 0971522f43 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:01:26 +01:00
Peter Boyle cd2fb68905 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:01:26 +01:00
Peter Boyle a4369e1db6 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:00:19 +01:00
Peter Boyle 7de5ccb879 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:00:19 +01:00
Peter Boyle c20fdd45a5 big commit fixing nocompiles in defective C++11 compilers (gcc, icpc). stared getting to
near the bleeding edge I guess
2015-06-30 15:00:19 +01:00
Peter Boyle d6c79bbadb Update Benchmark_comms.cc 2015-06-25 10:59:53 +01:00
Peter Boyle a67b44ffa4 Update Benchmark_comms.cc 2015-06-25 10:59:53 +01:00
Peter Boyle 93916f400d Update Benchmark_comms.cc 2015-06-25 10:59:53 +01:00
Peter Boyle 5f8f0bc792 Some small steps towards a multigrid 2015-06-22 12:49:44 +01:00
Peter Boyle dec68e5c0e Some small steps towards a multigrid 2015-06-22 12:49:44 +01:00
Peter Boyle a17684ebe2 Some small steps towards a multigrid 2015-06-22 12:49:44 +01:00
Azusa Yamaguchi 95538bb8c6 Abstract preconditioner 2015-06-21 11:03:55 +01:00
Azusa Yamaguchi e415587e8f Abstract preconditioner 2015-06-21 11:03:55 +01:00
Azusa Yamaguchi fd1a8abcd1 Abstract preconditioner 2015-06-21 11:03:55 +01:00
Azusa Yamaguchi a265765319 Variable preconditioned GCR with restarting.
Orthogonalisation depth and restart frequency is controllable via constructor
2015-06-21 10:58:46 +01:00
Azusa Yamaguchi 945bb93e48 Variable preconditioned GCR with restarting.
Orthogonalisation depth and restart frequency is controllable via constructor
2015-06-21 10:58:46 +01:00
Azusa Yamaguchi 3b4118f33e Variable preconditioned GCR with restarting.
Orthogonalisation depth and restart frequency is controllable via constructor
2015-06-21 10:58:46 +01:00
Peter Boyle eace9051e8 Merge
Merge branch 'master' of https://github.com/paboyle/Grid
2015-06-20 22:25:31 +01:00
Peter Boyle bcf1d5160f Merge
Merge branch 'master' of https://github.com/paboyle/Grid
2015-06-20 22:25:31 +01:00
Peter Boyle c7d77dfa0f Merge
Merge branch 'master' of https://github.com/paboyle/Grid
2015-06-20 22:25:31 +01:00
Peter Boyle f1916a7515 Will start this as a two level algorithm 2015-06-20 22:24:21 +01:00
Peter Boyle eb5ad2884c Will start this as a two level algorithm 2015-06-20 22:24:21 +01:00
Peter Boyle 960f29c0b1 Will start this as a two level algorithm 2015-06-20 22:24:21 +01:00
Peter Boyle 5ccbac7db1 HDCG but this is not complete and placeholder for later completion 2015-06-20 22:23:57 +01:00
Peter Boyle bce59d9911 HDCG but this is not complete and placeholder for later completion 2015-06-20 22:23:57 +01:00
Peter Boyle fb07ee5781 HDCG but this is not complete and placeholder for later completion 2015-06-20 22:23:57 +01:00
Peter Boyle aba5c8595a Patches for beginnings of an overlap multigrid 2015-06-20 22:22:56 +01:00
Peter Boyle 6ad96f7383 Patches for beginnings of an overlap multigrid 2015-06-20 22:22:56 +01:00
Peter Boyle b4a6dbfa65 Patches for beginnings of an overlap multigrid 2015-06-20 22:22:56 +01:00
Azusa Yamaguchi cb92390825 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-20 14:22:29 +01:00
Azusa Yamaguchi 6cebd006d4 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-20 14:22:29 +01:00
Azusa Yamaguchi dc7c77e1d5 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-20 14:22:29 +01:00
Azusa Yamaguchi 9dbb326061 Add the test_quenched files 2015-06-20 14:09:26 +01:00
Azusa Yamaguchi fd208ca11c Add the test_quenched files 2015-06-20 14:09:26 +01:00
Azusa Yamaguchi 1e8217d880 Add the test_quenched files 2015-06-20 14:09:26 +01:00
Peter Boyle 2534199ee7 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-19 17:24:05 +01:00
Peter Boyle 177b5632fd Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-19 17:24:05 +01:00
Peter Boyle a0d4f832cf Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-19 17:24:05 +01:00
Jung ee9ecb6115 Fixing missing max_align_t error 2015-06-19 00:56:24 -04:00
neo faf8544233 Lattice matrix exponential ok 2015-06-17 20:41:07 +09:00
neo 09757cbf0c Lattice matrix exponential ok 2015-06-17 20:41:07 +09:00
neo 4eb71d2cd2 Lattice matrix exponential ok 2015-06-17 20:41:07 +09:00
Azusa Yamaguchi b78ecd6fb2 merge 2015-06-16 20:47:31 +01:00
Azusa Yamaguchi 92e870b256 merge 2015-06-16 20:47:31 +01:00
Azusa Yamaguchi fd72b64ca3 merge 2015-06-16 20:47:31 +01:00
Azusa Yamaguchi 700614123d add bug-fixed Test_nersc)_io. 2015-06-16 20:23:27 +01:00
Azusa Yamaguchi 06047b83c7 add bug-fixed Test_nersc)_io. 2015-06-16 20:23:27 +01:00
Azusa Yamaguchi 2faf7d95db add bug-fixed Test_nersc)_io. 2015-06-16 20:23:27 +01:00
neo 26ff0f3b50 Merge remote-tracking branch 'upstream/master' 2015-06-17 02:02:51 +09:00
neo 9c846bb0c7 Merge remote-tracking branch 'upstream/master' 2015-06-17 02:02:51 +09:00
neo e31dfa79d1 Merge remote-tracking branch 'upstream/master' 2015-06-17 02:02:51 +09:00
neo 296edfbd95 Check for SUN projection and Exponential 2015-06-17 02:02:06 +09:00
neo 318e244748 Check for SUN projection and Exponential 2015-06-17 02:02:06 +09:00
neo 47159797cb Check for SUN projection and Exponential 2015-06-17 02:02:06 +09:00
neo a7555b41df Corrected bug in integer multiplications for SSE4 and AVX2
Merge remote-tracking branch 'upstream/master'

Conflicts:
	tests/Make.inc
2015-06-16 23:34:45 +09:00
neo c9018d74ac Corrected bug in integer multiplications for SSE4 and AVX2
Merge remote-tracking branch 'upstream/master'

Conflicts:
	tests/Make.inc
2015-06-16 23:34:45 +09:00
neo 6e5db0b1da Corrected bug in integer multiplications for SSE4 and AVX2
Merge remote-tracking branch 'upstream/master'

Conflicts:
	tests/Make.inc
2015-06-16 23:34:45 +09:00
Azusa Yamaguchi 453b28bd81 Heatbath and config related removed 2015-06-16 14:18:48 +01:00
Azusa Yamaguchi ddbfb026d5 Heatbath and config related removed 2015-06-16 14:18:48 +01:00
Azusa Yamaguchi 1c3c795b84 Heatbath and config related removed 2015-06-16 14:18:48 +01:00
Azusa Yamaguchi 77058d9b9f Critical bug fix of sin/cos typo 2015-06-16 14:17:45 +01:00
Azusa Yamaguchi 9c16bccbf4 Critical bug fix of sin/cos typo 2015-06-16 14:17:45 +01:00
Azusa Yamaguchi 20fe866651 Critical bug fix of sin/cos typo 2015-06-16 14:17:45 +01:00
Azusa Yamaguchi 74845cb3dc Quenched works for wilson gauge 2015-06-16 14:17:11 +01:00
Azusa Yamaguchi 79a9f8b9c9 Quenched works for wilson gauge 2015-06-16 14:17:11 +01:00
Azusa Yamaguchi 18d0437f8d Quenched works for wilson gauge 2015-06-16 14:17:11 +01:00
Azusa Yamaguchi c945041067 uninitialised bug fix 2015-06-16 14:07:05 +01:00
Azusa Yamaguchi 173b31ce05 uninitialised bug fix 2015-06-16 14:07:05 +01:00
Azusa Yamaguchi 4e7300b68d uninitialised bug fix 2015-06-16 14:07:05 +01:00
Azusa Yamaguchi a7774e100f Typo fix 2015-06-16 14:06:31 +01:00
Azusa Yamaguchi 633ee06faf Typo fix 2015-06-16 14:06:31 +01:00
Azusa Yamaguchi 73494a4768 Typo fix 2015-06-16 14:06:31 +01:00
Azusa Yamaguchi b11f4a1473 Extra check that failed in quenched test 2015-06-16 14:04:56 +01:00
Azusa Yamaguchi cd7eac062a Extra check that failed in quenched test 2015-06-16 14:04:56 +01:00
Azusa Yamaguchi d7a8921de2 Extra check that failed in quenched test 2015-06-16 14:04:56 +01:00
Azusa Yamaguchi 212c13bb2c pointer cast 2015-06-16 14:04:33 +01:00
Azusa Yamaguchi 625bb1d7ee pointer cast 2015-06-16 14:04:33 +01:00
Azusa Yamaguchi d5edd09beb pointer cast 2015-06-16 14:04:33 +01:00
neo 0bff862876 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/Make.inc
	tests/Make.inc
2015-06-15 16:48:50 +09:00
neo 1f2cf5cff4 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/Make.inc
	tests/Make.inc
2015-06-15 16:48:50 +09:00
neo f7a1cef15b Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/Make.inc
	tests/Make.inc
2015-06-15 16:48:50 +09:00
Peter Boyle 8ebff0b7c0 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-14 01:29:41 +01:00
Peter Boyle 308d53858b Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-14 01:29:41 +01:00
Peter Boyle 392399e866 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-14 01:29:41 +01:00
Azusa Yamaguchi 54964dd4bb First cut at SUN support for quenched updates 2015-06-14 01:28:54 +01:00
Azusa Yamaguchi ae0873bc77 First cut at SUN support for quenched updates 2015-06-14 01:28:54 +01:00
Azusa Yamaguchi 55d7483608 First cut at SUN support for quenched updates 2015-06-14 01:28:54 +01:00
Peter Boyle 0f6ed6b633 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-14 01:27:07 +01:00
Peter Boyle 3f7a66328a Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-14 01:27:07 +01:00
Peter Boyle 337bccf27d Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-14 01:27:07 +01:00
Azusa Yamaguchi aa558ab03d Logical elemenet by element on tensors 2015-06-14 01:08:29 +01:00
Azusa Yamaguchi 353c9598c1 Logical elemenet by element on tensors 2015-06-14 01:08:29 +01:00
Azusa Yamaguchi 2b971c14c0 Logical elemenet by element on tensors 2015-06-14 01:08:29 +01:00
Azusa Yamaguchi 459ce22bb3 WHere should always have precisely matching types in ET system 2015-06-14 01:07:58 +01:00
Azusa Yamaguchi a5bb9472b6 WHere should always have precisely matching types in ET system 2015-06-14 01:07:58 +01:00
Azusa Yamaguchi 250cb00c42 WHere should always have precisely matching types in ET system 2015-06-14 01:07:58 +01:00
Azusa Yamaguchi 694dac7ff5 Where and many other functions (sin cos abs log exp) into ET system 2015-06-14 01:07:25 +01:00
Azusa Yamaguchi 84a207f2e6 Where and many other functions (sin cos abs log exp) into ET system 2015-06-14 01:07:25 +01:00
Azusa Yamaguchi f5bcca6cdf Where and many other functions (sin cos abs log exp) into ET system 2015-06-14 01:07:25 +01:00
Azusa Yamaguchi c54299107a Cosmetic 2015-06-14 01:06:56 +01:00
Azusa Yamaguchi 667abe888a Cosmetic 2015-06-14 01:06:56 +01:00
Azusa Yamaguchi be3f4ce201 Cosmetic 2015-06-14 01:06:56 +01:00
Azusa Yamaguchi fe1d8a9dd1 real comps and expression comps 2015-06-14 01:05:57 +01:00
Azusa Yamaguchi bc238177b7 real comps and expression comps 2015-06-14 01:05:57 +01:00
Azusa Yamaguchi 264d0d1735 real comps and expression comps 2015-06-14 01:05:57 +01:00
Azusa Yamaguchi c93c0edcd9 Allow real comparisons and expressions in comparisons 2015-06-14 01:05:39 +01:00
Azusa Yamaguchi 2303a2231b Allow real comparisons and expressions in comparisons 2015-06-14 01:05:39 +01:00
Azusa Yamaguchi 6ca940b5a6 Allow real comparisons and expressions in comparisons 2015-06-14 01:05:39 +01:00
Azusa Yamaguchi 9bdef0888e Allow sparse occupation of vectors in some cases 2015-06-14 01:05:06 +01:00
Azusa Yamaguchi 9bdb8ffb3f Allow sparse occupation of vectors in some cases 2015-06-14 01:05:06 +01:00
Azusa Yamaguchi b66bbed548 Allow sparse occupation of vectors in some cases 2015-06-14 01:05:06 +01:00
Azusa Yamaguchi f8f4b8a249 Moving more into the ET system 2015-06-14 01:04:32 +01:00
Azusa Yamaguchi 38e8a61035 Moving more into the ET system 2015-06-14 01:04:32 +01:00
Azusa Yamaguchi 463b9ca374 Moving more into the ET system 2015-06-14 01:04:32 +01:00
Azusa Yamaguchi 8bafe067eb trying to find a way to remove functions from the ET system using explicit
expression closure statements. Not sure if this works yet
2015-06-14 01:03:28 +01:00
Azusa Yamaguchi 02885ee583 trying to find a way to remove functions from the ET system using explicit
expression closure statements. Not sure if this works yet
2015-06-14 01:03:28 +01:00
Azusa Yamaguchi 611f7ec38c trying to find a way to remove functions from the ET system using explicit
expression closure statements. Not sure if this works yet
2015-06-14 01:03:28 +01:00
Azusa Yamaguchi 53ba8d4926 Transpose always returns self image 2015-06-14 01:02:31 +01:00
Azusa Yamaguchi 6a697be060 Transpose always returns self image 2015-06-14 01:02:31 +01:00
Azusa Yamaguchi f490f320ae Transpose always returns self image 2015-06-14 01:02:31 +01:00
Azusa Yamaguchi ddd93a0576 Extra lattice unaries 2015-06-14 01:01:55 +01:00
Azusa Yamaguchi 4d81d402b9 Extra lattice unaries 2015-06-14 01:01:55 +01:00
Azusa Yamaguchi 58f50b7520 Extra lattice unaries 2015-06-14 01:01:55 +01:00
Azusa Yamaguchi ae2dcfc173 Moving where in to the expression template system; deprecate 2015-06-14 01:01:21 +01:00
Azusa Yamaguchi 0f7cf40867 Moving where in to the expression template system; deprecate 2015-06-14 01:01:21 +01:00
Azusa Yamaguchi e5c980f169 Moving where in to the expression template system; deprecate 2015-06-14 01:01:21 +01:00
Azusa Yamaguchi 58a695b0a9 More TODO as ever 2015-06-14 01:00:46 +01:00
Azusa Yamaguchi 8b9a9aea81 More TODO as ever 2015-06-14 01:00:46 +01:00
Azusa Yamaguchi c185cbdc40 More TODO as ever 2015-06-14 01:00:46 +01:00
Azusa Yamaguchi e529dd9696 Peek poke colour/spin/complex and trace transpose support 2015-06-14 01:00:11 +01:00
Azusa Yamaguchi 87cc0d4ca3 Peek poke colour/spin/complex and trace transpose support 2015-06-14 01:00:11 +01:00
Azusa Yamaguchi 6b8bdf0c6b Peek poke colour/spin/complex and trace transpose support 2015-06-14 01:00:11 +01:00
Azusa Yamaguchi 610450bc0e const safety 2015-06-14 00:59:50 +01:00
Azusa Yamaguchi 66e5718610 const safety 2015-06-14 00:59:50 +01:00
Azusa Yamaguchi 68b82ddd99 const safety 2015-06-14 00:59:50 +01:00
Azusa Yamaguchi 2ba72a91de Binop assist and real/complex improvements 2015-06-14 00:59:07 +01:00
Azusa Yamaguchi 19e8d2809a Binop assist and real/complex improvements 2015-06-14 00:59:07 +01:00
Azusa Yamaguchi 22c8185caa Binop assist and real/complex improvements 2015-06-14 00:59:07 +01:00
Azusa Yamaguchi 4cf04c8583 More functions broken out into element by element 2015-06-14 00:58:14 +01:00
Azusa Yamaguchi 8245585dee More functions broken out into element by element 2015-06-14 00:58:14 +01:00
Azusa Yamaguchi 42f7e5b7f8 More functions broken out into element by element 2015-06-14 00:58:14 +01:00
Azusa Yamaguchi 56d120cb24 typo fix -- remove extra template arg 2015-06-14 00:57:23 +01:00
Azusa Yamaguchi 9006f7a34a typo fix -- remove extra template arg 2015-06-14 00:57:23 +01:00
Azusa Yamaguchi 84485afe6c typo fix -- remove extra template arg 2015-06-14 00:57:23 +01:00
Azusa Yamaguchi 1dc8dfd3ae Logical ops element by element 2015-06-14 00:56:40 +01:00
Azusa Yamaguchi d5810eaef1 Logical ops element by element 2015-06-14 00:56:40 +01:00
Azusa Yamaguchi 3dea03e72b Logical ops element by element 2015-06-14 00:56:40 +01:00
Azusa Yamaguchi f2dafbc4f7 Real complex improved 2015-06-14 00:56:08 +01:00
Azusa Yamaguchi b521155218 Real complex improved 2015-06-14 00:56:08 +01:00
Azusa Yamaguchi dbfb1a69c6 Real complex improved 2015-06-14 00:56:08 +01:00
Azusa Yamaguchi 9c810200e0 Handle case of simd_layout not filling whole vector.
Useful if real complex live on same grid
2015-06-14 00:55:21 +01:00
Azusa Yamaguchi 51ebc4f402 Handle case of simd_layout not filling whole vector.
Useful if real complex live on same grid
2015-06-14 00:55:21 +01:00
Azusa Yamaguchi ef97692622 Handle case of simd_layout not filling whole vector.
Useful if real complex live on same grid
2015-06-14 00:55:21 +01:00
Azusa Yamaguchi 6d6e9a5811 Real/Complex improvements 2015-06-14 00:54:18 +01:00
Azusa Yamaguchi 17de4bce20 Real/Complex improvements 2015-06-14 00:54:18 +01:00
Azusa Yamaguchi a81998f704 Real/Complex improvements 2015-06-14 00:54:18 +01:00
Azusa Yamaguchi 2949e5feca Real handling improvement 2015-06-14 00:53:52 +01:00
Azusa Yamaguchi d74aa0e1e6 Real handling improvement 2015-06-14 00:53:52 +01:00
Azusa Yamaguchi 8fa0c90062 Real handling improvement 2015-06-14 00:53:52 +01:00
Azusa Yamaguchi 96a55c17f1 Unary funcs update 2015-06-14 00:53:18 +01:00
Azusa Yamaguchi d66cab3f01 Unary funcs update 2015-06-14 00:53:18 +01:00
Azusa Yamaguchi c90cf08bae Unary funcs update 2015-06-14 00:53:18 +01:00
Azusa Yamaguchi d47f2fe1e0 File list 2015-06-14 00:52:39 +01:00
Azusa Yamaguchi 5c66b5c712 File list 2015-06-14 00:52:39 +01:00
Azusa Yamaguchi 0fa26e7d68 File list 2015-06-14 00:52:39 +01:00
Azusa Yamaguchi eff0cb3067 Minor 2015-06-14 00:52:26 +01:00
Azusa Yamaguchi 3e261b3d9e Minor 2015-06-14 00:52:26 +01:00
Azusa Yamaguchi 8bac3b57ad Minor 2015-06-14 00:52:26 +01:00
Azusa Yamaguchi ff8bde53df more accurate comment 2015-06-14 00:51:56 +01:00
Azusa Yamaguchi c79d85f763 more accurate comment 2015-06-14 00:51:56 +01:00
Azusa Yamaguchi 171c95d6d8 more accurate comment 2015-06-14 00:51:56 +01:00
Azusa Yamaguchi 58019383f3 Typing 2015-06-14 00:51:37 +01:00
Azusa Yamaguchi ff3db9ceee Typing 2015-06-14 00:51:37 +01:00
Azusa Yamaguchi 5484607ef2 Typing 2015-06-14 00:51:37 +01:00
Azusa Yamaguchi 21f214d6c9 Apply a heatbath sweep 2015-06-14 00:50:59 +01:00
Azusa Yamaguchi f3aebd4b33 Apply a heatbath sweep 2015-06-14 00:50:59 +01:00
Azusa Yamaguchi 31ab4c4c35 Apply a heatbath sweep 2015-06-14 00:50:59 +01:00
Azusa Yamaguchi e57bc34afe Minor change 2015-06-14 00:50:26 +01:00
Azusa Yamaguchi 0c8c44b3e3 Minor change 2015-06-14 00:50:26 +01:00
Azusa Yamaguchi a0dcbc0d16 Minor change 2015-06-14 00:50:26 +01:00
Azusa Yamaguchi 744879a3f5 be more precise on typing 2015-06-14 00:49:57 +01:00
Azusa Yamaguchi e4e91d3042 be more precise on typing 2015-06-14 00:49:57 +01:00
Azusa Yamaguchi fa6117f136 be more precise on typing 2015-06-14 00:49:57 +01:00
Azusa Yamaguchi 45c21a9c8b TensorRemove not needed now 2015-06-14 00:49:26 +01:00
Azusa Yamaguchi 9184cc68da TensorRemove not needed now 2015-06-14 00:49:26 +01:00
Azusa Yamaguchi 2c2112e152 TensorRemove not needed now 2015-06-14 00:49:26 +01:00
Azusa Yamaguchi 19ff065844 fix no compile 2015-06-14 00:48:41 +01:00
Azusa Yamaguchi 46eafa520d fix no compile 2015-06-14 00:48:41 +01:00
Azusa Yamaguchi dcfc189f11 fix no compile 2015-06-14 00:48:41 +01:00
Peter Boyle f0d190024a Updates to ldop tests 2015-06-10 12:26:25 +01:00
Peter Boyle 1cc25837b2 Updates to ldop tests 2015-06-10 12:26:25 +01:00
Peter Boyle 5cce44edb4 Updates to ldop tests 2015-06-10 12:26:25 +01:00
Peter Boyle 0ad72b38ab file list 2015-06-10 12:25:15 +01:00
Peter Boyle 50c4f416b6 file list 2015-06-10 12:25:15 +01:00
Peter Boyle 622261b1ea file list 2015-06-10 12:25:15 +01:00
Azusa Yamaguchi 12d7902ca0 Fix compile 2015-06-10 11:30:27 +01:00
Azusa Yamaguchi e5d30fe5e2 Fix compile 2015-06-10 11:30:27 +01:00
Azusa Yamaguchi f6667801e1 Fix compile 2015-06-10 11:30:27 +01:00
Azusa Yamaguchi e3b4dd32c0 commit file list 2015-06-10 11:26:46 +01:00
Azusa Yamaguchi 89f961faef commit file list 2015-06-10 11:26:46 +01:00
Azusa Yamaguchi 22752f6ff0 commit file list 2015-06-10 11:26:46 +01:00
Azusa Yamaguchi 562cdc805b Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-10 11:25:57 +01:00
Azusa Yamaguchi ca109497a1 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-10 11:25:57 +01:00
Azusa Yamaguchi 0457923179 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-10 11:25:57 +01:00
Azusa Yamaguchi 653a94e8ab Successful generation of general SU N generators
This class will move into a utils class and gain exponentiation and ta projection
to support HMC and heatbath
2015-06-10 11:24:14 +01:00
Azusa Yamaguchi 2f4a0c5de4 Successful generation of general SU N generators
This class will move into a utils class and gain exponentiation and ta projection
to support HMC and heatbath
2015-06-10 11:24:14 +01:00
Azusa Yamaguchi 8cf34ebbff Successful generation of general SU N generators
This class will move into a utils class and gain exponentiation and ta projection
to support HMC and heatbath
2015-06-10 11:24:14 +01:00
neo f3dd829459 Adding several iMatrix utilities 2015-06-10 14:16:33 +09:00
neo 965a92ce40 Adding several iMatrix utilities 2015-06-10 14:16:33 +09:00
neo bb4a916767 Adding several iMatrix utilities 2015-06-10 14:16:33 +09:00
Peter Boyle e79a57b423 Merge branch 'master' of https://github.com/paboyle/Grid
Not sure what changed in master
2015-06-09 22:51:10 +01:00
Peter Boyle 1118c42fcc Merge branch 'master' of https://github.com/paboyle/Grid
Not sure what changed in master
2015-06-09 22:51:10 +01:00
Peter Boyle 02144fb50b Merge branch 'master' of https://github.com/paboyle/Grid
Not sure what changed in master
2015-06-09 22:51:10 +01:00
Peter Boyle 5a53086e41 Solver converges 2015-06-09 22:51:02 +01:00
Peter Boyle 62cb914488 Solver converges 2015-06-09 22:51:02 +01:00
Peter Boyle 7d6be625fa Solver converges 2015-06-09 22:51:02 +01:00
Peter Boyle c4f204f440 Solver converges 2015-06-09 22:50:45 +01:00
Peter Boyle d50cf43e5e Solver converges 2015-06-09 22:50:45 +01:00
Peter Boyle 3f8c7be6f8 Solver converges 2015-06-09 22:50:45 +01:00
Peter Boyle 2022a7205c Remove extra layers of checks now it works 2015-06-09 22:43:41 +01:00
Peter Boyle 60a96e3d0d Remove extra layers of checks now it works 2015-06-09 22:43:41 +01:00
Peter Boyle 0784bbc4bf Remove extra layers of checks now it works 2015-06-09 22:43:41 +01:00
Peter Boyle 4357f5acdc Some extra tests 2015-06-09 22:43:10 +01:00
Peter Boyle 850054d162 Some extra tests 2015-06-09 22:43:10 +01:00
Peter Boyle 516f1a6316 Some extra tests 2015-06-09 22:43:10 +01:00
Peter Boyle 4963f7356a 5d OpDir direction interface refers to the 5d dims, not 4d to present a
sensible and consistent external interface.
2015-06-09 22:41:59 +01:00
Peter Boyle 6abbd35d81 5d OpDir direction interface refers to the 5d dims, not 4d to present a
sensible and consistent external interface.
2015-06-09 22:41:59 +01:00
Peter Boyle b92060f511 5d OpDir direction interface refers to the 5d dims, not 4d to present a
sensible and consistent external interface.
2015-06-09 22:41:59 +01:00
Peter Boyle 3a52bc4ce1 G5R5 update 2015-06-09 22:41:27 +01:00
Peter Boyle 971d224983 G5R5 update 2015-06-09 22:41:27 +01:00
Peter Boyle 3546dcac1a G5R5 update 2015-06-09 22:41:27 +01:00
Peter Boyle 708d4f7533 g5 and g5R5 hermitian are now differentiated 2015-06-09 22:40:58 +01:00
Peter Boyle c7152c520a g5 and g5R5 hermitian are now differentiated 2015-06-09 22:40:58 +01:00
Peter Boyle c133974d67 g5 and g5R5 hermitian are now differentiated 2015-06-09 22:40:58 +01:00
Peter Boyle 61770d4472 Files update 2015-06-09 22:40:12 +01:00
Peter Boyle 930463a226 Files update 2015-06-09 22:40:12 +01:00
Peter Boyle c86c15f95f Files update 2015-06-09 22:40:12 +01:00
Peter Boyle a57ca0bbe7 Prettier reporting 2015-06-09 22:39:37 +01:00
Peter Boyle 2e43d8fe92 Prettier reporting 2015-06-09 22:39:37 +01:00
Peter Boyle accd21dec7 Prettier reporting 2015-06-09 22:39:37 +01:00
Peter Boyle 1f2498918d Got this sorted with the promote working in a test 2015-06-09 22:39:13 +01:00
Peter Boyle 4a10540365 Got this sorted with the promote working in a test 2015-06-09 22:39:13 +01:00
Peter Boyle 7766cc96c1 Got this sorted with the promote working in a test 2015-06-09 22:39:13 +01:00
Peter Boyle 25bfff370a Starting to use 2015-06-09 22:38:13 +01:00
Peter Boyle e19391ef7a Starting to use 2015-06-09 22:38:13 +01:00
Peter Boyle 6fb36c8a51 Starting to use 2015-06-09 22:38:13 +01:00
Peter Boyle 6403e3021f Debugged finally. A silly mistake in permute cost me a day of debug. 2015-06-09 22:37:21 +01:00
Peter Boyle a5b75a095c Debugged finally. A silly mistake in permute cost me a day of debug. 2015-06-09 22:37:21 +01:00
Peter Boyle 2e6986892a Debugged finally. A silly mistake in permute cost me a day of debug. 2015-06-09 22:37:21 +01:00
Peter Boyle 4d11fc0330 silly change 2015-06-09 22:36:48 +01:00
Peter Boyle f0530e9f52 silly change 2015-06-09 22:36:48 +01:00
Peter Boyle eeeaac7147 silly change 2015-06-09 22:36:48 +01:00
neo f8eb862073 Merge remote-tracking branch 'upstream/master' 2015-06-09 19:01:07 +09:00
neo 61b85a0670 Merge remote-tracking branch 'upstream/master' 2015-06-09 19:01:07 +09:00
neo ecf3bae150 Merge remote-tracking branch 'upstream/master' 2015-06-09 19:01:07 +09:00
neo 99ace0a89c Adding support for iMatrix exponentiation 2015-06-09 18:59:45 +09:00
neo d60cfe31a7 Adding support for iMatrix exponentiation 2015-06-09 18:59:45 +09:00
neo e80012896a Adding support for iMatrix exponentiation 2015-06-09 18:59:45 +09:00
Peter Boyle 64e2f36d40 Merge pull request #14 from mspraggs/master
Removed std::string calls from NerscIO map indexing
2015-06-09 10:31:52 +01:00
Peter Boyle e87554296c Merge pull request #14 from mspraggs/master
Removed std::string calls from NerscIO map indexing
2015-06-09 10:31:52 +01:00
Peter Boyle 645120a400 Merge pull request #14 from mspraggs/master
Removed std::string calls from NerscIO map indexing
2015-06-09 10:31:52 +01:00
Peter Boyle e8b43944e7 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
2015-06-09 10:27:10 +01:00
Peter Boyle d8ddec86f7 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
2015-06-09 10:27:10 +01:00
Peter Boyle a73a1c1bc1 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
2015-06-09 10:27:10 +01:00
Peter Boyle 1048304f30 Some unary ops and coarse grid support 2015-06-09 10:26:19 +01:00
Peter Boyle 506dfd1517 Some unary ops and coarse grid support 2015-06-09 10:26:19 +01:00
Peter Boyle 1e5b015ee3 Some unary ops and coarse grid support 2015-06-09 10:26:19 +01:00
Peter Boyle f19518d564 Unary ops and coarse grid support 2015-06-09 10:25:29 +01:00
Peter Boyle 9269126fba Unary ops and coarse grid support 2015-06-09 10:25:29 +01:00
Peter Boyle 21e41638e5 Unary ops and coarse grid support 2015-06-09 10:25:29 +01:00
neo 744ac33e8b Experimental support for ARM 2015-06-09 15:46:21 +09:00
neo 6b8fe04054 Experimental support for ARM 2015-06-09 15:46:21 +09:00
neo 48bf4878c1 Experimental support for ARM 2015-06-09 15:46:21 +09:00
Peter Boyle a6ac2abb64 No compile fix after merge 2015-06-08 12:12:13 +01:00
Peter Boyle 78607950ac No compile fix after merge 2015-06-08 12:12:13 +01:00
Peter Boyle 4ae47a529e No compile fix after merge 2015-06-08 12:12:13 +01:00
Peter Boyle 98b10f587e Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
	tests/Make.inc
	tests/Test_remez.cc
2015-06-08 12:08:09 +01:00
Peter Boyle 2f4a4489ce Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
	tests/Make.inc
	tests/Test_remez.cc
2015-06-08 12:08:09 +01:00
Peter Boyle 3111f50f2f Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Make.inc
	tests/Make.inc
	tests/Test_remez.cc
2015-06-08 12:08:09 +01:00
Peter Boyle b0873e7ed2 Conjugate residual algorithm; some more unary functions 2015-06-08 12:04:59 +01:00
Peter Boyle 9e7035f5dc Conjugate residual algorithm; some more unary functions 2015-06-08 12:04:59 +01:00
Peter Boyle d6f1ddf99c Conjugate residual algorithm; some more unary functions 2015-06-08 12:04:59 +01:00
Peter Boyle 769ef7b0f5 sqrt 2015-06-08 12:03:36 +01:00
Peter Boyle 690397e7c6 sqrt 2015-06-08 12:03:36 +01:00
Peter Boyle 0cf2037ae1 sqrt 2015-06-08 12:03:36 +01:00
Peter Boyle 42c22d4cae Prep for multigrid 2015-06-08 12:02:53 +01:00
Peter Boyle 5bdf89e3f0 Prep for multigrid 2015-06-08 12:02:53 +01:00
Peter Boyle 5a3bc5250e Prep for multigrid 2015-06-08 12:02:53 +01:00
Peter Boyle aad51ffe3a Prep for mgrid 2015-06-08 12:02:26 +01:00
Peter Boyle ea583e2e53 Prep for mgrid 2015-06-08 12:02:26 +01:00
Peter Boyle 680abafe5d Prep for mgrid 2015-06-08 12:02:26 +01:00
Azusa Yamaguchi a8b9109cc8 multishift conjugate gradient added and a strong test: take a diagonal
but non-identity matrix
l1 0  0  0 ....
0  l2 0  0 ....
0  0  l3 0 ...
.  .   .
.  .   .
.  .   .

And apply the multishift CG to it. Sum the poles and residues.
Insist that this be the same as the exactly taken square root
where l1,l2,l3 >= 0.
2015-06-08 11:52:44 +01:00
Azusa Yamaguchi 54aec05989 multishift conjugate gradient added and a strong test: take a diagonal
but non-identity matrix
l1 0  0  0 ....
0  l2 0  0 ....
0  0  l3 0 ...
.  .   .
.  .   .
.  .   .

And apply the multishift CG to it. Sum the poles and residues.
Insist that this be the same as the exactly taken square root
where l1,l2,l3 >= 0.
2015-06-08 11:52:44 +01:00
Azusa Yamaguchi 8688ff8b3a multishift conjugate gradient added and a strong test: take a diagonal
but non-identity matrix
l1 0  0  0 ....
0  l2 0  0 ....
0  0  l3 0 ...
.  .   .
.  .   .
.  .   .

And apply the multishift CG to it. Sum the poles and residues.
Insist that this be the same as the exactly taken square root
where l1,l2,l3 >= 0.
2015-06-08 11:52:44 +01:00
Matt Spraggs e2e076d307 Removed std::string calls from NerscIO map indexing 2015-06-07 17:06:25 +01:00
Matt Spraggs 7537a2751d Removed std::string calls from NerscIO map indexing 2015-06-07 17:06:25 +01:00
Matt Spraggs cff84f09ba Removed std::string calls from NerscIO map indexing 2015-06-07 17:06:25 +01:00
Peter Boyle a263e78f8d Conjugate residual added 2015-06-05 18:16:25 +01:00
Peter Boyle 50e8b2160e Conjugate residual added 2015-06-05 18:16:25 +01:00
Peter Boyle 1a05882d7c Conjugate residual added 2015-06-05 18:16:25 +01:00
Azusa Yamaguchi 5f33cc3a95 Compile fix 2015-06-05 10:29:42 +01:00
Azusa Yamaguchi ad18df92d0 Compile fix 2015-06-05 10:29:42 +01:00
Azusa Yamaguchi 351c2905f5 Compile fix 2015-06-05 10:29:42 +01:00
Azusa Yamaguchi bb36139fc2 Fix 2015-06-05 10:21:28 +01:00
Azusa Yamaguchi d86c248d05 Fix 2015-06-05 10:21:28 +01:00
Azusa Yamaguchi 33803a3dee Fix 2015-06-05 10:21:28 +01:00
Azusa Yamaguchi cc5f518b21 Endif terminated 2015-06-05 10:19:42 +01:00
Azusa Yamaguchi 1d7f9567ee Endif terminated 2015-06-05 10:19:42 +01:00
Azusa Yamaguchi ee3031c914 Endif terminated 2015-06-05 10:19:42 +01:00
Peter Boyle 337b6e83af Rework the linop support to get different forms of red black schur solver
Moo on diag, or MooInv Moe MeeInv Meo
2015-06-05 10:17:10 +01:00
Peter Boyle f3e60a9feb Rework the linop support to get different forms of red black schur solver
Moo on diag, or MooInv Moe MeeInv Meo
2015-06-05 10:17:10 +01:00
Peter Boyle 7f6304fac3 Rework the linop support to get different forms of red black schur solver
Moo on diag, or MooInv Moe MeeInv Meo
2015-06-05 10:17:10 +01:00
Azusa Yamaguchi 8f9627520b merge to the head 2015-06-05 10:15:31 +01:00
Azusa Yamaguchi a8b86e747b merge to the head 2015-06-05 10:15:31 +01:00
Azusa Yamaguchi 58a4f32298 merge to the head 2015-06-05 10:15:31 +01:00
Azusa Yamaguchi db84b19443 Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-05 10:04:46 +01:00
Azusa Yamaguchi c05fe2706c Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-05 10:04:46 +01:00
Azusa Yamaguchi ac504bea6c Merge branch 'master' of https://github.com/paboyle/Grid 2015-06-05 10:04:46 +01:00
Azusa Yamaguchi 7d984b9547 Adding some wilson loop support 2015-06-05 10:02:36 +01:00
Azusa Yamaguchi 58cdcbb5e4 Adding some wilson loop support 2015-06-05 10:02:36 +01:00
Azusa Yamaguchi 94ea84d83f Adding some wilson loop support 2015-06-05 10:02:36 +01:00
Peter Boyle f22170ad49 comment improvement 2015-06-05 05:31:27 +01:00
Peter Boyle cadd4310f6 comment improvement 2015-06-05 05:31:27 +01:00
Peter Boyle b1b412f63c comment improvement 2015-06-05 05:31:27 +01:00
Peter Boyle 7678fbd30d PartialFraction Hw with Zolo and Tanh approx converged under CG and passed EO breakdown
and hermiticity tests.
2015-06-04 13:28:37 +01:00
Peter Boyle b9e9777912 PartialFraction Hw with Zolo and Tanh approx converged under CG and passed EO breakdown
and hermiticity tests.
2015-06-04 13:28:37 +01:00
Peter Boyle 63a61fcc2a PartialFraction Hw with Zolo and Tanh approx converged under CG and passed EO breakdown
and hermiticity tests.
2015-06-04 13:28:37 +01:00
Peter Boyle 1e4eca8321 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/tensors/Tensor_trace.h
2015-06-04 12:17:00 +01:00
Peter Boyle 5b1ba66604 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/tensors/Tensor_trace.h
2015-06-04 12:17:00 +01:00
Peter Boyle 21d193b1c8 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/tensors/Tensor_trace.h
2015-06-04 12:17:00 +01:00
Peter Boyle 5aa8bf77db Mistaken commit that prevented compile ; fixing 2015-06-04 12:01:51 +01:00
Peter Boyle 51ec6b722e Mistaken commit that prevented compile ; fixing 2015-06-04 12:01:51 +01:00
Peter Boyle f6dc74501b Mistaken commit that prevented compile ; fixing 2015-06-04 12:01:51 +01:00
neo 7e47b0c6eb Corrected small compilation bug in traceIndex for iVectors 2015-06-04 19:01:43 +09:00
neo 769b27b7f2 Corrected small compilation bug in traceIndex for iVectors 2015-06-04 19:01:43 +09:00
neo b306730a57 Corrected small compilation bug in traceIndex for iVectors 2015-06-04 19:01:43 +09:00
neo 41e88c232b Merge remote-tracking branch 'upstream/master' 2015-06-04 18:30:29 +09:00
neo 4dcc5dab93 Merge remote-tracking branch 'upstream/master' 2015-06-04 18:30:29 +09:00
neo b3f871717f Merge remote-tracking branch 'upstream/master' 2015-06-04 18:30:29 +09:00
neo 949b6a7afa Added support for Ta to Lattice types 2015-06-04 18:29:55 +09:00
neo 7fc54fc904 Added support for Ta to Lattice types 2015-06-04 18:29:55 +09:00
neo 4b114fce3d Added support for Ta to Lattice types 2015-06-04 18:29:55 +09:00
neo bb73569fd6 Addedd Ta functionality to the tensor types
Merge remote-tracking branch 'upstream/master'

Conflicts:
	configure
2015-06-04 18:11:32 +09:00
neo b9edadc53e Addedd Ta functionality to the tensor types
Merge remote-tracking branch 'upstream/master'

Conflicts:
	configure
2015-06-04 18:11:32 +09:00
neo 3055d2cf2c Addedd Ta functionality to the tensor types
Merge remote-tracking branch 'upstream/master'

Conflicts:
	configure
2015-06-04 18:11:32 +09:00
Peter Boyle 54c082dc35 Allow traceIndex on a different index to distribute replicated across a vector index 2015-06-04 09:41:16 +01:00
Peter Boyle 201d6d097d Allow traceIndex on a different index to distribute replicated across a vector index 2015-06-04 09:41:16 +01:00
Peter Boyle 4a03054ef4 Allow traceIndex on a different index to distribute replicated across a vector index 2015-06-04 09:41:16 +01:00
neo c6f2ee91f6 Small modification to the configure files 2015-06-04 14:17:58 +09:00
neo ff9340d4d5 Small modification to the configure files 2015-06-04 14:17:58 +09:00
neo 5a5ee83d28 Small modification to the configure files 2015-06-04 14:17:58 +09:00
Peter Boyle 9c1ab656d4 CG Tests work for wilson kernel cont frac zolo and tanh 2015-06-04 06:02:00 +01:00
Peter Boyle 37aa74dfd2 CG Tests work for wilson kernel cont frac zolo and tanh 2015-06-04 06:02:00 +01:00
Peter Boyle dd1f5dd966 CG Tests work for wilson kernel cont frac zolo and tanh 2015-06-04 06:02:00 +01:00
Peter Boyle 1ad689e4d5 Implementing the Hw kernel continued fraction 5d overlap cases 2015-06-04 00:23:16 +01:00
Peter Boyle c327019574 Implementing the Hw kernel continued fraction 5d overlap cases 2015-06-04 00:23:16 +01:00
Peter Boyle a088a65656 Implementing the Hw kernel continued fraction 5d overlap cases 2015-06-04 00:23:16 +01:00
Peter Boyle 802e94e9ca First pass at continued fraction; solver and even odd decomposition tests pass.
Have to make ContFrac class virtual and derive end non-abstract actions for the particular
cases.
2015-06-04 00:00:45 +01:00
Peter Boyle 50bd293527 First pass at continued fraction; solver and even odd decomposition tests pass.
Have to make ContFrac class virtual and derive end non-abstract actions for the particular
cases.
2015-06-04 00:00:45 +01:00
Peter Boyle 03f4fde468 First pass at continued fraction; solver and even odd decomposition tests pass.
Have to make ContFrac class virtual and derive end non-abstract actions for the particular
cases.
2015-06-04 00:00:45 +01:00
Peter Boyle e68d087010 Assist for generating file lists contained in Make.inc files for convenience when things are added 2015-06-03 13:07:00 +01:00
Peter Boyle eaa3e6aaf6 Assist for generating file lists contained in Make.inc files for convenience when things are added 2015-06-03 13:07:00 +01:00
Peter Boyle f07a17ba2c Assist for generating file lists contained in Make.inc files for convenience when things are added 2015-06-03 13:07:00 +01:00
Peter Boyle 3254bb2c8e Make.inc needed in repo 2015-06-03 12:49:36 +01:00
Peter Boyle 4ef11d96e9 Make.inc needed in repo 2015-06-03 12:49:36 +01:00
Peter Boyle 3cfea5a09f Make.inc needed in repo 2015-06-03 12:49:36 +01:00
Peter Boyle 54b56959f5 Convenience script to build the list of headers and .cc files in the library 2015-06-03 12:47:46 +01:00
Peter Boyle 98dcb6831b Convenience script to build the list of headers and .cc files in the library 2015-06-03 12:47:46 +01:00
Peter Boyle a97954230d Convenience script to build the list of headers and .cc files in the library 2015-06-03 12:47:46 +01:00
Peter Boyle f9b070d64d Reorganise of file naming 2015-06-03 12:47:05 +01:00
Peter Boyle 4bcc319e11 Reorganise of file naming 2015-06-03 12:47:05 +01:00
Peter Boyle 1d0df449e8 Reorganise of file naming 2015-06-03 12:47:05 +01:00
Peter Boyle 6cb38dc5dc Overlap Wilson Cayley tanh & zolo 2015-06-03 11:26:54 +01:00
Peter Boyle 8fe3d4f971 Overlap Wilson Cayley tanh & zolo 2015-06-03 11:26:54 +01:00
Peter Boyle a3b599ae30 Overlap Wilson Cayley tanh & zolo 2015-06-03 11:26:54 +01:00
Peter Boyle 2b083ca987 CG test written and passes i.e. converges with small true residual
in RedBlack MpcDagMpc, Unprec MdagM and Schur red black solver for
each of.

DomainWallFermion
MobiusFermion
MobiusZolotarevFermion
ScaledShamirFermion
ScaledShamirZolotarevFermion
2015-06-03 10:54:03 +01:00
Peter Boyle 26e9b04fab CG test written and passes i.e. converges with small true residual
in RedBlack MpcDagMpc, Unprec MdagM and Schur red black solver for
each of.

DomainWallFermion
MobiusFermion
MobiusZolotarevFermion
ScaledShamirFermion
ScaledShamirZolotarevFermion
2015-06-03 10:54:03 +01:00
Peter Boyle 84b5c7217d CG test written and passes i.e. converges with small true residual
in RedBlack MpcDagMpc, Unprec MdagM and Schur red black solver for
each of.

DomainWallFermion
MobiusFermion
MobiusZolotarevFermion
ScaledShamirFermion
ScaledShamirZolotarevFermion
2015-06-03 10:54:03 +01:00
Peter Boyle c659c76053 Scaled Shamir and Scaled Shamir Zolotarev aliases for special cases of Mobius. 2015-06-03 09:51:06 +01:00
Peter Boyle 343d039b37 Scaled Shamir and Scaled Shamir Zolotarev aliases for special cases of Mobius. 2015-06-03 09:51:06 +01:00
Peter Boyle 260011670e Scaled Shamir and Scaled Shamir Zolotarev aliases for special cases of Mobius. 2015-06-03 09:51:06 +01:00
Peter Boyle 68e26140ee Mobius Caley form, Mobius Zolotarev operators. Pass Even Odd vs unprec test and hermiticity checks
in tests/Grid_any_evenodd.cc; will work on inversion tests shortly.
2015-06-03 09:36:26 +01:00
Peter Boyle 5916386242 Mobius Caley form, Mobius Zolotarev operators. Pass Even Odd vs unprec test and hermiticity checks
in tests/Grid_any_evenodd.cc; will work on inversion tests shortly.
2015-06-03 09:36:26 +01:00
Peter Boyle 1fcacef239 Mobius Caley form, Mobius Zolotarev operators. Pass Even Odd vs unprec test and hermiticity checks
in tests/Grid_any_evenodd.cc; will work on inversion tests shortly.
2015-06-03 09:36:26 +01:00
Peter Boyle 494d2b8b61 Reorg; moving prec/unprec/schur CG for Wilson and DWF into tests as these are really tests and not benchmarks
(no performance reports, only convergence test).
2015-06-02 17:25:26 +01:00
Peter Boyle 35fdba81dd Reorg; moving prec/unprec/schur CG for Wilson and DWF into tests as these are really tests and not benchmarks
(no performance reports, only convergence test).
2015-06-02 17:25:26 +01:00
Peter Boyle 69f4d58381 Reorg; moving prec/unprec/schur CG for Wilson and DWF into tests as these are really tests and not benchmarks
(no performance reports, only convergence test).
2015-06-02 17:25:26 +01:00
Peter Boyle 0bc004de7c Domain wall fermions now invert ; have the basis set up for
Tanh/Zolo * (Cayley/PartFrac/ContFrac) * (Mobius/Shamir/Wilson)
Approx        Representation               Kernel.

All are done with space-time taking part in checkerboarding, Ls uncheckerboarded

Have only so far tested the Domain Wall limit of mobius, and at that only checked
that it
i)  Inverts
ii) 5dim DW == Ls copies of 4dim D2
iii) MeeInv Mee == 1
iv) Meo+Mee+Moe+Moo == M unprec.
v) MpcDagMpc is hermitan
vi) Mdag is the adjoint of M between stochastic vectors.

That said, the RB schur solve, RB MpcDagMpc solve, Unprec solve
all converge and the true residual becomes small; so pretty good tests.
2015-06-02 16:57:12 +01:00
Peter Boyle 2583570e17 Domain wall fermions now invert ; have the basis set up for
Tanh/Zolo * (Cayley/PartFrac/ContFrac) * (Mobius/Shamir/Wilson)
Approx        Representation               Kernel.

All are done with space-time taking part in checkerboarding, Ls uncheckerboarded

Have only so far tested the Domain Wall limit of mobius, and at that only checked
that it
i)  Inverts
ii) 5dim DW == Ls copies of 4dim D2
iii) MeeInv Mee == 1
iv) Meo+Mee+Moe+Moo == M unprec.
v) MpcDagMpc is hermitan
vi) Mdag is the adjoint of M between stochastic vectors.

That said, the RB schur solve, RB MpcDagMpc solve, Unprec solve
all converge and the true residual becomes small; so pretty good tests.
2015-06-02 16:57:12 +01:00
Peter Boyle 3845f267cb Domain wall fermions now invert ; have the basis set up for
Tanh/Zolo * (Cayley/PartFrac/ContFrac) * (Mobius/Shamir/Wilson)
Approx        Representation               Kernel.

All are done with space-time taking part in checkerboarding, Ls uncheckerboarded

Have only so far tested the Domain Wall limit of mobius, and at that only checked
that it
i)  Inverts
ii) 5dim DW == Ls copies of 4dim D2
iii) MeeInv Mee == 1
iv) Meo+Mee+Moe+Moo == M unprec.
v) MpcDagMpc is hermitan
vi) Mdag is the adjoint of M between stochastic vectors.

That said, the RB schur solve, RB MpcDagMpc solve, Unprec solve
all converge and the true residual becomes small; so pretty good tests.
2015-06-02 16:57:12 +01:00
Azusa Yamaguchi 8f87950dc1 FIx miistake 2015-06-01 12:26:20 +01:00
Azusa Yamaguchi 8bd9fb4427 FIx miistake 2015-06-01 12:26:20 +01:00
Azusa Yamaguchi c851d0e705 FIx miistake 2015-06-01 12:26:20 +01:00
Azusa Yamaguchi 00bf7f4d42 Const safety 2015-06-01 12:25:59 +01:00
Azusa Yamaguchi 4c617c3643 Const safety 2015-06-01 12:25:59 +01:00
Azusa Yamaguchi b00a40dd65 Const safety 2015-06-01 12:25:59 +01:00
Azusa Yamaguchi eb28a64c3c No compile fix on mpi target 2015-05-31 22:50:03 +01:00
Azusa Yamaguchi 9ea64767b0 No compile fix on mpi target 2015-05-31 22:50:03 +01:00
Azusa Yamaguchi 12c2562b96 No compile fix on mpi target 2015-05-31 22:50:03 +01:00
azusayamaguchi 328aa9ae49 Bug in Makefile.am fixed 2015-05-31 18:50:08 +01:00
azusayamaguchi ce8c7a77b6 Bug in Makefile.am fixed 2015-05-31 18:50:08 +01:00
azusayamaguchi f2c70804ca Bug in Makefile.am fixed 2015-05-31 18:50:08 +01:00
Peter Boyle 6f725748ed Updated line counter 2015-05-31 15:11:09 +01:00
Peter Boyle 8272e15bd6 Updated line counter 2015-05-31 15:11:09 +01:00
Peter Boyle 46d1bae46a Updated line counter 2015-05-31 15:11:09 +01:00
Peter Boyle 66d997e031 Large scale change to support 5d fermion formulations.
Have 5d replicated wilson with 4d gauge working and matrix regressing
to Ls copies of wilson.
2015-05-31 15:09:02 +01:00
Peter Boyle a75b6f6e78 Large scale change to support 5d fermion formulations.
Have 5d replicated wilson with 4d gauge working and matrix regressing
to Ls copies of wilson.
2015-05-31 15:09:02 +01:00
Peter Boyle 5644ab1e19 Large scale change to support 5d fermion formulations.
Have 5d replicated wilson with 4d gauge working and matrix regressing
to Ls copies of wilson.
2015-05-31 15:09:02 +01:00
Peter Boyle 8c357dca8b Integer wrap problem fixed. 2015-05-29 14:11:34 +01:00
Peter Boyle 9cfc180334 Integer wrap problem fixed. 2015-05-29 14:11:34 +01:00
Peter Boyle 59db857ad1 Integer wrap problem fixed. 2015-05-29 14:11:34 +01:00
neo 661c7e3e37 Merge remote-tracking branch 'upstream/master' 2015-05-29 11:41:39 +09:00
neo 575e6001f3 Merge remote-tracking branch 'upstream/master' 2015-05-29 11:41:39 +09:00
neo 727bc32150 Merge remote-tracking branch 'upstream/master' 2015-05-29 11:41:39 +09:00
neo 96ad352741 Some modifications to the configure to check SIMD support 2015-05-29 11:41:02 +09:00
neo 4403e117a7 Some modifications to the configure to check SIMD support 2015-05-29 11:41:02 +09:00
neo f41e4e8b1b Some modifications to the configure to check SIMD support 2015-05-29 11:41:02 +09:00
Peter Boyle 62dccb3247 Weak scale the benchmarks automatically. 2015-05-28 13:47:01 +01:00
Peter Boyle 445e38acf6 Weak scale the benchmarks automatically. 2015-05-28 13:47:01 +01:00
Peter Boyle 67fa5691e5 Weak scale the benchmarks automatically. 2015-05-28 13:47:01 +01:00
Peter Boyle c0c1ebe757 Works now with Clang-avx, Clang-sse and ICPC-avx, ICPC-sse 2015-05-28 11:35:43 +01:00
Peter Boyle a5c3424cfb Works now with Clang-avx, Clang-sse and ICPC-avx, ICPC-sse 2015-05-28 11:35:43 +01:00
Peter Boyle 62a7ca462f Works now with Clang-avx, Clang-sse and ICPC-avx, ICPC-sse 2015-05-28 11:35:43 +01:00
Peter Boyle bd81ac0f17 Improving the reduction to go through our on permute.
Must also do this for avx512
2015-05-27 16:07:17 +01:00
Peter Boyle e8be96bfe7 Improving the reduction to go through our on permute.
Must also do this for avx512
2015-05-27 16:07:17 +01:00
Peter Boyle b72ca15bd2 Improving the reduction to go through our on permute.
Must also do this for avx512
2015-05-27 16:07:17 +01:00
neo d8b05e001d Check at configure time if CPU supports the requested SIMD optimization 2015-05-27 18:30:11 +09:00
neo be66fdcfab Check at configure time if CPU supports the requested SIMD optimization 2015-05-27 18:30:11 +09:00
neo 19bd6f103a Check at configure time if CPU supports the requested SIMD optimization 2015-05-27 18:30:11 +09:00
neo 9fd6506d1f Included Gpermute in the new Grid_simd.h file style.
Now tested for SSE4. OK
2015-05-27 12:11:44 +09:00
neo 28ac219d81 Included Gpermute in the new Grid_simd.h file style.
Now tested for SSE4. OK
2015-05-27 12:11:44 +09:00
neo 64753ea633 Included Gpermute in the new Grid_simd.h file style.
Now tested for SSE4. OK
2015-05-27 12:11:44 +09:00
neo 75442e48ce Added a .gitignore file to eliminate autoconf files from commits 2015-05-27 11:10:51 +09:00
neo 4e3f4104ab Added a .gitignore file to eliminate autoconf files from commits 2015-05-27 11:10:51 +09:00
neo 3cb34af82c Added a .gitignore file to eliminate autoconf files from commits 2015-05-27 11:10:51 +09:00
Guido Cossu 26ec41288d Corrected AVX regression error. Tested. 2015-05-27 10:49:33 +09:00
Guido Cossu 2ccbff6c6c Corrected AVX regression error. Tested. 2015-05-27 10:49:33 +09:00
Guido Cossu 8abf6403d5 Corrected AVX regression error. Tested. 2015-05-27 10:49:33 +09:00
neo 13707e0808 Merge remote-tracking branch 'upstream/master'
Conflicts:
	Makefile.in
2015-05-27 10:41:33 +09:00
neo 9344d41ac5 Merge remote-tracking branch 'upstream/master'
Conflicts:
	Makefile.in
2015-05-27 10:41:33 +09:00
neo b99f2279c3 Merge remote-tracking branch 'upstream/master'
Conflicts:
	Makefile.in
2015-05-27 10:41:33 +09:00
neo 12ae11ef62 Adding support for doxygen generation 2015-05-27 10:34:56 +09:00
neo 538bc41bbb Adding support for doxygen generation 2015-05-27 10:34:56 +09:00
neo da46b56e85 Adding support for doxygen generation 2015-05-27 10:34:56 +09:00
Peter Boyle e468d75286 Auto gen files should never have been committed, but making everyone run
aclocal, automake, autoconf is a pain in the ass.
2015-05-26 22:20:40 +01:00
Peter Boyle b6a28f1de7 Auto gen files should never have been committed, but making everyone run
aclocal, automake, autoconf is a pain in the ass.
2015-05-26 22:20:40 +01:00
Peter Boyle 74f138c5e8 Auto gen files should never have been committed, but making everyone run
aclocal, automake, autoconf is a pain in the ass.
2015-05-26 22:20:40 +01:00
Peter Boyle 22d073eb2b Simd revert to Guido's commit. I edited concurrently and things went bad. 2015-05-26 22:20:09 +01:00
Peter Boyle 6d2e056187 Simd revert to Guido's commit. I edited concurrently and things went bad. 2015-05-26 22:20:09 +01:00
Peter Boyle ccd47011b9 Simd revert to Guido's commit. I edited concurrently and things went bad. 2015-05-26 22:20:09 +01:00
Peter Boyle ccf10a973a Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Grid_simd.h
2015-05-26 20:04:08 +01:00
Peter Boyle fb37b57c2d Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Grid_simd.h
2015-05-26 20:04:08 +01:00
Peter Boyle 48bb3ab4e7 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Grid_simd.h
2015-05-26 20:04:08 +01:00
Peter Boyle 6ef0096dc9 Strip out the dslash kernel implementation 2015-05-26 19:55:18 +01:00
Peter Boyle 5e72e4c0d9 Strip out the dslash kernel implementation 2015-05-26 19:55:18 +01:00
Peter Boyle bfb1cd36e2 Strip out the dslash kernel implementation 2015-05-26 19:55:18 +01:00
Peter Boyle 20100d0a40 Hand unrolled version of dslash in a separate class.
Useful to compare; raises Intel compiler from 9GFlop/s to 17.5 Gflops.
                   on ivybridge core. Raises Clang form 14.5 to 17.5
2015-05-26 19:54:03 +01:00
Peter Boyle a32ac287bb Hand unrolled version of dslash in a separate class.
Useful to compare; raises Intel compiler from 9GFlop/s to 17.5 Gflops.
                   on ivybridge core. Raises Clang form 14.5 to 17.5
2015-05-26 19:54:03 +01:00
Peter Boyle 840754dd42 Hand unrolled version of dslash in a separate class.
Useful to compare; raises Intel compiler from 9GFlop/s to 17.5 Gflops.
                   on ivybridge core. Raises Clang form 14.5 to 17.5
2015-05-26 19:54:03 +01:00
neo c04cad92ac More cleanup of Grid_simd.h 2015-05-26 13:54:34 +09:00
neo fb5d72973e More cleanup of Grid_simd.h 2015-05-26 13:54:34 +09:00
neo 500f6ed0c5 More cleanup of Grid_simd.h 2015-05-26 13:54:34 +09:00
neo aff978f60a Cleaning up simd files 2015-05-26 13:31:10 +09:00
neo 3f576830f9 Cleaning up simd files 2015-05-26 13:31:10 +09:00
neo 4dbaa389c8 Cleaning up simd files 2015-05-26 13:31:10 +09:00
neo 9ad6d0c65f Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/math/Grid_math_tensors.h
	lib/simd/Grid_vector_types.h
2015-05-26 13:14:06 +09:00
neo 257aa92421 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/math/Grid_math_tensors.h
	lib/simd/Grid_vector_types.h
2015-05-26 13:14:06 +09:00
neo 48cc816136 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/math/Grid_math_tensors.h
	lib/simd/Grid_vector_types.h
2015-05-26 13:14:06 +09:00
neo 377083e6ae checked performance of new vector libaries.
Added check for c++11 support on the configure.ac
2015-05-26 12:02:54 +09:00
neo ece86f717b checked performance of new vector libaries.
Added check for c++11 support on the configure.ac
2015-05-26 12:02:54 +09:00
neo 1a24801246 checked performance of new vector libaries.
Added check for c++11 support on the configure.ac
2015-05-26 12:02:54 +09:00
Peter Boyle c2ffb1a098 Makefile update 2015-05-25 14:43:08 +01:00
Peter Boyle 3a6ff2d7b8 Makefile update 2015-05-25 14:43:08 +01:00
Peter Boyle 37721572e7 Makefile update 2015-05-25 14:43:08 +01:00
Peter Boyle d7f5172860 Schur complement based red-black inversion working 2015-05-25 13:47:12 +01:00
Peter Boyle 2ae6214104 Schur complement based red-black inversion working 2015-05-25 13:47:12 +01:00
Peter Boyle 489b1b9633 Schur complement based red-black inversion working 2015-05-25 13:47:12 +01:00
Peter Boyle 201a110c51 Better EO support letting Schur solver work 2015-05-25 13:46:28 +01:00
Peter Boyle 1a9841a0f1 Better EO support letting Schur solver work 2015-05-25 13:46:28 +01:00
Peter Boyle ea3240ad55 Better EO support letting Schur solver work 2015-05-25 13:46:28 +01:00
Peter Boyle 1d4b1c48cc Most cosmetic 2015-05-25 13:45:32 +01:00
Peter Boyle 55685b7cf5 Most cosmetic 2015-05-25 13:45:32 +01:00
Peter Boyle 956e728b40 Most cosmetic 2015-05-25 13:45:32 +01:00
Peter Boyle f6cade41b4 Better checkerboard tracking. 2015-05-25 13:45:08 +01:00
Peter Boyle 3358a77c7a Better checkerboard tracking. 2015-05-25 13:45:08 +01:00
Peter Boyle 94d679c4e6 Better checkerboard tracking. 2015-05-25 13:45:08 +01:00
Peter Boyle 6e76f0c6cd move constants into red black 2015-05-25 13:44:35 +01:00
Peter Boyle bc947477f3 move constants into red black 2015-05-25 13:44:35 +01:00
Peter Boyle 616f871735 move constants into red black 2015-05-25 13:44:35 +01:00
Peter Boyle 55ad54e0ff Updates now schur red black solver working 2015-05-25 13:43:58 +01:00
Peter Boyle 29f72292ba Updates now schur red black solver working 2015-05-25 13:43:58 +01:00
Peter Boyle 624c0ac3ef Updates now schur red black solver working 2015-05-25 13:43:58 +01:00
Peter Boyle 00ee531005 Herm op 2015-05-25 13:42:36 +01:00
Peter Boyle 9b5633ff4f Herm op 2015-05-25 13:42:36 +01:00
Peter Boyle ac99832d21 Herm op 2015-05-25 13:42:36 +01:00
Peter Boyle ca30116144 red black fix 2015-05-25 13:42:12 +01:00
Peter Boyle 17a06af1ff red black fix 2015-05-25 13:42:12 +01:00
Peter Boyle d30c013721 red black fix 2015-05-25 13:42:12 +01:00
Peter Boyle 41ba13f951 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-23 09:36:08 +01:00
Peter Boyle c25016030c Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-23 09:36:08 +01:00
Peter Boyle 5cf285bce9 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-23 09:36:08 +01:00
Peter Boyle 31a40fa37f Added 2015-05-23 09:36:01 +01:00
Peter Boyle 2806273340 Added 2015-05-23 09:36:01 +01:00
Peter Boyle 613a73b1b6 Added 2015-05-23 09:36:01 +01:00
Peter Boyle 602248d5fe Extra targets 2015-05-23 09:35:37 +01:00
Peter Boyle 73ee36c48d Extra targets 2015-05-23 09:35:37 +01:00
Peter Boyle f681baa9cd Extra targets 2015-05-23 09:35:37 +01:00
Peter Boyle 2ba641b25e More targets 2015-05-23 09:34:50 +01:00
Peter Boyle b8fdb65fbf More targets 2015-05-23 09:34:50 +01:00
Peter Boyle d21411ead9 More targets 2015-05-23 09:34:50 +01:00
Peter Boyle 2d30e82dcb Improving even odd sector; lot of work and through required cleaning this 2015-05-23 09:34:16 +01:00
Peter Boyle 65f2e6b269 Improving even odd sector; lot of work and through required cleaning this 2015-05-23 09:34:16 +01:00
Peter Boyle 64fcbd0387 Improving even odd sector; lot of work and through required cleaning this 2015-05-23 09:34:16 +01:00
Peter Boyle 0b165afd9e Rely on default constructors 2015-05-23 09:33:42 +01:00
Peter Boyle d07a5c084d Rely on default constructors 2015-05-23 09:33:42 +01:00
Peter Boyle bef9bf0d38 Rely on default constructors 2015-05-23 09:33:42 +01:00
Peter Boyle 3954792f37 Better pragma use 2015-05-23 09:32:37 +01:00
Peter Boyle a2928321b6 Better pragma use 2015-05-23 09:32:37 +01:00
Peter Boyle eadfb5be67 Better pragma use 2015-05-23 09:32:37 +01:00
Peter Boyle 8c7b5f5d3b Cosmetic 2015-05-23 09:31:15 +01:00
Peter Boyle 764732944f Cosmetic 2015-05-23 09:31:15 +01:00
Peter Boyle 33737ef57a Cosmetic 2015-05-23 09:31:15 +01:00
Peter Boyle be8b4f89d6 Iterator required 2015-05-23 09:30:28 +01:00
Peter Boyle ae58a9ada2 Iterator required 2015-05-23 09:30:28 +01:00
Peter Boyle 32c3f16f95 Iterator required 2015-05-23 09:30:28 +01:00
neo 57feda4328 Completed implementation of new Grid_simd classes
Tested performance for SSE4, Ok.
AVX1/2, AVX512 yet untested
2015-05-22 17:33:15 +09:00
neo 1c862dc15b Completed implementation of new Grid_simd classes
Tested performance for SSE4, Ok.
AVX1/2, AVX512 yet untested
2015-05-22 17:33:15 +09:00
neo 9e29ac6549 Completed implementation of new Grid_simd classes
Tested performance for SSE4, Ok.
AVX1/2, AVX512 yet untested
2015-05-22 17:33:15 +09:00
Peter Boyle a11850d2fb Merge pull request #7 from coppolachan/master
Added full support for SSE4
2015-05-22 05:58:59 +01:00
Peter Boyle 96e5c5c6ca Merge pull request #7 from coppolachan/master
Added full support for SSE4
2015-05-22 05:58:59 +01:00
Peter Boyle 24c68a697b Merge pull request #7 from coppolachan/master
Added full support for SSE4
2015-05-22 05:58:59 +01:00
Peter Boyle e0cc5ba920 Streaming store option ifdef 2015-05-21 06:47:05 +01:00
Peter Boyle d8061afe24 Streaming store option ifdef 2015-05-21 06:47:05 +01:00
Peter Boyle 9601890549 Streaming store option ifdef 2015-05-21 06:47:05 +01:00
Peter Boyle 1b9ecbac3b Compile time select if we do the streaming store copy. Relies on Clang++ eliminating object copies,
and other compliers do not necessarily cope.
2015-05-21 06:39:00 +01:00
Peter Boyle 874b2eb32d Compile time select if we do the streaming store copy. Relies on Clang++ eliminating object copies,
and other compliers do not necessarily cope.
2015-05-21 06:39:00 +01:00
Peter Boyle 1559dd4adc Compile time select if we do the streaming store copy. Relies on Clang++ eliminating object copies,
and other compliers do not necessarily cope.
2015-05-21 06:39:00 +01:00
Peter Boyle ac0941be9a adding two routines containing only a single operation so I can easily see the assembly dump 2015-05-21 06:37:46 +01:00
Peter Boyle f1fb92fd01 adding two routines containing only a single operation so I can easily see the assembly dump 2015-05-21 06:37:46 +01:00
Peter Boyle 22bfbd0f8d adding two routines containing only a single operation so I can easily see the assembly dump 2015-05-21 06:37:46 +01:00
Peter Boyle fb159e1cff Minor change 2015-05-21 06:37:20 +01:00
Peter Boyle 3e1d1aff18 Minor change 2015-05-21 06:37:20 +01:00
Peter Boyle 3a441c3e94 Minor change 2015-05-21 06:37:20 +01:00
Peter Boyle 8bc0033326 useful to dump assembler 2015-05-21 06:36:47 +01:00
Peter Boyle c96af471ee useful to dump assembler 2015-05-21 06:36:47 +01:00
Peter Boyle d4ca8647dc useful to dump assembler 2015-05-21 06:36:47 +01:00
Peter Boyle db786fac13 Didn't like a print statement 2015-05-21 06:36:15 +01:00
Peter Boyle 57a01e6bbb Didn't like a print statement 2015-05-21 06:36:15 +01:00
Peter Boyle d0d41b8bce Didn't like a print statement 2015-05-21 06:36:15 +01:00
Peter Boyle 046485a7bb better comms benchmarking 2015-05-21 06:35:46 +01:00
Peter Boyle d806581666 better comms benchmarking 2015-05-21 06:35:46 +01:00
Peter Boyle 341096dce8 better comms benchmarking 2015-05-21 06:35:46 +01:00
Peter Boyle 9058135da0 Unroll pragma abstraction 2015-05-21 06:34:33 +01:00
Peter Boyle 35055ed5c1 Unroll pragma abstraction 2015-05-21 06:34:33 +01:00
Peter Boyle 34960ca50c Unroll pragma abstraction 2015-05-21 06:34:33 +01:00
neo f8d8958884 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/simd/Grid_vector_types.h
	tests/Makefile.am
2015-05-20 17:32:46 +09:00
neo 9098d7d0a3 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/simd/Grid_vector_types.h
	tests/Makefile.am
2015-05-20 17:32:46 +09:00
neo d03c4e5901 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/simd/Grid_vector_types.h
	tests/Makefile.am
2015-05-20 17:32:46 +09:00
neo e529210f43 Implemented all SSE4 functions.
A test code Grid_simd_new.cc has been created to test the new class.
Tests are all OK.
2015-05-20 17:22:40 +09:00
neo 3a3f54932a Implemented all SSE4 functions.
A test code Grid_simd_new.cc has been created to test the new class.
Tests are all OK.
2015-05-20 17:22:40 +09:00
neo cf7be0e461 Implemented all SSE4 functions.
A test code Grid_simd_new.cc has been created to test the new class.
Tests are all OK.
2015-05-20 17:22:40 +09:00
Peter Boyle 8fdff33b3a Merging in
Merge branch 'master' of https://github.com/paboyle/Grid
2015-05-19 21:30:13 +01:00
Peter Boyle dc4014668d Merging in
Merge branch 'master' of https://github.com/paboyle/Grid
2015-05-19 21:30:13 +01:00
Peter Boyle 221902a882 Merging in
Merge branch 'master' of https://github.com/paboyle/Grid
2015-05-19 21:30:13 +01:00
Peter Boyle 91ed085ca4 Build a simple kernel to compare intel compiler and clang in simple environment 2015-05-19 21:29:40 +01:00
Peter Boyle 3f57662cd0 Build a simple kernel to compare intel compiler and clang in simple environment 2015-05-19 21:29:40 +01:00
Peter Boyle d3931111fb Build a simple kernel to compare intel compiler and clang in simple environment 2015-05-19 21:29:40 +01:00
Peter Boyle efc0d1e0b9 Reworking to keep intel compiler happy 2015-05-19 21:29:07 +01:00
Peter Boyle b562b50196 Reworking to keep intel compiler happy 2015-05-19 21:29:07 +01:00
Peter Boyle a21036e69a Reworking to keep intel compiler happy 2015-05-19 21:29:07 +01:00
Peter Boyle 2d8b5a8191 Optimisation... 2015-05-19 15:50:47 +01:00
Peter Boyle 46ab8edf30 Optimisation... 2015-05-19 15:50:47 +01:00
Peter Boyle 8220794c44 Optimisation... 2015-05-19 15:50:47 +01:00
Peter Boyle b520694b00 Merge branch 'coppolachan-master' 2015-05-19 15:05:32 +01:00
Peter Boyle 5f0530b68a Merge branch 'coppolachan-master' 2015-05-19 15:05:32 +01:00
Peter Boyle 7571a6b021 Merge branch 'coppolachan-master' 2015-05-19 15:05:32 +01:00
Peter Boyle 3fe7275332 Merged
Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master

Conflicts:
	lib/simd/Grid_vector_types.h
2015-05-19 15:05:07 +01:00
Peter Boyle 3d66d00313 Merged
Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master

Conflicts:
	lib/simd/Grid_vector_types.h
2015-05-19 15:05:07 +01:00
Peter Boyle fde7f8d6b9 Merged
Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master

Conflicts:
	lib/simd/Grid_vector_types.h
2015-05-19 15:05:07 +01:00
azusayamaguchi ee8cf77071 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-19 14:55:26 +01:00
azusayamaguchi a4b3bc7714 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-19 14:55:26 +01:00
azusayamaguchi 2d2da8364f Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-19 14:55:26 +01:00
azusayamaguchi c8c74e591f Add messages to get the number of threads for openmp 2015-05-19 14:54:42 +01:00
azusayamaguchi 592cec72e2 Add messages to get the number of threads for openmp 2015-05-19 14:54:42 +01:00
azusayamaguchi 91f29d4a68 Add messages to get the number of threads for openmp 2015-05-19 14:54:42 +01:00
Peter Boyle a6e1ea216d Got unpreconditioned conjugate gradient to run and converge on a random (uniform random,
not even SU(3) for now) gauge field. Convergence history is correctly indepdendent of decomposition
on 1,2,4,8,16 mpi tasks.
Found a couple of simd bugs which required fixed and enhanced the Grid_simd.cc test suite.
Implemented the Mdag, M, MdagM, Meooe Mooee schur type stuff in the wilson dop.
2015-05-19 13:57:35 +01:00
Peter Boyle ffc00caea3 Got unpreconditioned conjugate gradient to run and converge on a random (uniform random,
not even SU(3) for now) gauge field. Convergence history is correctly indepdendent of decomposition
on 1,2,4,8,16 mpi tasks.
Found a couple of simd bugs which required fixed and enhanced the Grid_simd.cc test suite.
Implemented the Mdag, M, MdagM, Meooe Mooee schur type stuff in the wilson dop.
2015-05-19 13:57:35 +01:00
Peter Boyle 4dba8522a1 Got unpreconditioned conjugate gradient to run and converge on a random (uniform random,
not even SU(3) for now) gauge field. Convergence history is correctly indepdendent of decomposition
on 1,2,4,8,16 mpi tasks.
Found a couple of simd bugs which required fixed and enhanced the Grid_simd.cc test suite.
Implemented the Mdag, M, MdagM, Meooe Mooee schur type stuff in the wilson dop.
2015-05-19 13:57:35 +01:00
neo 7fb3221d47 Partial implementation of the vector types SIMD
Implementing SSE4 now
A systematic series of tests must be written.
2015-05-19 17:21:17 +09:00
neo b29caead32 Partial implementation of the vector types SIMD
Implementing SSE4 now
A systematic series of tests must be written.
2015-05-19 17:21:17 +09:00
neo 74e91cd925 Partial implementation of the vector types SIMD
Implementing SSE4 now
A systematic series of tests must be written.
2015-05-19 17:21:17 +09:00
neo 639fd05239 Added check of mpfr and gmp at configure time
It generates automatically the linker flags or complains if not found.
2015-05-19 13:54:55 +09:00
neo 4cadf11d1d Added check of mpfr and gmp at configure time
It generates automatically the linker flags or complains if not found.
2015-05-19 13:54:55 +09:00
neo baa382f055 Added check of mpfr and gmp at configure time
It generates automatically the linker flags or complains if not found.
2015-05-19 13:54:55 +09:00
neo d6887beead Merging with upstream 2015-05-19 13:36:03 +09:00
neo b5af3fbe45 Merging with upstream 2015-05-19 13:36:03 +09:00
neo 7ad705066d Merging with upstream 2015-05-19 13:36:03 +09:00
Peter Boyle 6f387b4916 Merge branch 'coppolachan-master' 2015-05-18 16:36:58 +01:00
Peter Boyle c7314e526e Merge branch 'coppolachan-master' 2015-05-18 16:36:58 +01:00
Peter Boyle 05d862782f Merge branch 'coppolachan-master' 2015-05-18 16:36:58 +01:00
Peter Boyle 9bfe0e63f4 lib/algorithms/approx/bigfloat.h 2015-05-18 16:35:48 +01:00
Peter Boyle f9a8377fe6 lib/algorithms/approx/bigfloat.h 2015-05-18 16:35:48 +01:00
Peter Boyle 3f17423d36 lib/algorithms/approx/bigfloat.h 2015-05-18 16:35:48 +01:00
Peter Boyle 30494bd96d Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master
Conflicts:
	lib/algorithms/approx/bigfloat.h
2015-05-18 16:34:21 +01:00
Peter Boyle cf9bbee256 Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master
Conflicts:
	lib/algorithms/approx/bigfloat.h
2015-05-18 16:34:21 +01:00
Peter Boyle 05f1419df4 Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master
Conflicts:
	lib/algorithms/approx/bigfloat.h
2015-05-18 16:34:21 +01:00
Peter Boyle 6f038a7f6d Convience function 2015-05-18 16:28:29 +01:00
Peter Boyle a19deba26c Convience function 2015-05-18 16:28:29 +01:00
Peter Boyle 0b3721502e Convience function 2015-05-18 16:28:29 +01:00
Peter Boyle 193fd5532f Remez tested 2015-05-18 12:09:25 +01:00
Peter Boyle 2843264bd8 Remez tested 2015-05-18 12:09:25 +01:00
Peter Boyle 17835c6f42 Remez tested 2015-05-18 12:09:25 +01:00
neo fa1dc5e448 Minor modification to the configure.ac
Enables silent rules (use make V=1 to override)
Prints a summary after configure is completed
2015-05-18 17:15:14 +09:00
neo 17e4e478cd Minor modification to the configure.ac
Enables silent rules (use make V=1 to override)
Prints a summary after configure is completed
2015-05-18 17:15:14 +09:00
neo 99aecf1f2e Minor modification to the configure.ac
Enables silent rules (use make V=1 to override)
Prints a summary after configure is completed
2015-05-18 17:15:14 +09:00
neo 6d2accba7b Corrected some compilation errors (zolotarev.h) and SSE4 vsplat and conj to make cshift test pass. 2015-05-18 16:48:14 +09:00
neo cee363e28c Corrected some compilation errors (zolotarev.h) and SSE4 vsplat and conj to make cshift test pass. 2015-05-18 16:48:14 +09:00
neo b4cd37276b Corrected some compilation errors (zolotarev.h) and SSE4 vsplat and conj to make cshift test pass. 2015-05-18 16:48:14 +09:00
Peter Boyle 1887c77498 Getting closer to having a wilson solver... introducing a first and untested
cut at Conjugate gradient. Also copied in Remez, Zolotarev, Chebyshev from
Mike Clark, Tony Kennedy and my BFM package respectively since we know we will
need these. I wanted the structure of

algorithms/approx
algorithms/iterative

etc.. to start taking shape.
2015-05-18 07:47:05 +01:00
Peter Boyle d0e4673a3f Getting closer to having a wilson solver... introducing a first and untested
cut at Conjugate gradient. Also copied in Remez, Zolotarev, Chebyshev from
Mike Clark, Tony Kennedy and my BFM package respectively since we know we will
need these. I wanted the structure of

algorithms/approx
algorithms/iterative

etc.. to start taking shape.
2015-05-18 07:47:05 +01:00
Peter Boyle 11cb3e9a01 Getting closer to having a wilson solver... introducing a first and untested
cut at Conjugate gradient. Also copied in Remez, Zolotarev, Chebyshev from
Mike Clark, Tony Kennedy and my BFM package respectively since we know we will
need these. I wanted the structure of

algorithms/approx
algorithms/iterative

etc.. to start taking shape.
2015-05-18 07:47:05 +01:00
Peter Boyle 6eb8dfd902 Working towards solvers 2015-05-17 00:19:03 +01:00
Peter Boyle 8e99e4671f Working towards solvers 2015-05-17 00:19:03 +01:00
Peter Boyle 7992346190 Working towards solvers 2015-05-17 00:19:03 +01:00
Peter Boyle e841395dfd Updating preparing for solvers etc.. 2015-05-16 23:35:08 +01:00
Peter Boyle dc6b6bdc96 Updating preparing for solvers etc.. 2015-05-16 23:35:08 +01:00
Peter Boyle bf7ab0da7a Updating preparing for solvers etc.. 2015-05-16 23:35:08 +01:00
Peter Boyle cf99a1f37d Better build automation 2015-05-16 07:16:45 +01:00
Peter Boyle 9b0aae665f Better build automation 2015-05-16 07:16:45 +01:00
Peter Boyle 1f4e7bbdce Better build automation 2015-05-16 07:16:45 +01:00
Peter Boyle deac65a92d Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-16 06:42:03 +01:00
Peter Boyle 4a0da933f0 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-16 06:42:03 +01:00
Peter Boyle 1f765e5b59 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-16 06:42:03 +01:00
Peter Boyle f6e54a7bd4 Moved things around 2015-05-16 06:40:10 +01:00
Peter Boyle e2f6745a0e Moved things around 2015-05-16 06:40:10 +01:00
Peter Boyle 462bafdd2c Moved things around 2015-05-16 06:40:10 +01:00
Peter Boyle 53260e7a39 Typoo xifed 2015-05-16 05:49:32 +01:00
Peter Boyle 39e7ef1243 Typoo xifed 2015-05-16 05:49:32 +01:00
Peter Boyle e9ed288b00 Typoo xifed 2015-05-16 05:49:32 +01:00
Peter Boyle a900790b44 Update Grid_lattice_trace.h 2015-05-16 04:40:28 +01:00
Peter Boyle 9c38a52bad Update Grid_lattice_trace.h 2015-05-16 04:40:28 +01:00
Peter Boyle dda3da45fb Update Grid_lattice_trace.h 2015-05-16 04:40:28 +01:00
Peter Boyle b731bf6976 Pretty syntax 2015-05-16 04:37:26 +01:00
Peter Boyle 1247d7aea8 Pretty syntax 2015-05-16 04:37:26 +01:00
Peter Boyle 2e4ba02443 Pretty syntax 2015-05-16 04:37:26 +01:00
Peter Boyle 5f8b82b90c Optimisation and syntax pretty 2015-05-16 04:36:22 +01:00
Peter Boyle 9f0e990b40 Optimisation and syntax pretty 2015-05-16 04:36:22 +01:00
Peter Boyle a19aa9627d Optimisation and syntax pretty 2015-05-16 04:36:22 +01:00
Peter Boyle 25bfa7e830 more digits 2015-05-16 04:33:40 +01:00
Peter Boyle 56667e9d32 more digits 2015-05-16 04:33:40 +01:00
Peter Boyle aff5254208 more digits 2015-05-16 04:33:40 +01:00
Peter Boyle afda459886 strong inline 2015-05-16 04:33:10 +01:00
Peter Boyle 49f56a25d1 strong inline 2015-05-16 04:33:10 +01:00
Peter Boyle 9e29fb2c6a strong inline 2015-05-16 04:33:10 +01:00
Peter Boyle c43869a83a Extra compile targs 2015-05-15 14:41:59 +01:00
Peter Boyle c2ca396353 Extra compile targs 2015-05-15 14:41:59 +01:00
Peter Boyle bc5ed9acaf Extra compile targs 2015-05-15 14:41:59 +01:00
Peter Boyle 87bc17831d Added su3 matrix benchmark. 2015-05-15 14:41:19 +01:00
Peter Boyle 7a63bdbd72 Added su3 matrix benchmark. 2015-05-15 14:41:19 +01:00
Peter Boyle b4b70702fd Added su3 matrix benchmark. 2015-05-15 14:41:19 +01:00
Peter Boyle 76cbcff2f1 Log the bug report code into the git repo. 2015-05-15 12:39:53 +01:00
Peter Boyle 516aac6518 Log the bug report code into the git repo. 2015-05-15 12:39:53 +01:00
Peter Boyle 8e1b5dda4b Log the bug report code into the git repo. 2015-05-15 12:39:53 +01:00
Peter Boyle f43589369a Compile options tweak 2015-05-15 12:33:18 +01:00
Peter Boyle 675fd1a065 Compile options tweak 2015-05-15 12:33:18 +01:00
Peter Boyle 9386522543 Compile options tweak 2015-05-15 12:33:18 +01:00
Peter Boyle c99922b591 Out of source compile now working 2015-05-15 12:21:40 +01:00
Peter Boyle a98f3e0f5e Out of source compile now working 2015-05-15 12:21:40 +01:00
Peter Boyle 331f832c34 Out of source compile now working 2015-05-15 12:21:40 +01:00
Peter Boyle de0c199604 Convenience multi-compiler build with out of source compile 2015-05-15 12:21:10 +01:00
Peter Boyle f92fda0cfd Convenience multi-compiler build with out of source compile 2015-05-15 12:21:10 +01:00
Peter Boyle 022c12b8e4 Convenience multi-compiler build with out of source compile 2015-05-15 12:21:10 +01:00
Peter Boyle 3ed30169ea clang++ 3.4/5/7 compile happy for AVX and SSE
icpc compiles happy on MacOSX both with -xCOMMON-AV512 and native AVX

gcc-5 does not compile happy; can work around by renaming lattice peek/poke/transpose/trace templates
relative to tensor ones, but gcc goes into a recursive template instantiation due to
matching error. I think this is a gcc bug and have filed a report https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:52:11 +01:00
Peter Boyle 100323ab4d clang++ 3.4/5/7 compile happy for AVX and SSE
icpc compiles happy on MacOSX both with -xCOMMON-AV512 and native AVX

gcc-5 does not compile happy; can work around by renaming lattice peek/poke/transpose/trace templates
relative to tensor ones, but gcc goes into a recursive template instantiation due to
matching error. I think this is a gcc bug and have filed a report https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:52:11 +01:00
Peter Boyle 0b4d3544b9 clang++ 3.4/5/7 compile happy for AVX and SSE
icpc compiles happy on MacOSX both with -xCOMMON-AV512 and native AVX

gcc-5 does not compile happy; can work around by renaming lattice peek/poke/transpose/trace templates
relative to tensor ones, but gcc goes into a recursive template instantiation due to
matching error. I think this is a gcc bug and have filed a report https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:52:11 +01:00
Peter Boyle bc3889ffa1 Remove debug masking 2015-05-15 11:51:15 +01:00
Peter Boyle 6965a136a0 Remove debug masking 2015-05-15 11:51:15 +01:00
Peter Boyle ed8e3b676f Remove debug masking 2015-05-15 11:51:15 +01:00
Peter Boyle 180b06d7e3 GCC and ICPC complained on more careful typeing 2015-05-15 11:50:44 +01:00
Peter Boyle 254dee6ac7 GCC and ICPC complained on more careful typeing 2015-05-15 11:50:44 +01:00
Peter Boyle 882fa27ff5 GCC and ICPC complained on more careful typeing 2015-05-15 11:50:44 +01:00
Peter Boyle 3bd376853c Move platform dependent out to Grid_simd.h 2015-05-15 11:50:00 +01:00
Peter Boyle 264850bc16 Move platform dependent out to Grid_simd.h 2015-05-15 11:50:00 +01:00
Peter Boyle 3346b68ccd Move platform dependent out to Grid_simd.h 2015-05-15 11:50:00 +01:00
Peter Boyle 6bba16ccf7 ngo store 2015-05-15 11:49:39 +01:00
Peter Boyle 9a120cf5ec ngo store 2015-05-15 11:49:39 +01:00
Peter Boyle 0afb64bf24 ngo store 2015-05-15 11:49:39 +01:00
Peter Boyle e8efa6320e Parallel for replace 2015-05-15 11:48:04 +01:00
Peter Boyle 8d77d758c3 Parallel for replace 2015-05-15 11:48:04 +01:00
Peter Boyle 537f47404b Parallel for replace 2015-05-15 11:48:04 +01:00
Peter Boyle e3b61bdfce Forces inlining upon icpc 2015-05-15 11:43:49 +01:00
Peter Boyle 0e7945fe54 Forces inlining upon icpc 2015-05-15 11:43:49 +01:00
Peter Boyle a0d041b522 Forces inlining upon icpc 2015-05-15 11:43:49 +01:00
Peter Boyle 86b9d24b62 Force inlining upon icpc 2015-05-15 11:43:20 +01:00
Peter Boyle bd721ce1c8 Force inlining upon icpc 2015-05-15 11:43:20 +01:00
Peter Boyle 8c57bcaece Force inlining upon icpc 2015-05-15 11:43:20 +01:00
Peter Boyle 3e3a8dc0c0 More elegant enable_if 2015-05-15 11:42:51 +01:00
Peter Boyle a852d13f03 More elegant enable_if 2015-05-15 11:42:51 +01:00
Peter Boyle 519eab8ff0 More elegant enable_if 2015-05-15 11:42:51 +01:00
Peter Boyle 4350c1e0f7 More elegant to do boolean logic inside the enable_if construct
Should have done that from the beginning and should move this into
a global edit
2015-05-15 11:42:03 +01:00
Peter Boyle a26fdab719 More elegant to do boolean logic inside the enable_if construct
Should have done that from the beginning and should move this into
a global edit
2015-05-15 11:42:03 +01:00
Peter Boyle f986e123d2 More elegant to do boolean logic inside the enable_if construct
Should have done that from the beginning and should move this into
a global edit
2015-05-15 11:42:03 +01:00
Peter Boyle 8c59605e05 Force inlining on ICPC because inline apparently is not enoguh 2015-05-15 11:41:31 +01:00
Peter Boyle af6e8f7829 Force inlining on ICPC because inline apparently is not enoguh 2015-05-15 11:41:31 +01:00
Peter Boyle 70638bf1f1 Force inlining on ICPC because inline apparently is not enoguh 2015-05-15 11:41:31 +01:00
Peter Boyle e59b6a805c strong_inline forces ICPC to do it. 2015-05-15 11:40:59 +01:00
Peter Boyle cbfa4097b4 strong_inline forces ICPC to do it. 2015-05-15 11:40:59 +01:00
Peter Boyle 54d8972753 strong_inline forces ICPC to do it. 2015-05-15 11:40:59 +01:00
Peter Boyle 5d8303e94d Force strong_inline to force ipcc's hand 2015-05-15 11:40:31 +01:00
Peter Boyle 8c40dd9c4f Force strong_inline to force ipcc's hand 2015-05-15 11:40:31 +01:00
Peter Boyle 5159b26261 Force strong_inline to force ipcc's hand 2015-05-15 11:40:31 +01:00
Peter Boyle 1339a7f8b0 Switch to strong_inline macro to force icpc's hand 2015-05-15 11:40:00 +01:00
Peter Boyle b38bf82d48 Switch to strong_inline macro to force icpc's hand 2015-05-15 11:40:00 +01:00
Peter Boyle c33ec96fc8 Switch to strong_inline macro to force icpc's hand 2015-05-15 11:40:00 +01:00
Peter Boyle e58cc72fe5 Promote to strong inline to force ICPC's hand. Annoying. 2015-05-15 11:39:25 +01:00
Peter Boyle adc4f86020 Promote to strong inline to force ICPC's hand. Annoying. 2015-05-15 11:39:25 +01:00
Peter Boyle 577325cb7a Promote to strong inline to force ICPC's hand. Annoying. 2015-05-15 11:39:25 +01:00
Peter Boyle 074430af0d Formatting change 2015-05-15 11:38:54 +01:00
Peter Boyle 5b46992a15 Formatting change 2015-05-15 11:38:54 +01:00
Peter Boyle 46c4379592 Formatting change 2015-05-15 11:38:54 +01:00
Peter Boyle 873110d482 Filed bug report Bug 66153 on GCC-5.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:38:04 +01:00
Peter Boyle e7d25647e6 Filed bug report Bug 66153 on GCC-5.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:38:04 +01:00
Peter Boyle f761ab0f50 Filed bug report Bug 66153 on GCC-5.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:38:04 +01:00
Peter Boyle 4cee0e8653 Silly formatting change 2015-05-15 11:37:07 +01:00
Peter Boyle c28551f40f Silly formatting change 2015-05-15 11:37:07 +01:00
Peter Boyle 2a28cfb3a3 Silly formatting change 2015-05-15 11:37:07 +01:00
Peter Boyle 6b2a786779 gcc doesn't like collapse(2) for some reason I can't figure 2015-05-15 11:36:22 +01:00
Peter Boyle 6c7eb60d6f gcc doesn't like collapse(2) for some reason I can't figure 2015-05-15 11:36:22 +01:00
Peter Boyle b00622302b gcc doesn't like collapse(2) for some reason I can't figure 2015-05-15 11:36:22 +01:00
Peter Boyle cf27f22dc0 ICPC and GCC5 fixes 2015-05-15 11:35:02 +01:00
Peter Boyle 051b23fe10 ICPC and GCC5 fixes 2015-05-15 11:35:02 +01:00
Peter Boyle 3057b2762a ICPC and GCC5 fixes 2015-05-15 11:35:02 +01:00
Peter Boyle 40192841a4 Using boolean logic inside enable_if is more elegant 2015-05-15 11:32:45 +01:00
Peter Boyle 4e462209c7 Using boolean logic inside enable_if is more elegant 2015-05-15 11:32:45 +01:00
Peter Boyle 151a6f4e14 Using boolean logic inside enable_if is more elegant 2015-05-15 11:32:45 +01:00
Peter Boyle 1771f97551 Key of mm_malloc.h 2015-05-15 11:32:11 +01:00
Peter Boyle 8d1b26dd4b Key of mm_malloc.h 2015-05-15 11:32:11 +01:00
Peter Boyle a36c974f26 Key of mm_malloc.h 2015-05-15 11:32:11 +01:00
Peter Boyle 2eaf73e8b3 strong inline required to force icpc 2015-05-15 11:31:41 +01:00
Peter Boyle cc6218a692 strong inline required to force icpc 2015-05-15 11:31:41 +01:00
Peter Boyle c0977dcfaa strong inline required to force icpc 2015-05-15 11:31:41 +01:00
Peter Boyle 43bdbb5080 Linear op added 2015-05-13 11:25:34 +01:00
Peter Boyle 5166888c0a Linear op added 2015-05-13 11:25:34 +01:00
Peter Boyle f1255197c2 Linear op added 2015-05-13 11:25:34 +01:00
Peter Boyle 7f3ae64a31 OMP dslash working 2015-05-13 10:59:22 +01:00
Peter Boyle 0097b81778 OMP dslash working 2015-05-13 10:59:22 +01:00
Peter Boyle e179828662 OMP dslash working 2015-05-13 10:59:22 +01:00
Peter Boyle 457cc0d5a3 RNG test 2015-05-13 09:24:30 +01:00
Peter Boyle e6e72d23df RNG test 2015-05-13 09:24:30 +01:00
Peter Boyle 680f4e3636 RNG test 2015-05-13 09:24:30 +01:00
Peter Boyle d388b831b4 cout IO for all types 2015-05-13 09:24:10 +01:00
Peter Boyle add4495a4a cout IO for all types 2015-05-13 09:24:10 +01:00
Peter Boyle a108d5d3b0 cout IO for all types 2015-05-13 09:24:10 +01:00
Peter Boyle b4a570477c I have made the Cshift work successfully with open mp threading in
every routine. Collapse(2) is now working under clang-omp++.
2015-05-13 00:31:00 +01:00
Peter Boyle 541d52ab97 I have made the Cshift work successfully with open mp threading in
every routine. Collapse(2) is now working under clang-omp++.
2015-05-13 00:31:00 +01:00
Peter Boyle 48f425d31c I have made the Cshift work successfully with open mp threading in
every routine. Collapse(2) is now working under clang-omp++.
2015-05-13 00:31:00 +01:00
Peter Boyle 52174da232 Enhanced SIMD interfacing 2015-05-12 20:41:44 +01:00
Peter Boyle 556befaaaa Enhanced SIMD interfacing 2015-05-12 20:41:44 +01:00
Peter Boyle 6cec662ac5 Enhanced SIMD interfacing 2015-05-12 20:41:44 +01:00
Peter Boyle 65c91eae64 Threading support rework.
Placed parallel pragmas as macros; implemented deterministic thread reduction in style of
BFM.
2015-05-12 07:51:41 +01:00
Peter Boyle c6baa3e657 Threading support rework.
Placed parallel pragmas as macros; implemented deterministic thread reduction in style of
BFM.
2015-05-12 07:51:41 +01:00
Peter Boyle 6103c29ee3 Threading support rework.
Placed parallel pragmas as macros; implemented deterministic thread reduction in style of
BFM.
2015-05-12 07:51:41 +01:00
Peter Boyle 8b765be2b1 Moving some things around for pretty 2015-05-11 19:09:49 +01:00
Peter Boyle 6e6843ac69 Moving some things around for pretty 2015-05-11 19:09:49 +01:00
Peter Boyle b1d2c60d07 Moving some things around for pretty 2015-05-11 19:09:49 +01:00
Peter Boyle a411b48a91 Adding a better controlled threading class, preparing to
force in deterministic reduction.
2015-05-11 18:59:03 +01:00
Peter Boyle c8dc8ff891 Adding a better controlled threading class, preparing to
force in deterministic reduction.
2015-05-11 18:59:03 +01:00
Peter Boyle 22d384b07d Adding a better controlled threading class, preparing to
force in deterministic reduction.
2015-05-11 18:59:03 +01:00
Peter Boyle ebcb87abe1 Got command line args working 2015-05-11 14:36:48 +01:00
Peter Boyle b613ed0bb8 Got command line args working 2015-05-11 14:36:48 +01:00
Peter Boyle f5dcca7b1b Got command line args working 2015-05-11 14:36:48 +01:00
paboyle 1576b7837a CML parse 2015-05-11 12:56:27 +01:00
paboyle 4eb08ac9de CML parse 2015-05-11 12:56:27 +01:00
paboyle 43e71ff28c CML parse 2015-05-11 12:56:27 +01:00
paboyle fa5779537c Command line args and a general clean up 2015-05-11 12:43:10 +01:00
paboyle b42453d1fd Command line args and a general clean up 2015-05-11 12:43:10 +01:00
paboyle 379943abf5 Command line args and a general clean up 2015-05-11 12:43:10 +01:00
paboyle 5548fd6928 Updated to do list 2015-05-11 09:44:50 +01:00
paboyle 06dcbed6b1 Updated to do list 2015-05-11 09:44:50 +01:00
paboyle 9f9796b888 Updated to do list 2015-05-11 09:44:50 +01:00
Peter Boyle 242e447bc5 Lots of changes required to compile for MIC under ICPC 2015-05-10 23:29:21 +01:00
Peter Boyle 2203c6e597 Lots of changes required to compile for MIC under ICPC 2015-05-10 23:29:21 +01:00
Peter Boyle 5555a852be Lots of changes required to compile for MIC under ICPC 2015-05-10 23:29:21 +01:00
Peter Boyle 352bccf6ca Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/qcd/Grid_qcd_wilson_dop.cc
2015-05-10 15:37:47 +01:00
Peter Boyle 4da2c2ea00 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/qcd/Grid_qcd_wilson_dop.cc
2015-05-10 15:37:47 +01:00
Peter Boyle 48b9692845 Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/qcd/Grid_qcd_wilson_dop.cc
2015-05-10 15:37:47 +01:00
Peter Boyle c946e77143 Expression template hack 2015-05-10 15:35:30 +01:00
Peter Boyle 1ec1b4ee44 Expression template hack 2015-05-10 15:35:30 +01:00
Peter Boyle b802abc83f Expression template hack 2015-05-10 15:35:30 +01:00
Peter Boyle 015fbee772 Expression template engin 2015-05-10 15:34:20 +01:00
Peter Boyle 1ab92563b9 Expression template engin 2015-05-10 15:34:20 +01:00
Peter Boyle 14591c72d6 Expression template engin 2015-05-10 15:34:20 +01:00
Peter Boyle 8215893152 Updated TODO list 2015-05-10 15:32:56 +01:00
Peter Boyle 5a7751d9df Updated TODO list 2015-05-10 15:32:56 +01:00
Peter Boyle 933ccfdc4f Updated TODO list 2015-05-10 15:32:56 +01:00
Peter Boyle 5fcf42cb30 Hack; must bring norm2 into the unary operator list.
ET's are still incomplete.
2015-05-10 15:30:29 +01:00
Peter Boyle 79c51ac51f Hack; must bring norm2 into the unary operator list.
ET's are still incomplete.
2015-05-10 15:30:29 +01:00
Peter Boyle 4e596da589 Hack; must bring norm2 into the unary operator list.
ET's are still incomplete.
2015-05-10 15:30:29 +01:00
Peter Boyle e647cf0459 Default to single node. Move to command line args. 2015-05-10 15:27:38 +01:00
Peter Boyle 7119bce9f3 Default to single node. Move to command line args. 2015-05-10 15:27:38 +01:00
Peter Boyle 41c9785f3b Default to single node. Move to command line args. 2015-05-10 15:27:38 +01:00
Peter Boyle 8919bf9e0a Single node default. Should expose this as command line args, but haven't sorted out
Grid_initialize to handle this. Should put this on the TODO list.
2015-05-10 15:26:06 +01:00
Peter Boyle cd90f55536 Single node default. Should expose this as command line args, but haven't sorted out
Grid_initialize to handle this. Should put this on the TODO list.
2015-05-10 15:26:06 +01:00
Peter Boyle 443efd875e Single node default. Should expose this as command line args, but haven't sorted out
Grid_initialize to handle this. Should put this on the TODO list.
2015-05-10 15:26:06 +01:00
Peter Boyle 133493dc79 Small tweak to enable benchmarking to suppress gauge field bandwidth as a test.
This is a short term hack while I benchmark.
2015-05-10 15:25:23 +01:00
Peter Boyle dc7132af71 Small tweak to enable benchmarking to suppress gauge field bandwidth as a test.
This is a short term hack while I benchmark.
2015-05-10 15:25:23 +01:00
Peter Boyle 02ae26d091 Small tweak to enable benchmarking to suppress gauge field bandwidth as a test.
This is a short term hack while I benchmark.
2015-05-10 15:25:23 +01:00
Peter Boyle 58d32a4d0e Assertion should never hit, but did due to a bug 2015-05-10 15:24:37 +01:00
Peter Boyle 961fbb2718 Assertion should never hit, but did due to a bug 2015-05-10 15:24:37 +01:00
Peter Boyle 2ffd941d67 Assertion should never hit, but did due to a bug 2015-05-10 15:24:37 +01:00
Peter Boyle 6bb17502f9 Moving operator stuff into separate file so that we can switch on/off replacement with
expression templates
2015-05-10 15:23:49 +01:00
Peter Boyle 4a8fd55f52 Moving operator stuff into separate file so that we can switch on/off replacement with
expression templates
2015-05-10 15:23:49 +01:00
Peter Boyle ca554f661b Moving operator stuff into separate file so that we can switch on/off replacement with
expression templates
2015-05-10 15:23:49 +01:00
Peter Boyle 8299bc39ea Fixing breakage in the Comms non compile 2015-05-10 15:23:09 +01:00
Peter Boyle e02cbaa016 Fixing breakage in the Comms non compile 2015-05-10 15:23:09 +01:00
Peter Boyle 29be76f958 Fixing breakage in the Comms non compile 2015-05-10 15:23:09 +01:00
Peter Boyle 7f04b85368 Bringing expression templates for faster vector loops 2015-05-10 15:22:31 +01:00
Peter Boyle 463c31ae09 Bringing expression templates for faster vector loops 2015-05-10 15:22:31 +01:00
Peter Boyle e3acb36de6 Bringing expression templates for faster vector loops 2015-05-10 15:22:31 +01:00
Peter Boyle a115f3b086 ET ready benchmark with bytes counted assuming loop interchange 2015-05-10 15:18:04 +01:00
Peter Boyle 3657f2303d ET ready benchmark with bytes counted assuming loop interchange 2015-05-10 15:18:04 +01:00
Peter Boyle b2e0f72a7e ET ready benchmark with bytes counted assuming loop interchange 2015-05-10 15:18:04 +01:00
Peter Boyle 27c2d13968 Updated todo list 2015-05-10 15:13:50 +01:00
Peter Boyle 9ed1fb45e1 Updated todo list 2015-05-10 15:13:50 +01:00
Peter Boyle ebed239e49 Updated todo list 2015-05-10 15:13:50 +01:00
Peter Boyle 5415180676 Wilson perf improvements with Gauge prefetching 2015-05-06 06:37:21 +01:00
Peter Boyle 52403d587c Wilson perf improvements with Gauge prefetching 2015-05-06 06:37:21 +01:00
Peter Boyle 55ccb8ccf4 Wilson perf improvements with Gauge prefetching 2015-05-06 06:37:21 +01:00
Peter Boyle 7b0dd6c5d6 Cleaned up for Linux 2015-05-05 22:09:22 +01:00
Peter Boyle cdd5cdeda2 Cleaned up for Linux 2015-05-05 22:09:22 +01:00
Peter Boyle 35d949cc17 Cleaned up for Linux 2015-05-05 22:09:22 +01:00
Peter Boyle cb4b82b09f streaming store cases 2015-05-05 18:14:09 +01:00
Peter Boyle b9d16a7191 streaming store cases 2015-05-05 18:14:09 +01:00
Peter Boyle cd990ba13d Streaming store option 2015-05-05 18:13:06 +01:00
Peter Boyle 07d57b6d55 Streaming store option 2015-05-05 18:13:06 +01:00
Peter Boyle 249165d1b2 Added streaming stores 2015-05-05 18:09:28 +01:00
Peter Boyle 5ebc7a1756 Added streaming stores 2015-05-05 18:09:28 +01:00
Peter Boyle b720222d98 Updated bandwidth test 2015-05-05 18:08:53 +01:00
Peter Boyle bf60764e4b Updated bandwidth test 2015-05-05 18:08:53 +01:00
Peter Boyle 0e8415de1b Added a makefile 2015-05-05 17:56:42 +01:00
Peter Boyle 890b13dd5b Added a makefile 2015-05-05 17:56:42 +01:00
Peter Boyle 2b46ad38e2 Back to vector for now; cost of init loop is clear in the a*x + y
loop in memory benchmark and must move to better container class.
2015-05-03 09:48:13 +01:00
Peter Boyle aeda7b923d Back to vector for now; cost of init loop is clear in the a*x + y
loop in memory benchmark and must move to better container class.
2015-05-03 09:48:13 +01:00
Peter Boyle 9d93d1e6d4 Comms and memory benchmarks added 2015-05-03 09:44:47 +01:00
Peter Boyle 193860dbc8 Comms and memory benchmarks added 2015-05-03 09:44:47 +01:00
Peter Boyle 253362f978 Added a comms benchmark 2015-05-02 23:51:43 +01:00
Peter Boyle 99a1ff423d Added a comms benchmark 2015-05-02 23:51:43 +01:00
Peter Boyle ea52562527 Added a comms benchmark 2015-05-02 23:42:30 +01:00
Peter Boyle f663be2a6c Added a comms benchmark 2015-05-02 23:42:30 +01:00
Peter Boyle 6a39089a43 Starting a benchmarking sub dir 2015-05-02 17:52:36 +01:00
Peter Boyle 4a1d4f1b3c Starting a benchmarking sub dir 2015-05-02 17:52:36 +01:00
Peter Boyle bdf18941a2 Improving the byte swap support for portability 2015-05-01 10:57:33 +01:00
Peter Boyle 31fd146cc0 Improving the byte swap support for portability 2015-05-01 10:57:33 +01:00
Peter Boyle d904e2b9ac Merge branch 'master' of https://github.com/paboyle/Grid 2015-04-30 16:40:13 +01:00
Peter Boyle c770f96be7 Merge branch 'master' of https://github.com/paboyle/Grid 2015-04-30 16:40:13 +01:00
Peter Boyle c0ead94791 Integrated Lebesgue code and been playing with alternate implementations of the wilson dop without
any particular success in increasing the performance.
2015-04-30 16:39:06 +01:00
Peter Boyle a98c01c86a Integrated Lebesgue code and been playing with alternate implementations of the wilson dop without
any particular success in increasing the performance.
2015-04-30 16:39:06 +01:00
Peter Boyle 7ac997bd58 Merge pull request #1 from mspraggs/patch-1
Added <map> include to GridNerscIO.h
2015-04-30 09:46:48 +01:00
Peter Boyle d5b1bfb4bb Merge pull request #1 from mspraggs/patch-1
Added <map> include to GridNerscIO.h
2015-04-30 09:46:48 +01:00
mspraggs 24fc71b2e9 Added <map> include to GridNerscIO.h
Adding this allows clang to compile Grid to completion.
2015-04-29 23:44:03 +01:00
mspraggs 6f05404cb8 Added <map> include to GridNerscIO.h
Adding this allows clang to compile Grid to completion.
2015-04-29 23:44:03 +01:00
Peter Boyle d8ffa09e3b Benchmark wilson dhop now; 14.6GF on one core, not as fast as SU(3)xSU(3) [23GF] but still not too shabby.
Disassembling output shows ugly sequences in the permute sector. Could comparatively benchmark with and without
the if-else structure to see how much I'm losing.

Drops to 9GF as it falls out of cache. Moving to Lebesgue ordering should help there. Substantive progress.
2015-04-29 06:50:18 +01:00
Peter Boyle b7090ebba4 Benchmark wilson dhop now; 14.6GF on one core, not as fast as SU(3)xSU(3) [23GF] but still not too shabby.
Disassembling output shows ugly sequences in the permute sector. Could comparatively benchmark with and without
the if-else structure to see how much I'm losing.

Drops to 9GF as it falls out of cache. Moving to Lebesgue ordering should help there. Substantive progress.
2015-04-29 06:50:18 +01:00
Peter Boyle dcc23faa4a Fixed the stencil sector and Wilson now agrees between stencil based implementation
and the cshift based implementation. Managed to reduce the volume of code in this
sector a little, but consolidation would be good, perhaps taking common
logic out into simple helper functions
2015-04-29 06:23:56 +01:00
Peter Boyle c72db6c6f6 Fixed the stencil sector and Wilson now agrees between stencil based implementation
and the cshift based implementation. Managed to reduce the volume of code in this
sector a little, but consolidation would be good, perhaps taking common
logic out into simple helper functions
2015-04-29 06:23:56 +01:00
Peter Boyle b0485894b3 Shaken out stencil to the point where I think wilson dslash is correct.
Need to audit code carefully, consolidate between stencil and cshift,
and then benchmark and optimise.
2015-04-28 08:11:59 +01:00
Peter Boyle 25d523c0f4 Shaken out stencil to the point where I think wilson dslash is correct.
Need to audit code carefully, consolidate between stencil and cshift,
and then benchmark and optimise.
2015-04-28 08:11:59 +01:00
Peter Boyle 0b7d389258 Reworking CSHIFT and Stencil. Implementing Wilson and discovered rework is required 2015-04-27 13:45:07 +01:00
Peter Boyle f159495a9d Reworking CSHIFT and Stencil. Implementing Wilson and discovered rework is required 2015-04-27 13:45:07 +01:00
Peter Boyle 35cfef2129 Big updates with progress towards wilson matrix 2015-04-26 15:51:09 +01:00
Peter Boyle 94f728bee4 Big updates with progress towards wilson matrix 2015-04-26 15:51:09 +01:00
Peter Boyle c678f2d255 Starting the implementation of wilson; incomplete and committing non-functional code which
is not yet included from elsewhere or linked to the build system.
2015-04-25 14:33:02 +01:00
Peter Boyle 51f0da7b93 Starting the implementation of wilson; incomplete and committing non-functional code which
is not yet included from elsewhere or linked to the build system.
2015-04-25 14:33:02 +01:00
Peter Boyle d5fd34b6e8 Update to TODO list 2015-04-25 13:04:26 +01:00
Peter Boyle 9dacdc947d Update to TODO list 2015-04-25 13:04:26 +01:00
Peter Boyle 2d8cf9e456 Added two spinor functionality required to support the Wilson hopping term. 2015-04-25 12:54:06 +01:00
Peter Boyle c5fa18eb20 Added two spinor functionality required to support the Wilson hopping term. 2015-04-25 12:54:06 +01:00
Peter Boyle dc970c6442 Dirac done ; remove from TODO 2015-04-24 22:56:37 +01:00
Peter Boyle 8b4073d84c Dirac done ; remove from TODO 2015-04-24 22:56:37 +01:00
Peter Boyle fc32450360 Improved the gamma quite a bit.
Serial rng's which are set on node zero and broadcaste
2015-04-24 20:21:40 +01:00
Peter Boyle 9ec3529864 Improved the gamma quite a bit.
Serial rng's which are set on node zero and broadcaste
2015-04-24 20:21:40 +01:00
Peter Boyle 2a67214f9d static names and enum list 2015-04-24 19:12:14 +01:00
Peter Boyle 42eac283e2 static names and enum list 2015-04-24 19:12:14 +01:00
Peter Boyle 71d5927a66 Vectors now too and right multiple of matrix with gamma 2015-04-24 19:08:29 +01:00
Peter Boyle 38598190c3 Vectors now too and right multiple of matrix with gamma 2015-04-24 19:08:29 +01:00
Peter Boyle f2ac20e7ab Removed summation 2015-04-24 18:42:44 +01:00
Peter Boyle 2e275e1e65 Removed summation 2015-04-24 18:42:44 +01:00
Peter Boyle 750dd5f5fd Cleared the code out from Grid_summation to lattice/Grid_lattice_transfer.h 2015-04-24 18:41:34 +01:00
Peter Boyle 80463ecaea Cleared the code out from Grid_summation to lattice/Grid_lattice_transfer.h 2015-04-24 18:41:34 +01:00
Peter Boyle 74432432b6 Moved code from summation into transfer and reduction 2015-04-24 18:40:44 +01:00
Peter Boyle 128ad0999f Moved code from summation into transfer and reduction 2015-04-24 18:40:44 +01:00
Peter Boyle b8eef54fa7 First implementation of Dirac matrices as a Gamma class. 2015-04-24 18:20:03 +01:00
Peter Boyle d707c4e0a3 First implementation of Dirac matrices as a Gamma class. 2015-04-24 18:20:03 +01:00
Peter Boyle e2e3ea5742 Reorganised the TODO. Really getting somewhere 2015-04-23 20:42:30 +01:00
Peter Boyle b9939e3974 Reorganised the TODO. Really getting somewhere 2015-04-23 20:42:30 +01:00
Peter Boyle 4b4dcc4c13 Rename Grid_QCD 2015-04-23 20:42:09 +01:00
Peter Boyle 3083d2e908 Rename Grid_QCD 2015-04-23 20:42:09 +01:00
Peter Boyle afe6c4f64f move 2015-04-23 20:41:22 +01:00
Peter Boyle 898f64cdd7 move 2015-04-23 20:41:22 +01:00
Peter Boyle 62e8d2d127 Slice summation working. May move this into lattice/Grid_lattice_reduction however 2015-04-23 15:13:00 +01:00
Peter Boyle 52a6ba9767 Slice summation working. May move this into lattice/Grid_lattice_reduction however 2015-04-23 15:13:00 +01:00
Peter Boyle b7416d79e3 Begginings of slice summation and subblocking 2015-04-23 11:04:59 +01:00
Peter Boyle 4d2198ea56 Begginings of slice summation and subblocking 2015-04-23 11:04:59 +01:00
Peter Boyle 2f8431ab03 Consolidate index to coor in a single routine 2015-04-23 11:04:19 +01:00
Peter Boyle 7007d6a176 Consolidate index to coor in a single routine 2015-04-23 11:04:19 +01:00
Peter Boyle a9e574dd27 Snippets from Guido to optimise Reduce 2015-04-23 08:31:40 +01:00
Peter Boyle a37a9789c9 Snippets from Guido to optimise Reduce 2015-04-23 08:31:40 +01:00
Peter Boyle 73c0db82d5 Better description of Intel's many ISA targets 2015-04-23 08:02:51 +01:00
Peter Boyle 5c8858f31b Better description of Intel's many ISA targets 2015-04-23 08:02:51 +01:00
Peter Boyle eb58297a43 Fixing endian on linux I hope 2015-04-23 07:51:15 +01:00
Peter Boyle 47292de769 Fixing endian on linux I hope 2015-04-23 07:51:15 +01:00
Peter Boyle 1851327d19 Got the NERSC IO working and fixed a bug in cshift. 2015-04-22 22:46:48 +01:00
Peter Boyle b32c14b433 Got the NERSC IO working and fixed a bug in cshift. 2015-04-22 22:46:48 +01:00
Peter Boyle a5b0c492d7 Rework of RNG to use C++11 random. Should work correctly maintaining parallel RNG across
a machine. If a "fixedSeed" is used, randoms should be reproducible across different machine
decomposition since the generators are physically indexed and assigned in lexico ordering.
2015-04-19 14:55:58 +01:00
Peter Boyle 42f167ea37 Rework of RNG to use C++11 random. Should work correctly maintaining parallel RNG across
a machine. If a "fixedSeed" is used, randoms should be reproducible across different machine
decomposition since the generators are physically indexed and assigned in lexico ordering.
2015-04-19 14:55:58 +01:00
Peter Boyle 650410cb2f Update to task list 2015-04-19 14:55:16 +01:00
Peter Boyle f6ab726cef Update to task list 2015-04-19 14:55:16 +01:00
Peter Boyle f64d39ab57 Split all OMP directives into lattice subdir for easy maintainance of
parallelism and future OMP 4.0 offload.
2015-04-18 22:17:01 +01:00
Peter Boyle 5483ed641e Split all OMP directives into lattice subdir for easy maintainance of
parallelism and future OMP 4.0 offload.
2015-04-18 22:17:01 +01:00
Peter Boyle 4e1a3aee82 Update 2015-04-18 22:16:31 +01:00
Peter Boyle d929f88421 Update 2015-04-18 22:16:31 +01:00
Peter Boyle 1556c2ba3f Finishing the reorg 2015-04-18 21:24:10 +01:00
Peter Boyle 6bd11d920a Finishing the reorg 2015-04-18 21:24:10 +01:00
Peter Boyle 62fec04419 Reorganisation 2015-04-18 21:23:32 +01:00
Peter Boyle 8ddfa7e6b0 Reorganisation 2015-04-18 21:23:32 +01:00
Peter Boyle aee6669d0b Build reorg with which I am a bit happier 2015-04-18 21:22:50 +01:00
Peter Boyle e5a25dfcb1 Build reorg with which I am a bit happier 2015-04-18 21:22:50 +01:00
Peter Boyle a17ce0695b Clean up 2015-04-18 20:52:40 +01:00
Peter Boyle c94b7cc43c Clean up 2015-04-18 20:52:40 +01:00
Peter Boyle e6ec92d0e4 More files, shorter each. 2015-04-18 20:45:00 +01:00
Peter Boyle 25a8266638 More files, shorter each. 2015-04-18 20:45:00 +01:00
Peter Boyle d964d01d6a Shrinking and organising the files 2015-04-18 20:44:19 +01:00
Peter Boyle 6eae2c1083 Shrinking and organising the files 2015-04-18 20:44:19 +01:00
Peter Boyle 0fce523792 Split up into multiple files 2015-04-18 18:54:30 +01:00
Peter Boyle 354347ce91 Split up into multiple files 2015-04-18 18:54:30 +01:00
Peter Boyle 520af214af splitting into smaller, multiple files for readability and easy find. 2015-04-18 18:47:43 +01:00
Peter Boyle 2eb5ab26bf splitting into smaller, multiple files for readability and easy find. 2015-04-18 18:47:43 +01:00
Peter Boyle 62ee8e1cb3 Cleanup 2015-04-18 18:37:56 +01:00
Peter Boyle af72ade26a Cleanup 2015-04-18 18:37:56 +01:00
Peter Boyle 3931ad65c8 Reorg 2015-04-18 18:37:22 +01:00
Peter Boyle e7661d3b12 Reorg 2015-04-18 18:37:22 +01:00
Peter Boyle 8195d302dc Reorganise to keep files smaller 2015-04-18 18:36:48 +01:00
Peter Boyle cffad66894 Reorganise to keep files smaller 2015-04-18 18:36:48 +01:00
Peter Boyle f7d80aac7f Rename 2015-04-18 17:10:45 +01:00
Peter Boyle df9056eb4b Rename 2015-04-18 17:10:45 +01:00
Peter Boyle 08f20da103 Clean up caps. 2015-04-18 17:09:48 +01:00
Peter Boyle 2ee9322a8f Clean up caps. 2015-04-18 17:09:48 +01:00
Peter Boyle 2c9e5aa054 Clean up capitalisation 2015-04-18 17:09:24 +01:00
Peter Boyle b0ce9e3934 Clean up capitalisation 2015-04-18 17:09:24 +01:00
Peter Boyle ac181abc95 Rename 2015-04-18 17:07:37 +01:00
Peter Boyle 5e9a82b72b Rename 2015-04-18 17:07:37 +01:00
Peter Boyle 18a885d195 Renaming 2015-04-18 17:07:09 +01:00
Peter Boyle b5356935e9 Renaming 2015-04-18 17:07:09 +01:00
Peter Boyle 1674f899e0 Cleaing up 2015-04-18 16:42:47 +01:00
Peter Boyle eb0925d702 Cleaing up 2015-04-18 16:42:47 +01:00
Peter Boyle f678be5f94 Shaken out the peekIndex support.
Hardwire constants "SpinIndex, ColourIndex" and LorentzIndex in Grid_QCD.h
2015-04-18 16:17:41 +01:00
Peter Boyle b47d33c4f1 Shaken out the peekIndex support.
Hardwire constants "SpinIndex, ColourIndex" and LorentzIndex in Grid_QCD.h
2015-04-18 16:17:41 +01:00
Peter Boyle 388b735fd0 Build reorg 2015-04-18 14:56:05 +01:00
Peter Boyle 26148c3323 Build reorg 2015-04-18 14:56:05 +01:00
Peter Boyle 3e3df092bb Reorg of build structure 2015-04-18 14:55:00 +01:00
Peter Boyle c656164015 Reorg of build structure 2015-04-18 14:55:00 +01:00
Peter Boyle e25f10566c peekIndex update 2015-04-18 14:36:01 +01:00
Peter Boyle 57586c8e05 peekIndex update 2015-04-18 14:36:01 +01:00
Peter Boyle 5d1b866e7a typo 2015-04-18 12:40:55 +01:00
Peter Boyle d6c02e72d6 typo 2015-04-18 12:40:55 +01:00
paboyle 56b3631187 Update README.md 2015-04-18 12:21:37 +01:00
paboyle d4aa37112d Update README.md 2015-04-18 12:21:37 +01:00
Peter Boyle 1408a3c0f9 Got traceIndex, transposeIndex fully working.
Need to think about peekIndex interface and () based indexing.
2015-04-18 12:17:13 +01:00
Peter Boyle 81367eaa12 Got traceIndex, transposeIndex fully working.
Need to think about peekIndex interface and () based indexing.
2015-04-18 12:17:13 +01:00
Peter Boyle 3b9110b5db SSE flag changed 2015-04-16 17:22:52 +01:00
Peter Boyle 23df6cf18e SSE flag changed 2015-04-16 17:22:52 +01:00
Peter Boyle 6b04dd4a5d Better code 2015-04-16 15:20:19 +01:00
Peter Boyle 3e41cfecf1 Better code 2015-04-16 15:20:19 +01:00
Peter Boyle 1972eea128 spin trace type work 2015-04-16 14:48:21 +01:00
Peter Boyle 5aac6dc85b spin trace type work 2015-04-16 14:48:21 +01:00
Peter Boyle 933c54d9c4 Improving the trace support to support any index tracing and simplifying
implmentation in some ways
2015-04-16 14:47:28 +01:00
Peter Boyle 6d71ff98e5 Improving the trace support to support any index tracing and simplifying
implmentation in some ways
2015-04-16 14:47:28 +01:00
Peter Boyle fddb904b4c Typo in capital 2015-04-15 12:03:38 +01:00
Peter Boyle 3cb04f555d Typo in capital 2015-04-15 12:03:38 +01:00
Peter Boyle cab7ef9bc2 Some bug fixes 2015-04-14 23:20:16 +01:00
Peter Boyle b59553bd65 Some bug fixes 2015-04-14 23:20:16 +01:00
Peter Boyle ab9a764bb1 Reduce now going through MPI. 2015-04-14 22:40:40 +01:00
Peter Boyle 94f9e781f4 Reduce now going through MPI. 2015-04-14 22:40:40 +01:00
Peter Boyle f1876b7e95 Modified 2015-04-14 20:25:51 +01:00
Peter Boyle 2ae42c40a8 Modified 2015-04-14 20:25:51 +01:00
Peter Boyle 2d54ef2a52 Stencil code pretty much shaken out.
Beginning of inner product and norm2.
2015-04-14 20:22:04 +01:00
Peter Boyle 1eee664092 Stencil code pretty much shaken out.
Beginning of inner product and norm2.
2015-04-14 20:22:04 +01:00
Peter Boyle 977c7721d5 where switched back on 2015-04-10 05:54:02 +02:00
Peter Boyle eb2dd37e3c where switched back on 2015-04-10 05:54:02 +02:00
Peter Boyle 5267658748 Fixing the comms=none compile 2015-04-10 05:53:09 +02:00
Peter Boyle 69d578478a Fixing the comms=none compile 2015-04-10 05:53:09 +02:00
Peter Boyle 6e90038bf6 Fixing nocompile 2015-04-10 05:24:01 +02:00
Peter Boyle d9a454bc9f Fixing nocompile 2015-04-10 05:24:01 +02:00
Peter Boyle 993419d9fb MPI exposed incorrectly in main 2015-04-10 05:22:36 +02:00
Peter Boyle 516bc0c666 MPI exposed incorrectly in main 2015-04-10 05:22:36 +02:00
Peter Boyle 927c62d8a3 Patch for comms none nocompile 2015-04-10 05:21:48 +02:00
Peter Boyle f373517d2e Patch for comms none nocompile 2015-04-10 05:21:48 +02:00
Peter Boyle 31f4f4f1e1 "where" and integer comparisons logic implemented for conditional
assignment. LatticeCoordinate helper to get global (reduced) coordinate.

Some more work of similar type perhaps needed, but the bulk of the required
structure for masked array assignment is now in place.
2015-04-09 08:06:03 +02:00
Peter Boyle 8f5281563e "where" and integer comparisons logic implemented for conditional
assignment. LatticeCoordinate helper to get global (reduced) coordinate.

Some more work of similar type perhaps needed, but the bulk of the required
structure for masked array assignment is now in place.
2015-04-09 08:06:03 +02:00
Peter Boyle 81d5eabf6c Remove stub files 2015-04-06 11:29:55 +01:00
Peter Boyle 4666acfbb0 Remove stub files 2015-04-06 11:29:55 +01:00
Peter Boyle ce6a3a8ed4 Some popular configure commands 2015-04-06 11:28:00 +01:00
Peter Boyle 4cd678ddb4 Some popular configure commands 2015-04-06 11:28:00 +01:00
Peter Boyle 982274e5a0 Major rework of extract/merge/permute processing debugged and working. 2015-04-06 11:26:24 +01:00
Peter Boyle 48a38ef4fd Major rework of extract/merge/permute processing debugged and working. 2015-04-06 11:26:24 +01:00
Peter Boyle 9e597ac50a Removing older file 2015-04-06 09:27:17 +01:00
Peter Boyle 57cd8d87f5 Removing older file 2015-04-06 09:27:17 +01:00
Peter Boyle 02262b0019 Bringing in LatticeInteger with the idea of implemented predicated
assignment, subsets etc.
c.f the QDP++ "where" syntax
2015-04-06 06:30:48 +01:00
Peter Boyle e06a11ee5e Bringing in LatticeInteger with the idea of implemented predicated
assignment, subsets etc.
c.f the QDP++ "where" syntax
2015-04-06 06:30:48 +01:00
Peter Boyle ad31cd0c23 Clean up but no major changes 2015-04-03 22:54:13 +01:00
Peter Boyle d5eee231e0 Clean up but no major changes 2015-04-03 22:54:13 +01:00
Peter Boyle 15dda435e6 TODO list for preparing this for real use and QDP++ replacement. 2015-04-03 09:28:58 +01:00
Peter Boyle d081715504 TODO list for preparing this for real use and QDP++ replacement. 2015-04-03 09:28:58 +01:00
Peter Boyle 0c1f8b70e9 Reorg 2015-04-03 05:51:05 +01:00
Peter Boyle d066450a24 Reorg 2015-04-03 05:51:05 +01:00
Peter Boyle 18b26a7a70 MPI added 2015-04-03 05:34:51 +01:00
Peter Boyle b47314f726 MPI added 2015-04-03 05:34:51 +01:00
Peter Boyle d29733069f Patch 2015-04-03 05:33:13 +01:00
Peter Boyle 2de009d994 Patch 2015-04-03 05:33:13 +01:00
Peter Boyle 48581e8e8b Merge branch 'master' of https://github.com/paboyle/Grid 2015-04-03 05:32:12 +01:00
Peter Boyle cebf90195c Merge branch 'master' of https://github.com/paboyle/Grid 2015-04-03 05:32:12 +01:00
Peter Boyle 154a8700f4 Removing the Xcode project 2015-04-03 05:30:58 +01:00
Peter Boyle cc21f0a709 Removing the Xcode project 2015-04-03 05:30:58 +01:00
Peter Boyle 0c5c974e6d Renamed the namespace to Grid 2015-04-03 05:29:54 +01:00
Peter Boyle d198fcbc1c Renamed the namespace to Grid 2015-04-03 05:29:54 +01:00
Peter Boyle 06843d4574 Rename some files to make naming consistent 2015-04-03 04:58:03 +01:00
Peter Boyle c86f79c4be Rename some files to make naming consistent 2015-04-03 04:58:03 +01:00
Peter Boyle 7b97e50b7b MPI is now working and passing basic tests. Will start to construct a more sensible test suite shortly
since testing requirements now go beyond what a single Grid_main.cc can do.

Will need a more organised src tree for this and will require substantial reorg of build system.
2015-04-03 04:52:53 +01:00
Peter Boyle 9ba89e64dc MPI is now working and passing basic tests. Will start to construct a more sensible test suite shortly
since testing requirements now go beyond what a single Grid_main.cc can do.

Will need a more organised src tree for this and will require substantial reorg of build system.
2015-04-03 04:52:53 +01:00
azusayamaguchi 19372bf5ca COnfig file 2015-03-29 22:16:13 +01:00
azusayamaguchi 98be168396 COnfig file 2015-03-29 22:16:13 +01:00
Peter Boyle 19b9069453 Merge branch 'master' of https://github.com/paboyle/Grid 2015-03-29 22:05:16 +01:00
Peter Boyle 1a9d4d3655 Merge branch 'master' of https://github.com/paboyle/Grid 2015-03-29 22:05:16 +01:00
Peter Boyle e0af0e658d Commit 2015-03-29 22:04:49 +01:00
Peter Boyle 73aaec2df8 Commit 2015-03-29 22:04:49 +01:00
azusayamaguchi 4f57ccc66c No compile fix 2015-03-29 21:50:20 +01:00
azusayamaguchi d46e6adb8f No compile fix 2015-03-29 21:50:20 +01:00
Peter Boyle 9bea4e25ee Make file and configure 2015-03-29 21:44:22 +01:00
Peter Boyle 7f1af07fb3 Make file and configure 2015-03-29 21:44:22 +01:00
Peter Boyle 5560a84705 Merge branch 'master' of https://github.com/paboyle/Grid 2015-03-29 21:38:53 +01:00
Peter Boyle 8801c59cce Merge branch 'master' of https://github.com/paboyle/Grid 2015-03-29 21:38:53 +01:00
Peter Boyle 196fd203e2 Fixing the Checkerboarding cshift.
Implemented "fake" communications in preparation for the leap to MPI.
2015-03-29 20:35:37 +01:00
Peter Boyle 98f14f1030 Fixing the Checkerboarding cshift.
Implemented "fake" communications in preparation for the leap to MPI.
2015-03-29 20:35:37 +01:00
paboyle 886df6ed1e Update README.md 2015-03-07 07:20:12 +00:00
paboyle af0220a046 Update README.md 2015-03-07 07:20:12 +00:00
paboyle f04b6312c8 Update README 2015-03-07 07:19:01 +00:00
paboyle aef11025aa Update README 2015-03-07 07:19:01 +00:00
paboyle 1e08841fa5 Update INSTALL 2015-03-07 07:09:09 +00:00
paboyle 37a3b39a61 Update INSTALL 2015-03-07 07:09:09 +00:00
paboyle 483cab34ab Update AUTHORS 2015-03-07 07:00:39 +00:00
paboyle dd36baf3ce Update AUTHORS 2015-03-07 07:00:39 +00:00
Peter Boyle 82eeb9d07e Improving 2015-03-04 13:44:33 +00:00
Peter Boyle 613706dca2 Improving 2015-03-04 13:44:33 +00:00
Peter Boyle d9054f67fd remove 2015-03-04 13:43:48 +00:00
Peter Boyle e6e396b3f7 remove 2015-03-04 13:43:48 +00:00
Peter Boyle a8238d0b25 Move to better name 2015-03-04 13:43:19 +00:00
Peter Boyle b234865d77 Move to better name 2015-03-04 13:43:19 +00:00
Azusa Yamaguchi 4e8b9c6928 Changes for MIC 2015-03-04 13:25:23 +00:00
Azusa Yamaguchi 83f0dc19ff Changes for MIC 2015-03-04 13:25:23 +00:00
Peter Boyle 59eff71fc5 Extra files 2015-03-04 12:03:07 +00:00
Peter Boyle 2734107d5c Extra files 2015-03-04 12:03:07 +00:00
Peter Boyle d4a93ec7b4 missing 2015-03-04 11:58:45 +00:00
Peter Boyle b16e70dabc missing 2015-03-04 11:58:45 +00:00
Peter Boyle 96260b60b0 files 2015-03-04 11:57:14 +00:00
Peter Boyle a0b1e3afc9 files 2015-03-04 11:57:14 +00:00
Peter Boyle 63c7eb262e file 2015-03-04 11:55:44 +00:00
Peter Boyle 3ffaedce8e file 2015-03-04 11:55:44 +00:00
Peter Boyle 110ddd1900 install-sh distro 2015-03-04 11:54:46 +00:00
Peter Boyle e6df221165 install-sh distro 2015-03-04 11:54:46 +00:00
Peter Boyle 523abad40f Place them in to avoid forced autoreconf on user 2015-03-04 11:53:59 +00:00
Peter Boyle 3901b7d77a Place them in to avoid forced autoreconf on user 2015-03-04 11:53:59 +00:00
Peter Boyle d9cff588c5 Better openMP for Cshift 2015-03-04 11:50:59 +00:00
Peter Boyle 808066fdf1 Better openMP for Cshift 2015-03-04 11:50:59 +00:00
Peter Boyle 9e200b9d7a Merge branch 'master' of https://github.com/paboyle/Grid 2015-03-04 11:44:18 +00:00
Peter Boyle 3530000ea6 Merge branch 'master' of https://github.com/paboyle/Grid 2015-03-04 11:44:18 +00:00
Peter Boyle 09582509e5 Improving benchmark to include Cshift 2015-03-04 11:44:05 +00:00
Peter Boyle b01fa51db0 Improving benchmark to include Cshift 2015-03-04 11:44:05 +00:00
Azusa Yamaguchi eb15a8dacb AVX2 fix 2015-03-04 11:38:10 +00:00
Azusa Yamaguchi d7f1aa522e AVX2 fix 2015-03-04 11:38:10 +00:00
Peter Boyle 5aefa56e5c Better organisation 2015-03-04 05:34:15 +00:00
Peter Boyle 4ba6d36ad6 Better organisation 2015-03-04 05:34:15 +00:00
Peter Boyle b1cb3f255d Update organisation 2015-03-04 05:33:26 +00:00
Peter Boyle 0021b72da9 Update organisation 2015-03-04 05:33:26 +00:00
Peter Boyle 1a1474b323 Better organisation 2015-03-04 05:31:44 +00:00
Peter Boyle fdb886fe1a Better organisation 2015-03-04 05:31:44 +00:00
Peter Boyle ad1b9b6ccf Cleaning
Merge branch 'master' of https://github.com/paboyle/Grid
2015-03-04 05:12:51 +00:00
Peter Boyle 3916caf7c4 Cleaning
Merge branch 'master' of https://github.com/paboyle/Grid
2015-03-04 05:12:51 +00:00
Peter Boyle b7e2881014 Better organisation 2015-03-04 05:12:19 +00:00
paboyle b0c9282fe9 Delete COPYING 2015-03-04 04:55:04 +00:00
paboyle 3cb295ece1 Delete COPYING 2015-03-04 04:55:04 +00:00
paboyle c802a03e07 Delete INSTALL 2015-03-04 04:54:50 +00:00
paboyle 46b66c933e Delete INSTALL 2015-03-04 04:54:50 +00:00
Peter Boyle c80c881db0 Updating build system 2015-03-04 04:53:40 +00:00
Peter Boyle 74f28edbe5 Build progressing 2015-03-04 04:34:51 +00:00
Peter Boyle 3c5f08a1d6 Build system progressing 2015-03-04 04:13:07 +00:00
Peter Boyle 523e3bd8d5 Autoconf starting 2015-03-04 03:42:59 +00:00
Peter Boyle 8b17cbf9d7 Initial commit of Grid to GitHub 2015-03-04 03:12:19 +00:00
paboyle 8144438023 Initial commit 2015-03-04 02:30:11 +00:00
1113 changed files with 181851 additions and 24879 deletions
+130 -6
View File
@@ -1,8 +1,132 @@
# Exclude directories # Compiled Object files #
_site #########################
.sass-cache *.slo
.jekyll-metadata *.lo
pdf *.o
*.obj
# Exclude backup files # Editor files #
################
*~ *~
*#
*.sublime-*
# Precompiled Headers #
#######################
*.gch
*.pch
# Compiled Dynamic libraries #
##############################
*.so
*.dylib
*.dll
# Fortran module files #
########################
*.mod
# Compiled Static libraries #
#############################
*.lai
*.la
*.a
*.lib
# Executables #
###############
*.exe
*.out
*.app
# http://www.gnu.org/software/automake #
########################################
Makefile.in
Makefile
Config.h
Config.h.in
config.log
config.status
.deps
Make.inc
eigen.inc
Eigen.inc
# http://www.gnu.org/software/autoconf #
########################################
autom4te.cache
aclocal.m4
compile
configure
depcomp
install-sh
missing
stamp-h1
config.sub
config.guess
INSTALL
.dirstamp
ltmain.sh
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# build directory #
###################
build*/*
# IDE related files #
#####################
*.xcodeproj/*
build.sh
.vscode
*.code-workspace
# Eigen source #
################
lib/Eigen/*
# FFTW source #
################
lib/fftw/*
# libtool macros #
##################
m4/lt*
m4/libtool.m4
# github pages #
################
gh-pages/
# Buck files #
##############
.buck*
buck-out
BUCK
make-bin-BUCK.sh
# generated sources #
#####################
lib/qcd/spin/gamma-gen/*.h
lib/qcd/spin/gamma-gen/*.cc
lib/version.h
# vs code editor files #
########################
.vscode/
.vscode/settings.json
settings.json
+60
View File
@@ -0,0 +1,60 @@
language: cpp
cache:
directories:
- clang
matrix:
include:
- os: osx
osx_image: xcode8.3
compiler: clang
before_install:
- export GRIDDIR=`pwd`
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CC" == "clang" ]] && [ ! -e clang/bin ]; then wget $CLANG_LINK; tar -xf `basename $CLANG_LINK`; mkdir clang; mv clang+*/* clang/; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CC" == "clang" ]]; then export PATH="${GRIDDIR}/clang/bin:${PATH}"; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CC" == "clang" ]]; then export LD_LIBRARY_PATH="${GRIDDIR}/clang/lib:${LD_LIBRARY_PATH}"; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install libmpc; fi
install:
- export CWD=`pwd`
- echo $CWD
- export CC=$CC$VERSION
- export CXX=$CXX$VERSION
- echo $PATH
- which autoconf
- autoconf --version
- which automake
- automake --version
- which $CC
- $CC --version
- which $CXX
- $CXX --version
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export LDFLAGS='-L/usr/local/lib'; fi
script:
- ./bootstrap.sh
- mkdir build
- cd build
- mkdir lime
- cd lime
- mkdir build
- cd build
- wget http://usqcd-software.github.io/downloads/c-lime/lime-1.3.2.tar.gz
- tar xf lime-1.3.2.tar.gz
- cd lime-1.3.2
- ./configure --prefix=$CWD/build/lime/install
- make -j4
- make install
- cd $CWD/build
- ../configure --enable-precision=single --enable-simd=SSE4 --enable-comms=none --with-lime=$CWD/build/lime/install
- make -j4
- ./benchmarks/Benchmark_dwf --threads 1 --debug-signals
- echo make clean
- ../configure --enable-precision=double --enable-simd=SSE4 --enable-comms=none --with-lime=$CWD/build/lime/install
- make -j4
- ./benchmarks/Benchmark_dwf --threads 1 --debug-signals
- make check
+4
View File
@@ -0,0 +1,4 @@
Author: Azusa Yamaguchi <ayamaguc@staffmail.ed.ac.uk>
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
Author: Peter Boyle <peterboyle@MacBook-Pro.local>
Author: paboyle <paboyle@ph.ed.ac.uk>
-571
View File
@@ -1,571 +0,0 @@
## [3.4.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.8)
### Enhancements
- Improve type readability for larger viewports by bumping up base `font-size`. [#533](https://github.com/mmistakes/minimal-mistakes/issues/533)
- Update Portuguese localized UI text. [#541](https://github.com/mmistakes/minimal-mistakes/pull/541)
- Add `page.title` and via parameter to Twitter share link. [#538](https://github.com/mmistakes/minimal-mistakes/pull/538)
### Bug Fixes
- Fix Last.fm author profile URL. [#540](https://github.com/mmistakes/minimal-mistakes/pull/540)
### Maintenance
- Move Brazilian Portuguese localized text under `pt-BR` key.
## [3.4.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.7)
### Enhancements
- Add `layout` based and user-defined class names to `<body>` element for added CSS hooks. [#526](https://github.com/mmistakes/minimal-mistakes/pull/526)
- Add simplified Chinese localized UI text. [#532](https://github.com/mmistakes/minimal-mistakes/pull/532)
### Bug Fixes
- Remove duplicate include of `base_path` in category-list.html [#522](https://github.com/mmistakes/minimal-mistakes/pull/522)
## [3.4.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.6)
### Enhancements
- Add Italian "comments" related localized UI text. [#514](https://github.com/mmistakes/minimal-mistakes/pull/514)
### Bug Fixes
- Disable `compress` HTML layout by default. To enable add `layout: compress` to `_layouts/default.html`.
## [3.4.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.5)
### Enhancements
- Improve line numbered code block styling when using `{% highlight linenos %}` tag. [#513](https://github.com/mmistakes/minimal-mistakes/issues/513)
- Add English fallback to "Follow" button label. [#496](https://github.com/mmistakes/minimal-mistakes/pull/496)
### Bug Fixes
- Fix Firefox alignment issues with code blocks generated with the `{% highlight %}` tag. [#512](https://github.com/mmistakes/minimal-mistakes/issues/512)
### Maintenance
- Clarified comment for `author.stackoverflow` value used in author sidebar links. [#487](https://github.com/mmistakes/minimal-mistakes/pull/487)
- Add list of localized text strings. [#488](https://github.com/mmistakes/minimal-mistakes/pull/488)
- Add `{% highlight %}` code block examples to demo site.
- Add documentation for using custom sidebar navigation menus. [#476](https://github.com/mmistakes/minimal-mistakes/issues/476)
## [3.4.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.4)
### Enhancements
- Add French "comments" related localized UI text. [#472](https://github.com/mmistakes/minimal-mistakes/pull/472)
### Bug Fixes
- Exclude `vendor` in Jekyll config file.
- Fix Liquid syntax error for offending parenthesis. [#479](https://github.com/mmistakes/minimal-mistakes/issues/479)
### Maintenance
- Update gems: `colorator` (1.1.0), `forwardable-extended` (2.6.0), `github-pages` (93), `jekyll` (= 3.2.1), `minima` (= 1.0.1).
## [3.4.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.3)
### Enhancements
- Make ["honeypot" `input`](https://github.com/mmistakes/minimal-mistakes/commit/06a8249a69a37dddda7e2a5bfbe32056c1a9a607) in Staticman comment form less obvious to spam bots
- Add padding to `.highlight` code blocks to better [align `overflow` scrollbar](https://github.com/mmistakes/minimal-mistakes/commit/e4abec0a6f7f8cff72505ca0754615df294fd5b3) to the bottom.
- Add additional image options for Twitter card social sharing meta tags. [#466](https://github.com/mmistakes/minimal-mistakes/pull/466)
- Add structured data markup for Staticman comments. [#458](https://github.com/mmistakes/minimal-mistakes/issues/458)
### Bug Fixes
- Format `og:locale` tag with `_` instead of `-`. [#462](https://github.com/mmistakes/minimal-mistakes/issues/462)
### Maintenance
- Add note to docs about using `url: http://localhost:4000` when working locally.
## [3.4.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.2)
### Enhancements
- Improve UX of static comment forms. [#448](https://github.com/mmistakes/minimal-mistakes/issues/448)
## [3.4.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.1)
### Enhancements
- Add `staticman.filename` configuration with UNIX timestamp for sorting data files. example ~> `comment-1470943149`.
### Bug Fixes
- Don't add `<a>` to author name if URL is blank.
## [3.4.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.0)
### Enhancements
- Support static-based commenting via [Staticman](https://staticman.net/) for sites hosted with GitHub Pages. [#424](https://github.com/mmistakes/minimal-mistakes/issues/424)
## [3.3.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.7)
### Bug Fixes
- Re-enabled Jekyll plugins in `_config.yml` in case they aren't autoloaded in `Gemfile`. [#417](https://github.com/mmistakes/minimal-mistakes/issues/417)
### Enhancements
- Fallback to `site.github.url` for use in `{{ base_path }}` when `site.url` is `nil`.
- Replace Sass and Autoprefixer `npm` build scripts with [Jekyll's built-in asset support](https://jekyllrb.com/docs/assets/). [#333](https://github.com/mmistakes/minimal-mistakes/issues/333)
### Maintenance
- Document `site.repository` and its role with [`github-metadata`](https://github.com/jekyll/github-metadata) gem.
- Add sample [archive page with content](https://mmistakes.github.io/minimal-mistakes/archive-layout-with-content/) for testing styles on demo site.
## [3.3.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.6)
### Bug Fixes
- Fix blank `site.teaser` bug. [#412](https://github.com/mmistakes/minimal-mistakes/issues/412)
## [3.3.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.5)
### Enhancements
- Add English default text `site.locale` strings. [#407](https://github.com/mmistakes/minimal-mistakes/issues/407)
- Add Portuguese localized UI text. [#411](https://github.com/mmistakes/minimal-mistakes/pull/411)
- Add Italian localized UI text. [#409](https://github.com/mmistakes/minimal-mistakes/pull/409)
### Maintenance
- Remove unused Google AdSense variables in `_config.yml`. [#404](https://github.com/mmistakes/minimal-mistakes/issues/404)
- Update `Gemfile` instructions for using `github-pages` vs. native `jekyll` gems.
- Disable `gems:` in `_config.yml` and enable plugins with Bundler instead.
- Add `repository` to `_config.yml` to suppress GitHub Pages error `Liquid Exception: No repo name found.`
## [3.3.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.4)
### Enhancements
- Add support for configurable feed URL to use a service like FeedBurner instead of linking directly to `feed.xml` in `<head>` and the site footer. [#378](https://github.com/mmistakes/minimal-mistakes/issues/378), [#379](https://github.com/mmistakes/minimal-mistakes/pull/379), [#406](https://github.com/mmistakes/minimal-mistakes/pull/406)
- Add Turkish localized UI text. [#403](https://github.com/mmistakes/minimal-mistakes/pull/403)
### Maintenance
- Update gems: `activesupport` (4.2.7), `ffi` (1.9.14), `github-pages` (88), `jekyll-redirect-from` (0.11.0), `jekyll-watch` (1.5.0).
## [3.3.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.3)
### Enhancements
- Make footer stick to the bottom of the page.
### Bug Fixes
- Fix `gallery` size bug [#402](https://github.com/mmistakes/minimal-mistakes/issues/402)
### Maintenance
- Set default `lang` to `en`.
## [3.3.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.2)
### Bug Fixes
- Fix JavaScript that triggers "sticky" sidebar to avoid layout issues on screen sizes < `1024px`. [#396](https://github.com/mmistakes/minimal-mistakes/issues/396)
## [3.3.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.1)
### Enhancements
- Enable image popup on < 500px wide screens. [#385](https://github.com/mmistakes/minimal-mistakes/issues/385)
- Indicate the relationship between component URLs in a paginated series by applying `rel="prev"` and `rel="next"` to pages that use `site.paginator`. [#253](https://github.com/mmistakes/minimal-mistakes/issues/253)
- Improve link posts in archive listings. [#276](https://github.com/mmistakes/minimal-mistakes/issues/276)
### Maintenance
- Update gems: `github-pages` (86), `ffi` 1.9.13, `jekyll-mentions` 1.1.3, and `rouge` 1.11.1
- Fix note about custom sidebar content appearing below author profile. [#388](https://github.com/mmistakes/minimal-mistakes/issues/388)
## [3.2.13](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.13)
### Enhancements
- Add English default UI text for Canada, Great Britain, and Australia. [#377](https://github.com/mmistakes/minimal-mistakes/issues/377)
- Switch default locale from `en-US` to `en`.
## [3.2.12](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.12)
### Enhancements
- Remove window width "magic number" from sticky sidebar check in `main.js` for improved flexibility. [#375](https://github.com/mmistakes/minimal-mistakes/pull/375)
### Bug Fixes
- Fix author override conditional where a missing `authors.yml` would show broken sidebar content. Defaults to `site.author`. [#376](https://github.com/mmistakes/minimal-mistakes/pull/376)
## [3.2.11](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.11)
### Bug Fixes
- Fix disappearing author sidebar links [#372](https://github.com/mmistakes/minimal-mistakes/issues/372)
### Maintenance
- Update gems: `github-pages` (84), `jekyll-github-metadata` 2.0.2, and `kramdown` 1.11.1
- Update vendor JavaScript: jQuery 1.12.4, Stickyfill.js 1.1.4
- Update Font Awesome 4.6.3
## [3.2.10](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.10)
### Maintenance
- Add `CONTRIBUTING.md`
## [3.2.9](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.9)
### Enhancements
- Add support for [header overlay images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#header-overlay) for Open Graph images. [#358](https://github.com/mmistakes/minimal-mistakes/pull/358)
### Bug Fixes
- Fix `Person` typo Schema.org type [#358](https://github.com/mmistakes/minimal-mistakes/pull/358)
### Maintenance
- Update `github-pages` gem and dependencies.
- Remove `minutes_read` to avoid awkward reading time wording [#356](https://github.com/mmistakes/minimal-mistakes/issues/356)
## [3.2.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.8)
### Bug Fixes
- Remove `cursor: pointer` that appears on white-space surrounding author side list items and links. [#354](https://github.com/mmistakes/minimal-mistakes/pull/354)
### Maintenance
- Add contributing information to `README.md`. [#357](https://github.com/mmistakes/minimal-mistakes/issues/357)
## [3.2.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.7)
### Enhancements
- Add French localized UI text. [#346](https://github.com/mmistakes/minimal-mistakes/pull/346)
### Bug Fixes
- Fix branch logic for Yandex and Alexa in `seo.html`. [#348](https://github.com/mmistakes/minimal-mistakes/pull/348)
## [3.2.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.6)
### Bug Fixes
- Fix error `Liquid Exception: divided by 0 in _includes/archive-single.html, included in _layouts/single.html` caused by null `words_per_minute` in `_config.yml`. [#345](https://github.com/mmistakes/minimal-mistakes/pull/345)
## [3.2.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.5)
### Bug Fixes
- Fix link color in hero overlay to be white.
- Remove underlines from archive item titles.
## [3.2.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.4)
### Enhancements
- Improve text alignment of masthead, hero overlay, page footer to be flush left and remove awkward white-space gaps. [#342](https://github.com/mmistakes/minimal-mistakes/issues/342)
- Add Spanish localized UI text. [#338](https://github.com/mmistakes/minimal-mistakes/pull/338)
### Bug Fixes
- Fix alignment of icons in author sidebar [#341](https://github.com/mmistakes/minimal-mistakes/issues/341)
### Maintenance
- Add background color to page footer to set it apart from main content. [#342](https://github.com/mmistakes/minimal-mistakes/issues/342)
- Add terms and privacy policy to theme's demo site. [#343](https://github.com/mmistakes/minimal-mistakes/issues/343)
- Update screenshots found in theme documentation.
## [3.2.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.3)
### Enhancements
- Add [Discourse](https://www.discourse.org/) as a commenting provider. [#335](https://github.com/mmistakes/minimal-mistakes/pull/335)
## [3.2.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.2)
### Enhancements
- Add support for image captions in Magnific Popup overlays via the [`gallery`](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery) helper. [#334](https://github.com/mmistakes/minimal-mistakes/issues/334)
## [3.2.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.1)
### Bug Fixes
- Remove need for "double tapping" masthead menu links on iOS devices. [#315](https://github.com/mmistakes/minimal-mistakes/issues/315)
### Maintenance
- Add `ISSUE_TEMPLATE.md` for improve issue submission process.
## [3.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.0)
### Bug Fixes
- Fix missing category/tag links in post footer due to possible conflict with `site.tags` and `site.categories`. [#329](https://github.com/mmistakes/minimal-mistakes/issues/329#issuecomment-222375568)
## [3.1.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.8)
### Bug Fixes
- Fix `Liquid Exception: undefined method 'gsub' for nil:NilClass in _layouts/single.html` error when `page.title` is null. `<h1>` element is now conditional if `title: ` is not set for a `page` or collection item. [#312](https://github.com/mmistakes/minimal-mistakes/issues/312)
### Maintenance
- Remove duplicate `fa-twitter` and `fa-twitter-square` classes from `_utilities.scss`. [#302](https://github.com/mmistakes/minimal-mistakes/issues/302)
- Document installing additional Jekyll gem dependencies when using `gem "jekyll"` instead of `gem "github-pages"` to avoid any errors on run. [#305](https://github.com/mmistakes/minimal-mistakes/issues/305)
## [3.1.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.7)
### Enhancements
- Add translation key for "Recent Posts" used in home page `index.html`. [#316](https://github.com/mmistakes/minimal-mistakes/pull/316)
### Maintenance
- Small fix to avoid underlying the whitespace between icons and related text when hovering. [#303](https://github.com/mmistakes/minimal-mistakes/pull/303)
## [3.1.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.6)
### Maintenance
- Update gem dependencies. Run `bundle` to update `Gemfile.lock`.
## [3.1.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.5)
### Maintenance
- Fix `www` and `https` links in author profile include [#293](https://github.com/mmistakes/minimal-mistakes/pull/293)
## [3.1.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.4)
### Enhancements
- Add overlay_filter param to hero headers [#298](https://github.com/mmistakes/minimal-mistakes/pull/298)
## [3.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.3)
### Enhancements
- Improve `site.locale` documentation [#284](https://github.com/mmistakes/minimal-mistakes/issues/284)
- Remove ProTip note about protocol-less `site.url` as it is an anti-pattern [#288](https://github.com/mmistakes/minimal-mistakes/issues/288)
### Bug Fixes
- Fix `og_image` URL in seo.html [#277](https://github.com/mmistakes/minimal-mistakes/issues/277)
- Fix `author_profile` toggle when assigned in a `_layout` [#285](https://github.com/mmistakes/minimal-mistakes/issues/285)
- Fix typo in `build:all` npm script [#283](https://github.com/mmistakes/minimal-mistakes/pull/283)
- Fix URL typo documentation [#287](https://github.com/mmistakes/minimal-mistakes/issues/287)
- SEO author bug. If `twitter.username` is set and `author.twitter` is `nil` bad things happen. [#289](https://github.com/mmistakes/minimal-mistakes/issues/289)
## [3.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.2)
### Enhancements
- Explain how to use `nav_list` helper in [documentation](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list).
- Reduce left/right padding on smaller screens to increase width of main content column.
### Bug Fixes
- Fix alignment issues with related posts [#273](https://github.com/mmistakes/minimal-mistakes/issues/273) and "Follow" button in author profile [#274](https://github.com/mmistakes/minimal-mistakes/issues/274).
## [3.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.1)
### Bug Fix
- Fixed reading time bug when `words_per_minute` wasn't set in `_config.yml` [#271](https://github.com/mmistakes/minimal-mistakes/issues/271)
## [3.1.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.0)
### Enhancements
- Updated [Font Awesome](https://fortawesome.github.io/Font-Awesome/whats-new/) to version 4.6.1
- Added optional GitHub and Bitbucket links to footer if set on `site.author` in `_config.yml`.
### Bug Fixes
- Fixed Bitbucket URL typo in author sidebar.
## [3.0.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.0.3)
### Enhancements
- Rebuilt the entire theme: layouts, includes, stylesheets, scripts, you name it.
- Refreshed the look and feel while staying true to the original design of the theme (author sidebar/main content).
- Replaced grid system with [Susy](http://susy.oddbird.net/).
- Replaced Grunt tasks with `npm` scripts.
- Removed Google Fonts and replaced with system fonts to improve performance (they can be [added back](https://mmistakes.github.io/minimal-mistakes/docs/stylesheets/) if desired)
- Greatly improved [theme documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/).
- Increased the amount of sample posts, sample pages, and sample collections to throughly test the theme and edge-cases.
- Moved all sample content and assets out of `master` to keep it as clean as possible for forking.
- Added new layouts for `splash` pages, archives for [`jekyll-archives`](https://github.com/jekyll/jekyll-archives) if enabled, and [`compress.html`](https://github.com/penibelst/jekyll-compress-html) to improve performance.
- Added taxonomy links to posts (tags and categories).
- Added optional "reading time" meta data.
- Improved Liquid used for Twitter Cards and Open Graph data in `<head>`.
- Improved `gallery` include helper and added `feature_row` for use with splash page layout.
- Added Keybase.io, author web URI, and Bitbucket optional links to sidebar.
- Add `feed.xml` link to footer.
- Added a [UI text data file](https://mmistakes.github.io/minimal-mistakes/docs/ui-text/) to easily change all text found in the theme.
- Added LinkedIn to optional social share buttons.
- Added Facebook, Google+, and custom commenting options in addition to Disqus.
- Added optional breadcrumb links.
## [2.2.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.2.1)
## [2.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.2.0)
### Enhancements
- Add support for Jekyll 3.0
- Minor updates to syntax highlighting CSS and theme documentation
## [2.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.3)
### Enhancements
- Cleaner print styles that remove the top navigation, social sharing buttons, and other elements not needed when printed.
## [2.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.2)
### Enhancements
- Add optional CodePen icon/url to author side bar [#156](https://github.com/mmistakes/minimal-mistakes/pull/156)
- Documented Stackoverflow username explanation in `_config.yml` [#157](https://github.com/mmistakes/minimal-mistakes/pull/157)
- Simplified Liquid in `post-index.html` to better handle year listings [#166](https://github.com/mmistakes/minimal-mistakes/pull/166)
### Bug Fixes
- Cleanup Facebook related Open Graph meta tags [#149](https://github.com/mmistakes/minimal-mistakes/issues/149)
- Corrected minor typos [#158](https://github.com/mmistakes/minimal-mistakes/pull/158) [#175](https://github.com/mmistakes/minimal-mistakes/issues/175)
## [2.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.1)
### Enhancements
- Add optional XING profile link to author sidebar
- Include open graph meta tags for feature image (if assigned) [#149](https://github.com/mmistakes/minimal-mistakes/issues/149)
- Create an include for feed footer
### Bug Fixes
- Remove http protocol from Google search form on sample 404 page
- Only show related posts if there are one or more available
- Fix alignment of email address link in author sidebar
## [2.1.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.0)
### Enhancements
- Add optional social sharing buttons ([#42](https://github.com/mmistakes/minimal-mistakes/issues/42))
![social sharing buttons](https://cloud.githubusercontent.com/assets/1376749/5860522/d9f28a96-a22f-11e4-9b83-940a3a9a766a.png)
- Add Soundcloud, YouTube ([#95](https://github.com/mmistakes/minimal-mistakes/pull/95)), Flickr ([#119](https://github.com/mmistakes/minimal-mistakes/pull/119)), and Weibo ([#116](https://github.com/mmistakes/minimal-mistakes/pull/116)) icons for use in author sidebar.
- Fix typos in posts and documentation and remove references to Less
- Include note about Octopress gem being optional
- Post author override support extended to the Atom feed ([#71](https://github.com/mmistakes/minimal-mistakes/pull/71))
- Only include email address in feed if specified in `_config.yml` or author `_data`
- Wrap all page content in `#main` to harmonize article and post index styles ([#86](https://github.com/mmistakes/minimal-mistakes/issues/86))
- Include new sample feature images for posts and pages
- Table of contents improvements: fix collapse toggle, indent nested elements, show on small screens, and create an `_include` for reusing in posts and pages.
- Include note about running Jekyll with `bundle exec` when using Bundler
- Fix home page path in top navigation
- Remove Google Authorship ([#120](https://github.com/mmistakes/minimal-mistakes/issues/120))
- Remove duplicate author content that displayed in `div.article-author-bottom`
- Removed unused `_sass/print.scss` styles
- Improve comments in `.scss` files
## [2.0.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/v2.0)
## [1.3.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.3.3)
### Enhancements
- Added new icons and profile links for Stackoverflow, Dribbble, Pinterest, Foursquare, and Steam to the author bio sidebar.
- Cleaned up the Kramdown auto table of contents styling to be more readable
- Removed page width specific .less stylesheets and created mixins for easier updating
- Removed Modernizr since it wasn't being used
- Added pages to sitemap.xml
- Added category: to rake new_post task
- Minor typographic changes
### Bug Fixes
- Corrected various broken links in README and Theme Setup.
## [1.3.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.3.1)
### Enhancements
- Cleaned up table of contents styling
- Reworked top navigation to be a better experience on small screens. Nav items now display vertically when the menu button is tapped, revealing links with larger touch targets.
![menu animation](https://camo.githubusercontent.com/3fbd8c1326485f4b1ab32c0005c0fca7660b5d31/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313337363734392f323136343037352f31653366303663322d393465372d313165332d383961612d6436623636376562306564662e676966)
## [1.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.2.0)
### Bug Fixes
- Table weren't filling the entire width of the content container. They now scale at 100%. Thanks [@dhruvbhatia](https://github.com/dhruvbhatia)
### Enhancements
- Decreased spacing between Markdown footnotes
- Removed dark background on footer
- Removed UPPERCASE styling on post titles in the index listing
## [1.1.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.4)
### Bug Fixes
- Fix top navigation bug issue ([#10](https://github.com/mmistakes/minimal-mistakes/issues/10)) for real this time. Remember to clear your floats kids.
## [1.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.3)
### Bug Fixes
- Fix top navigation links that weren't click able on small viewports (Issue [#10](https://github.com/mmistakes/minimal-mistakes/issues/10)).
- Remove line wrap from top navigation links that may span multiple lines.
## [1.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.2)
### Enhancements
- Added Grunt build script for compiling Less/JavaScript and optimizing image assets.
- Added support for large image summary Twitter card.
- Stylesheet adjustments
## [1.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.1)
### Bug Fixes
- Removed [Typeplate](http://typeplate.com/) styles. Was [causing issues with newer versions of Less](https://github.com/typeplate/typeplate.github.io/issues/108) and is no longer maintained.
### Enhancements
- Added [image attribution](http://mmistakes.github.io/minimal-mistakes/theme-setup/#feature-images) for post and page feature images.
- Added [404 page](http://mmistakes.github.io/minimal-mistakes/404.html).
- Cleaned up various Less variables to better align with naming conventions used in other MM Jekyll themes.
- Removed Chrome Frame references.
- Added global CSS3 transitions to text and block elements.
- Improved typography in a few places.
## [1.0.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/v1.0.2)
### Enhancements
- Google Analytics, Google Authorship, webmaster verifies, and Twitter card meta are now optional.
## [1.0.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/v1.0.1)
+84 -105
View File
@@ -1,30 +1,14 @@
--- GNU GENERAL PUBLIC LICENSE
layout: splash Version 2, June 1991
title : "GRID license"
author_profile: false
excerpt: "Grid is licensed under GPL 2.0"
permalink: /license/
header:
overlay_color: "#333"
cta_label: "GPL licenses FAQs"
cta_url: "https://www.gnu.org/licenses/gpl-faq.html"
---
{% include base_path %} Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
GNU General Public License Preamble
==========================
_Version 2, June 1991_ The licenses for most software are designed to take away your
_Copyright © 1989, 1991 Free Software Foundation, Inc.,_
_51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA_
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
### Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This software--to make sure the software is free for all its users. This
@@ -34,55 +18,56 @@ using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to the GNU Lesser General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things. in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights. anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it. distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their source code. And you must show them these terms so they know their
rights. rights.
We protect your rights with two steps: **(1)** copyright the software, and We protect your rights with two steps: (1) copyright the software, and
**(2)** offer you this license which gives you legal permission to copy, (2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software. distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original that any problems introduced by others will not reflect on the original
authors' reputations. authors' reputations.
Finally, any free program is threatened constantly by software Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all. patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
**0.** This License applies to any program or other work which contains 0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The Program, below, under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a work based on the Program refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law: means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it, that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in language. (Hereinafter, translation is included without limitation in
the term modification.) Each licensee is addressed as you. the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of covered by this License; they are outside its scope. The act of
@@ -91,7 +76,7 @@ is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program). Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does. Whether that is true depends on what the Program does.
**1.** You may copy and distribute verbatim copies of the Program's 1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the copyright notice and disclaimer of warranty; keep intact all the
@@ -102,27 +87,29 @@ along with the Program.
You may charge a fee for the physical act of transferring a copy, and You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee. you may at your option offer warranty protection in exchange for a fee.
**2.** You may modify your copy or copies of the Program or any portion 2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1 distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions: above, provided that you also meet all of these conditions:
* **a)** You must cause the modified files to carry prominent notices a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change. stating that you changed the files and the date of any change.
* **b)** You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any b) You must cause any work that you distribute or publish, that in
part thereof, to be licensed as a whole at no charge to all third whole or in part contains or is derived from the Program or any
parties under the terms of this License. part thereof, to be licensed as a whole at no charge to all third
* **c)** If the modified program normally reads commands interactively parties under the terms of this License.
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an c) If the modified program normally reads commands interactively
announcement including an appropriate copyright notice and a when run, you must cause it, when started running for such
notice that there is no warranty (or else, saying that you provide interactive use in the most ordinary way, to print or display an
a warranty) and that users may redistribute the program under announcement including an appropriate copyright notice and a
these conditions, and telling the user how to view a copy of this notice that there is no warranty (or else, saying that you provide
License. (Exception: if the Program itself is interactive but a warranty) and that users may redistribute the program under
does not normally print such an announcement, your work based on these conditions, and telling the user how to view a copy of this
the Program is not required to print an announcement.) License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
@@ -144,24 +131,26 @@ with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under a storage or distribution medium does not bring the other work under
the scope of this License. the scope of this License.
**3.** You may copy and distribute the Program (or a work based on it, 3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following: Sections 1 and 2 above provided that you also do one of the following:
* **a)** Accompany it with the complete corresponding machine-readable a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or, 1 and 2 above on a medium customarily used for software interchange; or,
* **b)** Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your b) Accompany it with a written offer, valid for at least three
cost of physically performing source distribution, a complete years, to give any third party, for a charge no more than your
machine-readable copy of the corresponding source code, to be cost of physically performing source distribution, a complete
distributed under the terms of Sections 1 and 2 above on a medium machine-readable copy of the corresponding source code, to be
customarily used for software interchange; or, distributed under the terms of Sections 1 and 2 above on a medium
* **c)** Accompany it with the information you received as to the offer customarily used for software interchange; or,
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you c) Accompany it with the information you received as to the offer
received the program in object code or executable form with such to distribute corresponding source code. (This alternative is
an offer, in accord with Subsection b above.) allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source making modifications to it. For an executable work, complete source
@@ -180,7 +169,7 @@ access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
**4.** You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License. void, and will automatically terminate your rights under this License.
@@ -188,7 +177,7 @@ However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such this License will not have their licenses terminated so long as such
parties remain in full compliance. parties remain in full compliance.
**5.** You are not required to accept this License, since you have not 5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by prohibited by law if you do not accept this License. Therefore, by
@@ -197,7 +186,7 @@ Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying all its terms and conditions for copying, distributing or modifying
the Program or works based on it. the Program or works based on it.
**6.** Each time you redistribute the Program (or any work based on the 6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further these terms and conditions. You may not impose any further
@@ -205,7 +194,7 @@ restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to You are not responsible for enforcing compliance by third parties to
this License. this License.
**7.** If, as a consequence of a court judgment or allegation of patent 7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not otherwise) that contradict the conditions of this License, they do not
@@ -237,7 +226,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
**8.** If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding may add an explicit geographical distribution limitation excluding
@@ -245,20 +234,20 @@ those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License. the limitation as if written in the body of this License.
**9.** The Free Software Foundation may publish revised and/or new versions 9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to be similar in spirit to the present version, but may differ in detail to
address new problems or concerns. address new problems or concerns.
Each version is given a distinguishing version number. If the Program Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and any specifies a version number of this License which applies to it and "any
later version, you have the option of following the terms and conditions later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software this License, you may choose any version ever published by the Free Software
Foundation. Foundation.
**10.** If you wish to incorporate parts of the Program into other free 10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes Software Foundation, write to the Free Software Foundation; we sometimes
@@ -266,19 +255,19 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally. of promoting the sharing and reuse of software generally.
### NO WARRANTY NO WARRANTY
**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION. REPAIR OR CORRECTION.
**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
@@ -288,18 +277,18 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
### How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms. free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least convey the exclusion of warranty; and each file should have at least
the copyright line and a pointer to where the full notice is found. the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.> <one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author> Copyright (C) <year> <name of author>
@@ -328,20 +317,20 @@ when it starts in an interactive mode:
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details. under certain conditions; type `show c' for details.
The hypothetical commands `show w` and `show c` should show the appropriate The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may parts of the General Public License. Of course, the commands you use may
be called something other than `show w` and `show c`; they could even be be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program. mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your You should also get your employer (if you work as a programmer) or your
school, if any, to sign a copyright disclaimer for the program, if school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names: necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker. `Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989 <signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice Ty Coon, President of Vice
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
@@ -349,13 +338,3 @@ consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.
{% for post in paginator.posts %}
{% include archive-single.html %}
{% endfor %}
{% include paginator.html %}
View File
-27
View File
@@ -1,27 +0,0 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "github-pages", group: :jekyll_plugins
# If you want to use Jekyll native, uncomment the line below.
# To upgrade, run `bundle update`.
# gem "jekyll"
gem "wdm", "~> 0.1.0" if Gem.win_platform?
# If you have any plugins, put them here!
group :jekyll_plugins do
# gem "jekyll-archives"
gem 'jekyll-octicons'
end
-155
View File
@@ -1,155 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (4.2.7)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.4.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.10.0)
colorator (1.1.0)
ethon (0.9.1)
ffi (>= 1.3.0)
execjs (2.7.0)
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
ffi (1.9.14)
ffi (1.9.14-x64-mingw32)
forwardable-extended (2.6.0)
gemoji (2.1.0)
github-pages (104)
activesupport (= 4.2.7)
github-pages-health-check (= 1.2.0)
jekyll (= 3.3.0)
jekyll-avatar (= 0.4.2)
jekyll-coffeescript (= 1.0.1)
jekyll-feed (= 0.8.0)
jekyll-gist (= 1.4.0)
jekyll-github-metadata (= 2.2.0)
jekyll-mentions (= 1.2.0)
jekyll-paginate (= 1.1.0)
jekyll-redirect-from (= 0.11.0)
jekyll-sass-converter (= 1.3.0)
jekyll-seo-tag (= 2.1.0)
jekyll-sitemap (= 0.12.0)
jekyll-swiss (= 0.4.0)
jemoji (= 0.7.0)
kramdown (= 1.11.1)
liquid (= 3.0.6)
listen (= 3.0.6)
mercenary (~> 0.3)
minima (= 2.0.0)
rouge (= 1.11.1)
terminal-table (~> 1.4)
github-pages-health-check (1.2.0)
addressable (~> 2.3)
net-dns (~> 0.8)
octokit (~> 4.0)
public_suffix (~> 1.4)
typhoeus (~> 0.7)
html-pipeline (2.4.2)
activesupport (>= 2)
nokogiri (>= 1.4)
i18n (0.7.0)
jekyll (3.3.0)
addressable (~> 2.4)
colorator (~> 1.0)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
liquid (~> 3.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 1.7)
safe_yaml (~> 1.0)
jekyll-avatar (0.4.2)
jekyll (~> 3.0)
jekyll-coffeescript (1.0.1)
coffee-script (~> 2.2)
jekyll-feed (0.8.0)
jekyll (~> 3.3)
jekyll-gist (1.4.0)
octokit (~> 4.2)
jekyll-github-metadata (2.2.0)
jekyll (~> 3.1)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.2.0)
activesupport (~> 4.0)
html-pipeline (~> 2.3)
jekyll (~> 3.0)
jekyll-octicons (3.0.1)
jekyll (~> 3.1)
octicons (~> 3.0)
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.11.0)
jekyll (>= 2.0)
jekyll-sass-converter (1.3.0)
sass (~> 3.2)
jekyll-seo-tag (2.1.0)
jekyll (~> 3.3)
jekyll-sitemap (0.12.0)
jekyll (~> 3.3)
jekyll-swiss (0.4.0)
jekyll-watch (1.5.0)
listen (~> 3.0, < 3.1)
jemoji (0.7.0)
activesupport (~> 4.0)
gemoji (~> 2.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0)
json (1.8.3)
kramdown (1.11.1)
liquid (3.0.6)
listen (3.0.6)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9.7)
mercenary (0.3.6)
mini_portile2 (2.1.0)
minima (2.0.0)
minitest (5.9.1)
multipart-post (2.0.0)
net-dns (0.8.0)
nokogiri (1.6.8.1)
mini_portile2 (~> 2.1.0)
nokogiri (1.6.8.1-x64-mingw32)
mini_portile2 (~> 2.1.0)
octicons (3.0.1)
nokogiri (>= 1.6.3.1)
octokit (4.4.1)
sawyer (~> 0.7.0, >= 0.5.3)
pathutil (0.14.0)
forwardable-extended (~> 2.6)
public_suffix (1.5.3)
rb-fsevent (0.9.8)
rb-inotify (0.9.7)
ffi (>= 0.5.0)
rouge (1.11.1)
safe_yaml (1.0.4)
sass (3.4.22)
sawyer (0.7.0)
addressable (>= 2.3.5, < 2.5)
faraday (~> 0.8, < 0.10)
terminal-table (1.7.3)
unicode-display_width (~> 1.1.1)
thread_safe (0.3.5)
typhoeus (0.8.0)
ethon (>= 0.8.0)
tzinfo (1.2.2)
thread_safe (~> 0.1)
unicode-display_width (1.1.1)
PLATFORMS
ruby
x64-mingw32
DEPENDENCIES
github-pages
jekyll-octicons
BUNDLED WITH
1.13.3
+336 -17
View File
@@ -1,21 +1,340 @@
The MIT License (MIT) GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (c) 2016 Michael Rose Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Permission is hereby granted, free of charge, to any person obtaining a copy Preamble
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all The licenses for most software are designed to take away your
copies or substantial portions of the Software. freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+21
View File
@@ -0,0 +1,21 @@
# additional include paths necessary to compile the C++ library
SUBDIRS = lib benchmarks tests extras
include $(top_srcdir)/doxygen.inc
bin_SCRIPTS=grid-config
BUILT_SOURCES = version.h
version.h:
echo "`git log -n 1 --format=format:"#define GITHASH \\"%H:%d\\"%n" HEAD`" > $(srcdir)/lib/version.h
.PHONY: bench check tests doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL)
tests-local: all
bench-local: all
check-local: all
AM_CXXFLAGS += -I$(top_builddir)/include
ACLOCAL_AMFLAGS = -I m4
View File
Symlink
+1
View File
@@ -0,0 +1 @@
README.md
+400 -19
View File
@@ -1,26 +1,407 @@
GRID github pages. # Grid [![Teamcity status](http://ci.cliath.ph.ed.ac.uk/app/rest/builds/aggregated/strob:(buildType:(affectedProject(id:Grid)),branch:name:develop)/statusIcon.svg)](http://ci.cliath.ph.ed.ac.uk/project.html?projectId=Grid&tab=projectOverview) [![Travis status](https://travis-ci.org/paboyle/Grid.svg?branch=develop)](https://travis-ci.org/paboyle/Grid)
**Data parallel C++ mathematical object library.**
License: GPL v2.
Last update June 2017.
_Please do not send pull requests to the `master` branch which is reserved for releases._
## License
The MIT License (MIT) ### Description
This library provides data parallel C++ container classes with internal memory layout
that is transformed to map efficiently to SIMD architectures. CSHIFT facilities
are provided, similar to HPF and cmfortran, and user control is given over the mapping of
array indices to both MPI tasks and SIMD processing elements.
Copyright (c) 2016 Michael Rose * Identically shaped arrays then be processed with perfect data parallelisation.
* Such identically shaped arrays are called conformable arrays.
Permission is hereby granted, free of charge, to any person obtaining a copy The transformation is based on the observation that Cartesian array processing involves
of this software and associated documentation files (the "Software"), to deal identical processing to be performed on different regions of the Cartesian array.
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all The library will both geometrically decompose into MPI tasks and across SIMD lanes.
copies or substantial portions of the Software. Local vector loops are parallelised with OpenMP pragmas.
Data parallel array operations can then be specified with a SINGLE data parallel paradigm, but
optimally use MPI, OpenMP and SIMD parallelism under the hood. This is a significant simplification
for most programmers.
The layout transformations are parametrised by the SIMD vector length. This adapts according to the architecture.
Presently SSE4, ARM NEON (128 bits) AVX, AVX2, QPX (256 bits), IMCI and AVX512 (512 bits) targets are supported.
These are presented as `vRealF`, `vRealD`, `vComplexF`, and `vComplexD` internal vector data types.
The corresponding scalar types are named `RealF`, `RealD`, `ComplexF` and `ComplexD`.
MPI, OpenMP, and SIMD parallelism are present in the library.
Please see [this paper](https://arxiv.org/abs/1512.03487) for more detail.
### Compilers
Intel ICPC v16.0.3 and later
Clang v3.5 and later (need 3.8 and later for OpenMP)
GCC v4.9.x (recommended)
GCC v6.3 and later
### Important:
Some versions of GCC appear to have a bug under high optimisation (-O2, -O3).
The safety of these compiler versions cannot be guaranteed at this time. Follow Issue 100 for details and updates.
GCC v5.x
GCC v6.1, v6.2
### Bug report
_To help us tracking and solving more efficiently issues with Grid, please report problems using the issue system of GitHub rather than sending emails to Grid developers._
When you file an issue, please go though the following checklist:
1. Check that the code is pointing to the `HEAD` of `develop` or any commit in `master` which is tagged with a version number.
2. Give a description of the target platform (CPU, network, compiler). Please give the full CPU part description, using for example `cat /proc/cpuinfo | grep 'model name' | uniq` (Linux) or `sysctl machdep.cpu.brand_string` (macOS) and the full output the `--version` option of your compiler.
3. Give the exact `configure` command used.
4. Attach `config.log`.
5. Attach `grid.config.summary`.
6. Attach the output of `make V=1`.
7. Describe the issue and any previous attempt to solve it. If relevant, show how to reproduce the issue using a minimal working example.
### Required libraries
Grid requires:
[GMP](https://gmplib.org/),
[MPFR](http://www.mpfr.org/)
Bootstrapping grid downloads and uses for internal dense matrix (non-QCD operations) the Eigen library.
Grid optionally uses:
[HDF5](https://support.hdfgroup.org/HDF5/)
[LIME](http://usqcd-software.github.io/c-lime/) for ILDG and SciDAC file format support.
[FFTW](http://www.fftw.org) either generic version or via the Intel MKL library.
LAPACK either generic version or Intel MKL library.
### Quick start
First, start by cloning the repository:
``` bash
git clone https://github.com/paboyle/Grid.git
```
Then enter the cloned directory and set up the build system:
``` bash
cd Grid
./bootstrap.sh
```
Now you can execute the `configure` script to generate makefiles (here from a build directory):
``` bash
mkdir build; cd build
../configure --enable-precision=double --enable-simd=AVX --enable-comms=mpi-auto --prefix=<path>
```
where `--enable-precision=` set the default precision,
`--enable-simd=` set the SIMD type, `--enable-
comms=`, and `<path>` should be replaced by the prefix path where you want to
install Grid. Other options are detailed in the next section, you can also use `configure
--help` to display them. Like with any other program using GNU autotool, the
`CXX`, `CXXFLAGS`, `LDFLAGS`, ... environment variables can be modified to
customise the build.
Finally, you can build, check, and install Grid:
``` bash
make; make check; make install
```
To minimise the build time, only the tests at the root of the `tests` directory are built by default. If you want to build tests in the sub-directory `<subdir>` you can execute:
``` bash
make -C tests/<subdir> tests
```
If you want to build all the tests at once just use `make tests`.
### Build configuration options
- `--prefix=<path>`: installation prefix for Grid.
- `--with-gmp=<path>`: look for GMP in the UNIX prefix `<path>`
- `--with-mpfr=<path>`: look for MPFR in the UNIX prefix `<path>`
- `--with-fftw=<path>`: look for FFTW in the UNIX prefix `<path>`
- `--enable-lapack[=<path>]`: enable LAPACK support in Lanczos eigensolver. A UNIX prefix containing the library can be specified (optional).
- `--enable-mkl[=<path>]`: use Intel MKL for FFT (and LAPACK if enabled) routines. A UNIX prefix containing the library can be specified (optional).
- `--enable-numa`: enable NUMA first touch optimisation
- `--enable-simd=<code>`: setup Grid for the SIMD target `<code>` (default: `GEN`). A list of possible SIMD targets is detailed in a section below.
- `--enable-gen-simd-width=<size>`: select the size (in bytes) of the generic SIMD vector type (default: 32 bytes).
- `--enable-precision={single|double}`: set the default precision (default: `double`).
- `--enable-precision=<comm>`: Use `<comm>` for message passing (default: `none`). A list of possible SIMD targets is detailed in a section below.
- `--enable-rng={sitmo|ranlux48|mt19937}`: choose the RNG (default: `sitmo `).
- `--disable-timers`: disable system dependent high-resolution timers.
- `--enable-chroma`: enable Chroma regression tests.
- `--enable-doxygen-doc`: enable the Doxygen documentation generation (build with `make doxygen-doc`)
### Possible communication interfaces
The following options can be use with the `--enable-comms=` option to target different communication interfaces:
| `<comm>` | Description |
| -------------- | ------------------------------------------------------------- |
| `none` | no communications |
| `mpi[-auto]` | MPI communications |
| `mpi3[-auto]` | MPI communications using MPI 3 shared memory |
| `shmem ` | Cray SHMEM communications |
For the MPI interfaces the optional `-auto` suffix instructs the `configure` scripts to determine all the necessary compilation and linking flags. This is done by extracting the informations from the MPI wrapper specified in the environment variable `MPICXX` (if not specified `configure` will scan though a list of default names). The `-auto` suffix is not supported by the Cray environment wrapper scripts. Use the standard versions instead.
### Possible SIMD types
The following options can be use with the `--enable-simd=` option to target different SIMD instruction sets:
| `<code>` | Description |
| ----------- | -------------------------------------- |
| `GEN` | generic portable vector code |
| `SSE4` | SSE 4.2 (128 bit) |
| `AVX` | AVX (256 bit) |
| `AVXFMA` | AVX (256 bit) + FMA |
| `AVXFMA4` | AVX (256 bit) + FMA4 |
| `AVX2` | AVX 2 (256 bit) |
| `AVX512` | AVX 512 bit |
| `NEONv8` | [ARM NEON](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/ch07s03.html) (128 bit) |
| `QPX` | IBM QPX (256 bit) |
Alternatively, some CPU codenames can be directly used:
| `<code>` | Description |
| ----------- | -------------------------------------- |
| `KNL` | [Intel Xeon Phi codename Knights Landing](http://ark.intel.com/products/codename/48999/Knights-Landing) |
| `SKL` | [Intel Skylake with AVX512 extensions](https://ark.intel.com/products/codename/37572/Skylake#@server) |
| `BGQ` | Blue Gene/Q |
#### Notes:
- We currently support AVX512 for the Intel compiler and GCC (KNL and SKL target). Support for clang will appear in future versions of Grid when the AVX512 support in the compiler will be more advanced.
- For BG/Q only [bgclang](http://trac.alcf.anl.gov/projects/llvm-bgq) is supported. We do not presently plan to support more compilers for this platform.
- BG/Q performances are currently rather poor. This is being investigated for future versions.
- The vector size for the `GEN` target can be specified with the `configure` script option `--enable-gen-simd-width`.
### Build setup for Intel Knights Landing platform
The following configuration is recommended for the Intel Knights Landing platform:
``` bash
../configure --enable-precision=double\
--enable-simd=KNL \
--enable-comms=mpi-auto \
--enable-mkl \
CXX=icpc MPICXX=mpiicpc
```
The MKL flag enables use of BLAS and FFTW from the Intel Math Kernels Library.
If you are working on a Cray machine that does not use the `mpiicpc` wrapper, please use:
``` bash
../configure --enable-precision=double\
--enable-simd=KNL \
--enable-comms=mpi \
--enable-mkl \
CXX=CC CC=cc
```
If gmp and mpfr are NOT in standard places (/usr/) these flags may be needed:
``` bash
--with-gmp=<path> \
--with-mpfr=<path> \
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed.
Knight's Landing with Intel Omnipath adapters with two adapters per node
presently performs better with use of more than one rank per node, using shared memory
for interior communication. This is the mpi3 communications implementation.
We recommend four ranks per node for best performance, but optimum is local volume dependent.
``` bash
../configure --enable-precision=double\
--enable-simd=KNL \
--enable-comms=mpi3-auto \
--enable-mkl \
CC=icpc MPICXX=mpiicpc
```
### Build setup for Intel Haswell Xeon platform
The following configuration is recommended for the Intel Haswell platform:
``` bash
../configure --enable-precision=double\
--enable-simd=AVX2 \
--enable-comms=mpi3-auto \
--enable-mkl \
CXX=icpc MPICXX=mpiicpc
```
The MKL flag enables use of BLAS and FFTW from the Intel Math Kernels Library.
If gmp and mpfr are NOT in standard places (/usr/) these flags may be needed:
``` bash
--with-gmp=<path> \
--with-mpfr=<path> \
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed.
If you are working on a Cray machine that does not use the `mpiicpc` wrapper, please use:
``` bash
../configure --enable-precision=double\
--enable-simd=AVX2 \
--enable-comms=mpi3 \
--enable-mkl \
CXX=CC CC=cc
```
Since Dual socket nodes are commonplace, we recommend MPI-3 as the default with the use of
one rank per socket. If using the Intel MPI library, threads should be pinned to NUMA domains using
```
export I_MPI_PIN=1
```
This is the default.
### Build setup for Intel Skylake Xeon platform
The following configuration is recommended for the Intel Skylake platform:
``` bash
../configure --enable-precision=double\
--enable-simd=AVX512 \
--enable-comms=mpi3 \
--enable-mkl \
CXX=mpiicpc
```
The MKL flag enables use of BLAS and FFTW from the Intel Math Kernels Library.
If gmp and mpfr are NOT in standard places (/usr/) these flags may be needed:
``` bash
--with-gmp=<path> \
--with-mpfr=<path> \
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed.
If you are working on a Cray machine that does not use the `mpiicpc` wrapper, please use:
``` bash
../configure --enable-precision=double\
--enable-simd=AVX512 \
--enable-comms=mpi3 \
--enable-mkl \
CXX=CC CC=cc
```
Since Dual socket nodes are commonplace, we recommend MPI-3 as the default with the use of
one rank per socket. If using the Intel MPI library, threads should be pinned to NUMA domains using
```
export I_MPI_PIN=1
```
This is the default.
#### Expected Skylake Gold 6148 dual socket (single prec, single node 20+20 cores) performance using NUMA MPI mapping):
mpirun -n 2 benchmarks/Benchmark_dwf --grid 16.16.16.16 --mpi 2.1.1.1 --cacheblocking 2.2.2.2 --dslash-asm --shm 1024 --threads 18
TBA
### Build setup for AMD EPYC / RYZEN
The AMD EPYC is a multichip module comprising 32 cores spread over four distinct chips each with 8 cores.
So, even with a single socket node there is a quad-chip module. Dual socket nodes with 64 cores total
are common. Each chip within the module exposes a separate NUMA domain.
There are four NUMA domains per socket and we recommend one MPI rank per NUMA domain.
MPI-3 is recommended with the use of four ranks per socket,
and 8 threads per rank.
The following configuration is recommended for the AMD EPYC platform.
``` bash
../configure --enable-precision=double\
--enable-simd=AVX2 \
--enable-comms=mpi3 \
CXX=mpicxx
```
If gmp and mpfr are NOT in standard places (/usr/) these flags may be needed:
``` bash
--with-gmp=<path> \
--with-mpfr=<path> \
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed.
Using MPICH and g++ v4.9.2, best performance can be obtained using explicit GOMP_CPU_AFFINITY flags for each MPI rank.
This can be done by invoking MPI on a wrapper script omp_bind.sh to handle this.
It is recommended to run 8 MPI ranks on a single dual socket AMD EPYC, with 8 threads per rank using MPI3 and
shared memory to communicate within this node:
mpirun -np 8 ./omp_bind.sh ./Benchmark_dwf --mpi 2.2.2.1 --dslash-unroll --threads 8 --grid 16.16.16.16 --cacheblocking 4.4.4.4
Where omp_bind.sh does the following:
```
#!/bin/bash
numanode=` expr $PMI_RANK % 8 `
basecore=`expr $numanode \* 16`
core0=`expr $basecore + 0 `
core1=`expr $basecore + 2 `
core2=`expr $basecore + 4 `
core3=`expr $basecore + 6 `
core4=`expr $basecore + 8 `
core5=`expr $basecore + 10 `
core6=`expr $basecore + 12 `
core7=`expr $basecore + 14 `
export GOMP_CPU_AFFINITY="$core0 $core1 $core2 $core3 $core4 $core5 $core6 $core7"
echo GOMP_CUP_AFFINITY $GOMP_CPU_AFFINITY
$@
```
Performance:
#### Expected AMD EPYC 7601 dual socket (single prec, single node 32+32 cores) performance using NUMA MPI mapping):
mpirun -np 8 ./omp_bind.sh ./Benchmark_dwf --threads 8 --mpi 2.2.2.1 --dslash-unroll --grid 16.16.16.16 --cacheblocking 4.4.4.4
TBA
### Build setup for BlueGene/Q
To be written...
### Build setup for ARM Neon
To be written...
### Build setup for laptops, other compilers, non-cluster builds
Many versions of g++ and clang++ work with Grid, and involve merely replacing CXX (and MPICXX),
and omit the enable-mkl flag.
Single node builds are enabled with
```
--enable-comms=none
```
FFTW support that is not in the default search path may then enabled with
```
--with-fftw=<installpath>
```
BLAS will not be compiled in by default, and Lanczos will default to Eigen diagonalisation.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+328
View File
@@ -0,0 +1,328 @@
TODO:
---------------
Code item work list
a) namespaces & indentation
GRID_BEGIN_NAMESPACE();
GRID_END_NAMESPACE();
-- delete QCD namespace
b) GPU branch
- start branch
- Increase Macro use in core library support; prepare for change
- Audit volume of "device" code
- Virtual function audit
- Start port once Nvidia box is up
- Cut down volume of code for first port? How?
Physics item work list:
1)- BG/Q port and check ; Andrew says ok.
2)- Consistent linear solver flop count/rate -- PARTIAL, time but no flop/s yet
3)- Physical propagator interface
4)- Multigrid Wilson and DWF, compare to other Multigrid implementations
5)- HDCR resume
----------------------------
Recent DONE
-- RNG I/O in ILDG/SciDAC (minor)
-- Precision conversion and sort out localConvert <-- partial/easy
-- Conserved currents (Andrew)
-- Split grid
-- Christoph's local basis expansion Lanczos
-- MultiRHS with spread out extra dim -- Go through filesystem with SciDAC I/O ; <-- DONE ; bmark cori
-- Lanczos Remove DenseVector, DenseMatrix; Use Eigen instead. <-- DONE
-- GaugeFix into central location <-- DONE
-- Scidac and Ildg metadata handling <-- DONE
-- Binary I/O MPI2 IO <-- DONE
-- Binary I/O speed up & x-strips <-- DONE
-- Cut down the exterior overhead <-- DONE
-- Interior legs from SHM comms <-- DONE
-- Half-precision comms <-- DONE
-- Merge high precision reduction into develop <-- DONE
-- BlockCG, BCGrQ <-- DONE
-- multiRHS DWF; benchmark on Cori/BNL for comms elimination <-- DONE
-- slice* linalg routines for multiRHS, BlockCG
-----
* Forces; the UdSdU term in gauge force term is half of what I think it should
be. This is a consequence of taking ONLY the first term in:
dSg/dt = dU/dt dSdU + dUdag/dt dSdUdag
in the fermion force.
Now, S_mom = - tr Pmu Pmu ; Pmu anti-herm
.
d Smom/dt = - 2.0 tr Pmu Pmu = - dSg/dt = - tr Pmu [Umu dSdUmu + UmuDag dSdUmuDag]
.
=> Pmu = Umu dSdUmu
Where the norm is half expected.
This means we must double the force in the Test_xxx_force routines, and is the origin of the factor of two.
This 2x is applied by hand in the fermion routines and in the Test_rect_force routine.
* Support different boundary conditions (finite temp, chem. potential ... )
- Sign of force term.
- Reversibility test.
- Rename "Ta" as too unclear
- Lanczos
- Audit oIndex usage for cb behaviour
- Prepare multigrid for HMC. - Alternate setup schemes.
- Support for ILDG --- ugly, not done
- Flavour matrices?
- FFTnD ?
- Gparity; hand opt use template specialisation elegance to enable the optimised paths ?
- Gparity force term; Gparity (R)HMC.
- Mobius implementation clean up to rmove #if 0 stale code sequences
- CG -- profile carefully, kernel fusion, whole CG performance measurements.
================================================================
* Hacks and bug fixes to clean up and Audits
================================================================
* Extract/merge/set cleanup ; too many variants; rationalise and call simpler ones
* Rewrite core tensor arithmetic support to be more systematic
= Use #define repetitive sequences to minimise code, decrease line count by thousands possible,
with more robust and maintainable implementation.
* Ensure we ET as much as possible; move unop functions into ET framework.
- tests with expression args to all functions
* FIXME audit
* const audit
Insert/Extract
* Replace vset with a call to merge.;
* care in Gmerge,Gextract over vset .
* extract / merge extra implementation removal
* Optimise the extract/merge SIMD routines; Azusa??
- I have collated into single location at least.
- Need to use _mm_*insert/extract routines.
* Thread scaling tests Xeon, XeonPhi
Not sure of status of this -- reverify. Things are working nicely now though.
* Make the Tensor types and Complex etc... play more nicely.
- TensorRemove is a hack, come up with a long term rationalised approach to Complex vs. Scalar<Scalar<Scalar<Complex > > >
QDP forces use of "toDouble" to get back to non tensor scalar. This role is presently taken TensorRemove, but I
want to introduce a syntax that does not require this.
- Reductions that contract indices on a site should always demote the tensor structure.
norm2(), innerProduct.
- Result of Sum(), SliceSum // spatial sums
trace, traceIndex etc.. do not.
- problem arises because "trace" returns Lattice<TComplex> moving everything down to Scalar,
and then Sum and SliceSum to not remove the Scalars. This would be fixed if we
template specialize the scalar scalar scalar sum and SliceSum, on the basis of being
pure scalar.
======================================================================
======================================================================
======================================================================
======================================================================
RECENT
---------------
- Support different fermion representations? -- DONE
- contained entirely within the integrator presently
- Clean up HMC -- DONE
- LorentzScalar<GaugeField> gets Gauge link type (cleaner). -- DONE
- Simplified the integrators a bit. -- DONE
- Multi-timescale looks broken and operating on single timescale for now. -- DONE
- pass GaugeField as template param. -- DONE
- Reunitarise -- DONE
- Force Gradient -- DONE
- Prefer "RefreshInternal" or such like to "init" in naming -- DONE
- Parallel io improvements -- DONE
- Plaquette and link trace checks into nersc reader from the Grid_nersc_io.cc test. -- DONE
DONE:
- MultiArray -- MultiRHS done
- ConjugateGradientMultiShift -- DONE
- MCR -- DONE
- Remez -- Mike or Boost? -- DONE
- Proto (ET) -- DONE
- uBlas -- DONE ; Eigen
- Potentially Useful Boost libraries -- DONE ; Eigen
- Aligned allocator; memory pool -- DONE
- Multiprecision -- DONE
- Serialization -- DONE
- Regex -- Not needed
- Tokenize -- Why?
- Random number state save restore -- DONE
- Rectangle gauge actions. -- DONE
Iwasaki,
Symanzik,
... etc...
Done: Cayley, Partial , ContFrac force terms.
DONE
- PseudoFermions
=> generalise to non-const EE ; likely defer (??) (NOT DONE)
Done:
- TwoFlavour
- TwoFlavourEvenOdd
- TwoFlavourRatio
- TwoFlavourRatioEvenOdd
Done:
- OneFlavourRationalEvenOdd
- OneFlavourRationalRatioEvenOdd
- OneFlavourRationalRatio
Done
=> Test DWF HMC
- Fix a threading bug that has been introduced and prevents HMC running hybrid OMP mode
Done:
- RNG filling from sparser grid, lower dim grid.
DONE
- MacroMagic -> virtual reader class.
*** Expression template engine: -- DONE
[ -- Norm2(expression) problem: introduce norm2 unary op, or Introduce conversion automatic from expression to Lattice<vobj>
* Strong test for norm2, conj and all primitive types. -- tests/Grid_simd.cc is almost there
* Implement where within expression template scheme.
* Check for missing functionality - partially audited against QDP++ layout
// Unary functions
// cos,sin, tan, acos, asin, cosh, acosh, tanh, sinh, // Scalar<vReal> only arg
// exp, log, sqrt, fabs
// transposeColor, transposeSpin,
// adjColor, adjSpin,
// copyMask.
// localMaxAbs
// Fourier transform equivalent.]
* CovariantShift support -----Use a class to store gauge field? (parallel transport?)
-- coherent framework for implementing actions and their forces.
Actions
DONE
* Fermion
- Wilson
- Clover
- DomainWall
- Mobius
- z-Mobius
Algorithms (lots of reuse/port from BFM)
* LinearOperator
* LinearSolver
* Polynomial
* Eigen
* CG
* Pcg
* Adef2
* DeflCG
* fPcg
* MCR
* HDCG
* HMC,
* Heatbath
* Integrators, leapfrog, omelyan, force gradient etc...
* etc..
Done
* Pauli, SU subgroup, etc..
* su3 exponentiation & log etc.. [Jamie's code?]
======================================================================================================
FUNCTIONALITY: it pleases me to keep track of things I have done (keeps me arguably sane)
======================================================================================================
* Link smearing/boundary conds; Policy class based implementation ; framework more in place -- DONE
* Command line args for geometry, simd, etc. layout. Is it necessary to have -- DONE
user pass these? Is this a QCD specific?
* Stencil -- DONE
* Test infrastructure -- DONE
* Fourspin, two spin project --- DONE
* Dirac Gamma/Dirac structures ---- DONE
* Conditional execution, where etc... -----DONE, simple test
* Integer relational support -----DONE
* Coordinate information, integers etc... -----DONE
* Integer type padding/union to vector. -----DONE
* LatticeCoordinate[mu] -----DONE
* expose traceIndex, peekIndex, transposeIndex etc at the Lattice Level -- DONE
* TraceColor, TraceSpin. ----- DONE (traceIndex<1>,traceIndex<2>, transposeIndex<1>,transposeIndex<2>)
----- Implement mapping between traceColour and traceSpin and traceIndex<1/2>.
* How to do U[mu] ... lorentz part of type structure or not. more like chroma if not. -- DONE
* Twospin/Fourspin/Gamma/Proj/Recon ----- DONE
* norm2l is a hack. figure out syntax error and make this norm2 c.f. tests/Grid_gamma.cc -- DONE
* subdirs lib, tests ?? ----- DONE
- lib/math
- lib/cartesian
- lib/cshift
- lib/stencil
- lib/communicator
- lib/algorithms
- lib/qcd
- lib/io/ -- GridLog, GridIn, GridErr, GridDebug, GridMessage
- lib/qcd/actions
- lib/qcd/measurements
* Subset support, slice sums etc... -----DONE
sliceSum(orthog)
sum
innerProduct
norm2
* Subgrid Transferral -----DONE
subBlock (coarseLattice,fineLattice)
projectBlockBasis
promoteBlockBasis
* random number generation ----- DONE
* Broadcast, reduction tests. innerProduct, localInnerProduct --- DONE
* I/O support
* NERSC Lattice loading, plaquette test ------- DONE single node
* Controling std::cout ------- DONE
* Had to hack assignment to 1.0 in the tests/Grid_gamma test -- DONE
* Reduce implemention is poor ; need threaded reductions; OMP isn't able to do it for generic objects. -- DONE
* Bug in RNG with complex numbers ; only filling real values; need helper function -- DONE
* Conformable test in Cshift routines. -- none needed ; there is only one
* Conformable testing in expression templates -- DONE (recursive)
* Bug in SeedFixedIntegers gave same output on each site. -- DONE
Implement and use lattice IO to verify this. -- cout for lattice types DONE
+5
View File
@@ -0,0 +1,5 @@
Version : 0.8.0
- Clang 3.5 and above, ICPC v16 and above, GCC 6.3 and above recommended
- MPI and MPI3 comms optimisations for KNL and OPA finished
- Half precision comms
-244
View File
@@ -1,244 +0,0 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your entire site, values
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# `jekyll serve`. If you change this file, please restart the server process.
# Site Settings
locale : "en"
title : "GRID"
title_separator : "|"
name : "University of Edinburgh"
authors : "Peter Boyle, Guido Cossu, Antonin Portelli, Azusa Yamaguchi"
description : "Data parallel C++ mathematical object library."
url : 'https://paboyle.github.io' # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
baseurl : '/Grid' # the subpath of your site, e.g. "/blog"
repository : "paboyle/Grid"
teaser : # filename of teaser fallback teaser image placed in /images/, .e.g. "500x300.png"
# breadcrumbs : false # true, false (default)
words_per_minute : 200
comments:
provider : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom"
disqus:
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
discourse:
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
facebook:
# https://developers.facebook.com/docs/plugins/comments
appid :
num_posts : # 5 (default)
colorscheme : # "light" (default), "dark"
staticman:
allowedFields : ['name', 'email', 'url', 'message']
branch : # "master", "gh-pages"
commitMessage : "New comment."
filename : comment-{@timestamp}
format : "yml"
moderation : true
path : "_data/comments/{options.slug}"
requiredFields : ['name', 'email', 'message']
transforms:
email : "md5"
generatedFields:
date:
type : "date"
options:
format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
atom_feed:
path : # blank (default) uses feed.xml
# SEO Related
google_site_verification :
bing_site_verification :
alexa_site_verification :
yandex_site_verification :
# Social Sharing
twitter:
username :
facebook:
username :
app_id :
publisher :
og_image : # Open Graph/Twitter default site image
# For specifying social profiles
# - https://developers.google.com/structured-data/customize/social-profiles
social:
type : # Person or Organization (defaults to Person)
name : # If the user or organization name differs from the site's name
links: # An array of links to social media profiles
# Analytics
analytics:
provider : false # false (default), "google", "google-universal", "custom"
google:
tracking_id :
# Site Author
author:
name : "PPT Group"
avatar : "bio-photo.jpg"
bio : "Some info"
location : "Edinburgh"
email : "guido.cossu@ed.ac.uk"
uri :
bitbucket :
codepen :
dribbble :
flickr :
facebook :
foursquare :
github :
google_plus :
keybase :
instagram :
lastfm :
linkedin :
pinterest :
soundcloud :
stackoverflow : # "123456/username" (the last part of your profile url, e.g. http://stackoverflow.com/users/123456/username)
steam :
tumblr :
twitter :
vine :
weibo :
xing :
youtube :
# Reading Files
include:
- .htaccess
- _pages
exclude:
- "*.sublime-project"
- "*.sublime-workspace"
- vendor
- .asset-cache
- .bundle
- .jekyll-assets-cache
- .sass-cache
- assets/js/plugins
- assets/js/_main.js
- assets/js/vendor
- Capfile
- CHANGELOG
- config
- Gemfile
- Gruntfile.js
- gulpfile.js
- LICENSE
- log
- node_modules
- package.json
- Rakefile
- README
- tmp
keep_files:
- .git
- .svn
encoding: "utf-8"
markdown_ext: "markdown,mkdown,mkdn,mkd,md"
# Conversion
markdown: kramdown
highlighter: rouge
lsi: false
excerpt_separator: "\n\n"
incremental: false
# Markdown Processing
kramdown:
input: GFM
hard_wrap: false
auto_ids: true
footnote_nr: 1
entity_output: as_char
toc_levels: 1..6
smart_quotes: lsquo,rsquo,ldquo,rdquo
enable_coderay: false
# Sass/SCSS
sass:
sass_dir: _sass
style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
# Outputting
permalink: /:categories/:title/
paginate: 5 # amount of posts to show
paginate_path: /page:num/
timezone: # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Plugins
gems:
- jekyll-paginate
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jekyll-octicons
- jemoji
# mimic GitHub Pages with --safe
whitelist:
- jekyll-paginate
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jekyll-octicons
- jemoji
# Archives
# Type
# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
# - Jekyll Archives plugin archive pages ~> type: jekyll-archives
# Path (examples)
# - Archive page should exist at path when using Liquid method or you can
# expect broken links (especially with breadcrumbs enabled)
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
# - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
# - <base_path/my-awesome-category/index.html ~> path: /
category_archive:
type: liquid
path: /categories/
tag_archive:
type: liquid
path: /tags/
# https://github.com/jekyll/jekyll-archives
# jekyll-archives:
# enabled:
# - categories
# - tags
# layouts:
# category: archive-taxonomy
# tag: archive-taxonomy
# permalinks:
# category: /categories/:name/
# tag: /tags/:name/
# HTML Compression
# - http://jch.penibelst.de/
compress_html:
clippings: all
ignore:
envs: development
output: web
defaults:
-
scope:
path: ""
type: "pages"
values:
layout: "single"
comments: false
search: true
-231
View File
@@ -1,231 +0,0 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your entire site, values
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# `jekyll serve`. If you change this file, please restart the server process.
# Site Settings
locale : "en"
title : "GRID"
title_separator : "|"
name : "Our team"
description : "Data parallel C++ mathematical object library."
url : 'http://127.0.0.1:4000' # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
baseurl : '/Grid' # the subpath of your site, e.g. "/blog"
repository : "paboyle/Grid"
teaser : # filename of teaser fallback teaser image placed in /images/, .e.g. "500x300.png"
# breadcrumbs : false # true, false (default)
words_per_minute : 200
comments:
provider : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom"
disqus:
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
discourse:
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
facebook:
# https://developers.facebook.com/docs/plugins/comments
appid :
num_posts : # 5 (default)
colorscheme : # "light" (default), "dark"
staticman:
allowedFields : ['name', 'email', 'url', 'message']
branch : # "master", "gh-pages"
commitMessage : "New comment."
filename : comment-{@timestamp}
format : "yml"
moderation : true
path : "_data/comments/{options.slug}"
requiredFields : ['name', 'email', 'message']
transforms:
email : "md5"
generatedFields:
date:
type : "date"
options:
format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
atom_feed:
path : # blank (default) uses feed.xml
# SEO Related
google_site_verification :
bing_site_verification :
alexa_site_verification :
yandex_site_verification :
# Social Sharing
twitter:
username :
facebook:
username :
app_id :
publisher :
og_image : # Open Graph/Twitter default site image
# For specifying social profiles
# - https://developers.google.com/structured-data/customize/social-profiles
social:
type : # Person or Organization (defaults to Person)
name : # If the user or organization name differs from the site's name
links: # An array of links to social media profiles
# Analytics
analytics:
provider : false # false (default), "google", "google-universal", "custom"
google:
tracking_id :
# Site Author
author:
name : "PPT Group"
avatar : "bio-photo.jpg"
bio : "Our group is amazing."
location : "Edinburgh"
email : "guido.cossu@ed.ac.uk"
uri :
bitbucket :
codepen :
dribbble :
flickr :
facebook :
foursquare :
github :
google_plus :
keybase :
instagram :
lastfm :
linkedin :
pinterest :
soundcloud :
stackoverflow : # "123456/username" (the last part of your profile url, e.g. http://stackoverflow.com/users/123456/username)
steam :
tumblr :
twitter :
vine :
weibo :
xing :
youtube :
# Reading Files
include:
- .htaccess
- _pages
exclude:
- "*.sublime-project"
- "*.sublime-workspace"
- vendor
- .asset-cache
- .bundle
- .jekyll-assets-cache
- .sass-cache
- assets/js/plugins
- assets/js/_main.js
- assets/js/vendor
- Capfile
- CHANGELOG
- config
- Gemfile
- Gruntfile.js
- gulpfile.js
- LICENSE
- log
- node_modules
- package.json
- Rakefile
- README
- tmp
keep_files:
- .git
- .svn
encoding: "utf-8"
markdown_ext: "markdown,mkdown,mkdn,mkd,md"
# Conversion
markdown: kramdown
highlighter: rouge
lsi: false
excerpt_separator: "\n\n"
incremental: false
# Markdown Processing
kramdown:
input: GFM
hard_wrap: false
auto_ids: true
footnote_nr: 1
entity_output: as_char
toc_levels: 1..6
smart_quotes: lsquo,rsquo,ldquo,rdquo
enable_coderay: false
# Sass/SCSS
sass:
sass_dir: _sass
style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
# Outputting
permalink: /:categories/:title/
paginate: 5 # amount of posts to show
paginate_path: /page:num/
timezone: # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Plugins
gems:
- jekyll-paginate
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jekyll-octicons
- jemoji
# mimic GitHub Pages with --safe
whitelist:
- jekyll-paginate
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jekyll-octicons
- jemoji
# Archives
# Type
# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
# - Jekyll Archives plugin archive pages ~> type: jekyll-archives
# Path (examples)
# - Archive page should exist at path when using Liquid method or you can
# expect broken links (especially with breadcrumbs enabled)
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
# - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
# - <base_path/my-awesome-category/index.html ~> path: /
category_archive:
type: liquid
path: /categories/
tag_archive:
type: liquid
path: /tags/
# https://github.com/jekyll/jekyll-archives
# jekyll-archives:
# enabled:
# - categories
# - tags
# layouts:
# category: archive-taxonomy
# tag: archive-taxonomy
# permalinks:
# category: /categories/:name/
# tag: /tags/:name/
# HTML Compression
# - http://jch.penibelst.de/
compress_html:
clippings: all
ignore:
envs: development
-9
View File
@@ -1,9 +0,0 @@
# /_data/authors.yml
Guido Cossu:
name: "Guido Cossu"
uri: "http://www.google.com"
email: "guido.cossu@ed.ac.uk"
bio: "Senior researcher at Higgs Centre"
avatar: "bio-photo-2.jpg"
twitter: "coppolachan"
-122
View File
@@ -1,122 +0,0 @@
# main links links
main:
- title: "Documentation"
icon: "octicon octicon-book vertical-middle"
url: /docs/
- title: "Quick-start guide"
url: /docs/quick-start-guide/
- title: "About"
url: /about/
- title: "GPL License"
url: /license/
docs:
- title:
output: pdf
type: frontmatter
children:
- title:
url: /titlepage.html
output: pdf
type: frontmatter
- title:
url: /tocpage.html
output: pdf
type: frontmatter
- title: "Introduction"
output: pdf
children:
- title: "GRID"
url: /docs/
output: pdf
- title: Getting Started
output: pdf
children:
- title: "Quick-Start Guide"
url: /docs/quick-start-guide/
output: web, pdf
- title: "Communication interfaces"
url: /docs/comm_interfaces/
output: web, pdf
- title: "Architecture targets"
url: /docs/simd_targets/
output: web, pdf
- title: "Building on Intel and AMD targets"
url: /docs/general_build/
output: web, pdf
- title: Using GRID
output: pdf
children:
- title: "Running on KNL"
url: /docs/running_knl/
output: web, pdf
- title: Development
output: pdf
children:
- title: "Execution model"
url: /docs/execution-model/
output: web, pdf
- title: "Reporting an issue"
url: /docs/bug_report/
output: web, pdf
- title: "Continuous integration"
url: /docs/travis/
output: web, pdf
- title: API description
output: pdf
children:
- title: "Introduction"
url: /docs/API/introduction.html
output: web, pdf
disable: "no"
- title: "Tensor classes"
url: /docs/API/tensor_classes.html
output: web, pdf
disable: "no"
- title: "Vectorisation"
url: /docs/API/vectorisation.html
output: web, pdf
disable: "no"
- title: "Coordinates"
url: /docs/API/coordinates.html
output: web, pdf
disable: "no"
- title: "Grids"
url: /docs/API/grids.html
output: web, pdf
disable: "no"
- title: "Lattice containers"
url: /docs/API/lattice_containers.html
output: web, pdf
disable: "no"
- title: "Random number generators"
url: /docs/API/random_number_generators.html
output: web, pdf
disable: "no"
- title: "Lattice classes"
url: /docs/lattice/
disable: "yes"
- title: "Lattice theories"
output: pdf
children:
- title : "Theories"
url: /docs/theories/
disable: "yes"
output: web
- title: "HMC"
url: /docs/theories/hmc/
disable: "no"
output: web,pdf
-355
View File
@@ -1,355 +0,0 @@
# User interface text and labels
# English (default)
# -----------------
en: &DEFAULT_EN
page : "Page"
pagination_previous : "Previous"
pagination_next : "Next"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
toc_label : "On This Page"
ext_link_label : "Direct Link"
less_than : "less than"
minute_read : "minute read"
share_on_label : "Share on"
meta_label :
tags_label : "Tags:"
categories_label : "Categories:"
date_label : "Updated:"
comments_label : "Leave a Comment"
comments_title : "Comments"
more_label : "Learn More"
related_label : "You May Also Enjoy"
follow_label : "Follow:"
feed_label : "Feed"
powered_by : "Powered by"
website_label : "Website"
email_label : "Email"
recent_posts : "Recent Posts"
undefined_wpm : "Undefined parameter words_per_minute at _config.yml"
comment_form_info : "Your email address will not be published. Required fields are marked"
comment_form_comment_label : "Comment"
comment_form_md_info : "Markdown is supported."
comment_form_name_label : "Name"
comment_form_email_label : "Email address"
comment_form_website_label : "Website (optional)"
comment_btn_submit : "Submit Comment"
comment_btn_submitted : "Submitted"
comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved."
comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
loading_label : "Loading..."
en-US:
<<: *DEFAULT_EN
en-CA:
<<: *DEFAULT_EN
en-GB:
<<: *DEFAULT_EN
en-AU:
<<: *DEFAULT_EN
# Spanish
# --------------
es: &DEFAULT_ES
page : "Página"
pagination_previous : "Anterior"
pagination_next : "Siguiente"
breadcrumb_home_label : "Inicio"
breadcrumb_separator : "/"
toc_label : "Contenidos"
ext_link_label : "Enlace"
less_than : "menos de"
minute_read : "minuto de lectura"
share_on_label : "Compartir"
meta_label :
tags_label : "Etiquetas:"
categories_label : "Categorías:"
date_label : "Actualizado:"
comments_label : "Comentar"
comments_title :
more_label : "Ver más"
related_label : "Podrías ver también"
follow_label : "Seguir:"
feed_label : "Feed"
powered_by : "Powered by"
website_label : "Sitio web"
email_label : "Email"
recent_posts : "Entradas recientes"
undefined_wpm : "Parametro words_per_minute (Palabras por minuto) no definido en _config.yml"
comment_form_info :
comment_form_comment_label :
comment_form_md_info :
comment_form_name_label :
comment_form_email_label :
comment_form_website_label :
comment_btn_submit :
comment_btn_submitted :
comment_success_msg :
comment_error_msg :
loading_label :
es-ES:
<<: *DEFAULT_ES
es-CO:
<<: *DEFAULT_ES
# French
# -----------------
fr: &DEFAULT_FR
page : "Page"
pagination_previous : "Précédent"
pagination_next : "Suivant"
breadcrumb_home_label : "Accueil"
breadcrumb_separator : "/"
toc_label : "Sur cette page"
ext_link_label : "Lien direct"
less_than : "plus petit que"
minute_read : "minute de lecture"
share_on_label : "Partager sur"
meta_label :
tags_label : "Tags :"
categories_label : "Catégories :"
date_label : "Mis à jour :"
comments_label : "Laisser un commentaire"
comments_title :
more_label : "Lire plus"
related_label : "Vous pourriez aimer"
follow_label : "Suivez moi"
feed_label : "Flux"
powered_by : "Propulsé par"
website_label : "Site"
email_label : "Email"
recent_posts : "Posts récents"
undefined_wpm : "Le paramètre words_per_minute n'est pas défini dans _config.yml"
comments_title : "Commentaires"
comment_form_info : "Votre adresse email ne sera pas visible. Les champs obligatoires sont marqués"
comment_form_comment_label : "Commentaire"
comment_form_md_info : "Markdown est supporté."
comment_form_name_label : "Nom"
comment_form_email_label : "Adresse mail"
comment_form_website_label : "Site web (optionnel)"
comment_btn_submit : "Envoyer"
comment_btn_submitted : "Envoyé"
comment_success_msg : "Merci pour votre comentaire, il sera visible sur le site une fois approuvé."
comment_error_msg : "Désolé, une erreur est survenue lors de la soumission. Vérifiez que les champs obligatoires ont été remplis et réessayez."
loading_label : "Chargement..."
fr-FR:
<<: *DEFAULT_FR
fr-BE:
<<: *DEFAULT_FR
fr-CH:
<<: *DEFAULT_FR
# Turkish
# -----------------
tr: &DEFAULT_TR
page : "Sayfa"
pagination_previous : "Önceki"
pagination_next : "Sonraki"
breadcrumb_home_label : "Ana Sayfa"
breadcrumb_separator : "/"
toc_label : "İçindekiler"
ext_link_label : "Doğrudan Bağlantı"
less_than : "Şu süreden az: "
minute_read : "dakika tahmini okuma süresi"
share_on_label : "Paylaş"
meta_label :
tags_label : "Etiketler:"
categories_label : "Kategoriler:"
date_label : "Güncelleme tarihi:"
comments_label : "Yorum yapın"
comments_title :
more_label : "Daha fazlasını öğrenin"
related_label : "Bunlar ilginizi çekebilir:"
follow_label : "Takip et:"
feed_label : "RSS"
powered_by : "Emeği geçenler: "
website_label : "Web sayfası"
email_label : "E-posta"
recent_posts : "Son yazılar"
undefined_wpm : "_config.yml dosyasında tanımlanmamış words_per_minute parametresi"
comment_form_info :
comment_form_comment_label :
comment_form_md_info :
comment_form_name_label :
comment_form_email_label :
comment_form_website_label :
comment_btn_submit :
comment_btn_submitted :
comment_success_msg :
comment_error_msg :
loading_label :
tr-TR:
<<: *DEFAULT_TR
# Portuguese
# -----------------
pt: &DEFAULT_PT
page : "Página"
pagination_previous : "Anterior"
pagination_next : "Seguinte"
breadcrumb_home_label : "Início"
breadcrumb_separator : "/"
toc_label : "Nesta Página"
ext_link_label : "Link Direto"
less_than : "menos de"
minute_read : "minutos de leitura"
share_on_label : "Partilhar no"
meta_label :
tags_label : "Etiquetas:"
categories_label : "Categorias:"
date_label : "Atualizado:"
comments_label : "Deixe um Comentário"
comments_title : "Comentários"
more_label : "Saber mais"
related_label : "Também pode gostar de"
follow_label : "Siga:"
feed_label : "Feed"
powered_by : "Feito com"
website_label : "Site"
email_label : "Email"
recent_posts : "Artigos Recentes"
undefined_wpm : "Parâmetro words_per_minute não definido em _config.yml"
comment_form_info : "O seu endereço email não será publicado. Os campos obrigatórios estão assinalados"
comment_form_comment_label : "Comentário"
comment_form_md_info : "Markdown é suportado."
comment_form_name_label : "Nome"
comment_form_email_label : "Endereço Email"
comment_form_website_label : "Site (opcional)"
comment_btn_submit : "Sumbeter Comentário"
comment_btn_submitted : "Submetido"
comment_success_msg : "Obrigado pelo seu comentário! Será visível no site logo que aprovado."
comment_error_msg : "Lamento, ocorreu um erro na sua submissão. Por favor verifique se todos os campos obrigatórios estão corretamente preenchidos e tente novamente."
loading_label : "A carregar..."
# Brazilian Portuguese
pt-BR:
page : "Página"
pagination_previous : "Anterior"
pagination_next : "Próxima"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
toc_label : "Nesta página"
ext_link_label : "Link direto"
less_than : "meno que"
minute_read : "minutos de leitura"
share_on_label : "Compartilhe em"
meta_label :
tags_label : "Tags:"
categories_label : "Categorias:"
date_label : "Atualizado em:"
comments_label : "Deixe um comentário"
comments_title :
more_label : "Aprenda Mais"
related_label : "Você Talvez Goste Também"
follow_label : "Acompanhe em"
feed_label : "Feed"
powered_by : "Feito com"
website_label : "Site"
email_label : "Email"
recent_posts : "Postagens recentes"
undefined_wpm : "Parâmetro indefinido em word_per_minute no _config.yml"
comment_form_info :
comment_form_comment_label :
comment_form_md_info :
comment_form_name_label :
comment_form_email_label :
comment_form_website_label :
comment_btn_submit :
comment_btn_submitted :
comment_success_msg :
comment_error_msg :
loading_label :
pt-PT:
<<: *DEFAULT_PT
# Italian
# -----------------
it: &DEFAULT_IT
page : "Pagina"
pagination_previous : "Precedente"
pagination_next : "Prossima"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
toc_label : "Indice della pagina"
ext_link_label : "Link"
less_than : "meno di"
minute_read : "minuto/i di lettura"
share_on_label : "Condividi"
meta_label :
tags_label : "Tags:"
categories_label : "Categorie:"
date_label : "Aggiornato:"
comments_label : "Scrivi un commento"
comments_title :
more_label : "Scopri di più"
related_label : "Potrebbe Piacerti Anche"
follow_label : "Segui:"
feed_label : "Feed"
powered_by : "Powered by"
website_label : "Website"
email_label : "Email"
recent_posts : "Articoli Recenti"
undefined_wpm : "Parametro words_per_minute non definito in _config.yml"
comment_form_info : "Il tuo indirizzo email non sarà pubblicato. Sono segnati i campi obbligatori"
comment_form_comment_label : "Commenta"
comment_form_md_info : "Il linguaggio Markdown è supportato"
comment_form_name_label : "Nome"
comment_form_email_label : "Indirizzo email"
comment_form_website_label : "Sito Web (opzionale)"
comment_btn_submit : "Invia commento"
comment_btn_submitted : "Inviato"
comment_success_msg : "Grazie per il tuo commento! Verrà visualizzato nel sito una volta che sarà approvato."
comment_error_msg : "C'è stato un errore con il tuo invio. Assicurati che tutti i campi richiesti siano stati completati e riprova."
loading_label : "Caricamento..."
it-IT:
<<: *DEFAULT_IT
# Chinese (zh-CN Chinese - China)
# -----------------
zh: &DEFAULT_ZH
page : "页面"
pagination_previous : "向前"
pagination_next : "向后"
breadcrumb_home_label : "首页"
breadcrumb_separator : "/"
toc_label : "在本页上"
ext_link_label : "直接链接"
less_than : "少于"
minute_read : "分钟 阅读"
share_on_label : "分享"
meta_label :
tags_label : "标签:"
categories_label : "分类:"
date_label : "最新的:"
comments_label : "留下评论"
comments_title : "评论"
more_label : "了解更多"
related_label : "猜您还喜欢"
follow_label : "关注:"
feed_label : "Feed"
powered_by : "Powered by"
website_label : "网站"
email_label : "Email"
recent_posts : "最新文章"
undefined_wpm : "Undefined parameter words_per_minute at _config.yml"
comment_form_info : "Your email address will not be published. Required fields are marked"
comment_form_comment_label : "Comment"
comment_form_md_info : "Markdown is supported."
comment_form_name_label : "Name"
comment_form_email_label : "Email address"
comment_form_website_label : "Website (optional)"
comment_btn_submit : "Submit Comment"
comment_btn_submitted : "Submitted"
comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved."
comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
loading_label : "Loading..."
zh-CN:
<<: *DEFAULT_ZH
zh-HK:
<<: *DEFAULT_ZH
zh-SG:
<<: *DEFAULT_ZH
zh-TW:
<<: *DEFAULT_ZH
# Another locale
# --------------
@@ -1,3 +0,0 @@
<!-- start custom analytics snippet -->
<!-- end custom analytics snippet -->
@@ -1,9 +0,0 @@
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{{ site.analytics.google.tracking_id }}', 'auto');
ga('send', 'pageview');
</script>
-11
View File
@@ -1,11 +0,0 @@
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
-12
View File
@@ -1,12 +0,0 @@
{% if site.analytics.provider and page.analytics != false %}
{% case site.analytics.provider %}
{% when "google" %}
{% include /analytics-providers/google.html %}
{% when "google-universal" %}
{% include /analytics-providers/google-universal.html %}
{% when "custom" %}
{% include /analytics-providers/custom.html %}
{% endcase %}
{% endif %}
-40
View File
@@ -1,40 +0,0 @@
{% include base_path %}
{% if post.header.teaser %}
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{% if post.id %}
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
{% assign title = post.title %}
{% endif %}
<div class="{{ include.type | default: "list" }}__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
{% if include.type == "grid" and teaser %}
<div class="archive__item-teaser">
<img src=
{% if teaser contains "://" %}
"{{ teaser }}"
{% else %}
"{{ teaser | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="">
</div>
{% endif %}
<h2 class="archive__item-title" itemprop="headline">
{% if post.link %}
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
{% else %}
<a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
{% endif %}
</h2>
{% if post.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify | strip_html | truncate: 160 }}</p>{% endif %}
</article>
</div>
-102
View File
@@ -1,102 +0,0 @@
{% include base_path %}
{% if page.author and site.data.authors[page.author] %}
{% assign author = site.data.authors[page.author] %}{% else %}{% assign author = site.author %}
{% endif %}
<div itemscope itemtype="http://schema.org/Person">
<div class="author__avatar">
{% if author.avatar contains "://" %}
<img src="{{ author.avatar }}" alt="{{ author.name }}">
{% else %}
<img src="{{ author.avatar | prepend: "/images/" | prepend: base_path }}" class="author__avatar" alt="{{ author.name }}">
{% endif %}
</div>
<div class="author__content">
<h3 class="author__name">{{ author.name }}</h3>
{% if author.bio %}<p class="author__bio">{{ author.bio }}</p>{% endif %}
</div>
<div class="author__urls-wrapper">
<button class="btn btn--inverse">{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}</button>
<ul class="author__urls social-icons">
{% if author.location %}
<li><i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> {{ author.location }}</li>
{% endif %}
{% if author.uri %}
<li><a href="{{ author.uri }}"><i class="fa fa-fw fa-chain" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].website_label | default: "Website" }}</a></li>
{% endif %}
{% if author.email %}
<li><a href="mailto:{{ author.email }}"><i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].email_label | default: "Email" }}</a></li>
{% endif %}
{% if author.keybase %}
<li><a href="https://keybase.io/{{ author.keybase }}"><i class="fa fa-fw fa-key" aria-hidden="true"></i> Keybase</a></li>
{% endif %}
{% if author.twitter %}
<li><a href="https://twitter.com/{{ author.twitter }}"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
{% endif %}
{% if author.facebook %}
<li><a href="https://www.facebook.com/{{ author.facebook }}"><i class="fa fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook</a></li>
{% endif %}
{% if author.google_plus %}
<li><a href="https://plus.google.com/+{{ author.google_plus }}"><i class="fa fa-fw fa-google-plus-square" aria-hidden="true"></i> Google+</a></li>
{% endif %}
{% if author.linkedin %}
<li><a href="https://www.linkedin.com/in/{{ author.linkedin }}"><i class="fa fa-fw fa-linkedin-square" aria-hidden="true"></i> LinkedIn</a></li>
{% endif %}
{% if author.xing %}
<li><a href="https://www.xing.com/profile/{{ author.xing }}"><i class="fa fa-fw fa-xing-square" aria-hidden="true"></i> XING</a></li>
{% endif %}
{% if author.instagram %}
<li><a href="https://instagram.com/{{ author.instagram }}"><i class="fa fa-fw fa-instagram" aria-hidden="true"></i> Instagram</a></li>
{% endif %}
{% if author.tumblr %}
<li><a href="https://{{ author.tumblr }}.tumblr.com"><i class="fa fa-fw fa-tumblr-square" aria-hidden="true"></i> Tumblr</a></li>
{% endif %}
{% if author.bitbucket %}
<li><a href="https://bitbucket.org/{{ author.bitbucket }}"><i class="fa fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li>
{% endif %}
{% if author.github %}
<li><a href="https://github.com/{{ author.github }}"><i class="fa fa-fw fa-github" aria-hidden="true"></i> Github</a></li>
{% endif %}
{% if author.stackoverflow %}
<li><a href="https://www.stackoverflow.com/users/{{ author.stackoverflow }}"><i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow</a></li>
{% endif %}
{% if author.lastfm %}
<li><a href="https://last.fm/user/{{ author.lastfm }}"><i class="fa fa-fw fa-lastfm-square" aria-hidden="true"></i> Last.fm</a></li>
{% endif %}
{% if author.dribbble %}
<li><a href="https://dribbble.com/{{ author.dribbble }}"><i class="fa fa-fw fa-dribbble" aria-hidden="true"></i> Dribbble</a></li>
{% endif %}
{% if author.pinterest %}
<li><a href="https://www.pinterest.com/{{ author.pinterest }}"><i class="fa fa-fw fa-pinterest" aria-hidden="true"></i> Pinterest</a></li>
{% endif %}
{% if author.foursquare %}
<li><a href="https://foursquare.com/{{ author.foursquare }}"><i class="fa fa-fw fa-foursquare" aria-hidden="true"></i> Foursquare</a></li>
{% endif %}
{% if author.steam %}
<li><a href="https://steamcommunity.com/id/{{ author.steam }}"><i class="fa fa-fw fa-steam-square" aria-hidden="true"></i> Steam</a></li>
{% endif %}
{% if author.youtube %}
<li><a href="https://www.youtube.com/user/{{ author.youtube }}"><i class="fa fa-fw fa-youtube-square" aria-hidden="true"></i> YouTube</a></li>
{% endif %}
{% if author.soundcloud %}
<li><a href="https://soundcloud.com/{{ author.soundcloud }}"><i class="fa fa-fw fa-soundcloud" aria-hidden="true"></i> Soundcloud</a></li>
{% endif %}
{% if author.weibo %}
<li><a href="https://www.weibo.com/{{ author.weibo }}"><i class="fa fa-fw fa-weibo" aria-hidden="true"></i> Weibo</a></li>
{% endif %}
{% if author.flickr %}
<li><a href="https://www.flickr.com/{{ author.flickr }}"><i class="fa fa-fw fa-flickr" aria-hidden="true"></i> Flickr</a></li>
{% endif %}
{% if author.codepen %}
<li><a href="https://codepen.io/{{ author.codepen }}"><i class="fa fa-fw fa-codepen" aria-hidden="true"></i> CodePen</a></li>
{% endif %}
{% if author.vine %}
<li><a href="https://vine.co/u/{{ author.vine }}"><i class="fa fa-fw fa-vine" aria-hidden="true"></i> Vine</a></li>
{% endif %}
</ul>
</div>
</div>
-5
View File
@@ -1,5 +0,0 @@
{% if site.url %}
{% assign base_path = site.url | append: site.baseurl %}
{% else %}
{% assign base_path = site.github.url %}
{% endif %}
-41
View File
@@ -1,41 +0,0 @@
{% include base_path %}
{% case site.categories.type %}
{% when "liquid" %}
{% assign path_type = "#" %}
{% when "jekyll-archives" %}
{% assign path_type = nil %}
{% endcase %}
{% if page.collection != 'posts' %}
{% assign path_type = nil %}
{% assign crumb_path = '/' %}
{% else %}
{% assign crumb_path = site.categories.path %}
{% endif %}
<nav class="breadcrumbs">
<ol itemscope itemtype="http://schema.org/BreadcrumbList">
{% assign crumbs = page.url | split: '/' %}
{% assign i = 1 %}
{% for crumb in crumbs offset: 1 %}
{% if forloop.first %}
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="{{ base_path }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
<meta itemprop="position" content="{{ i }}" />
</li>
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
{% endif %}
{% if forloop.last %}
<li class="current">{{ page.title }}</li>
{% else %}
{% assign i = i | plus: 1 %}
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="{{ base_path }}{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
<meta itemprop="position" content="{{ i }}" />
</li>
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
{% endif %}
{% endfor %}
</ol>
</nav>
-3
View File
@@ -1,3 +0,0 @@
<!--[if lt IE 9]>
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
<![endif]-->
-28
View File
@@ -1,28 +0,0 @@
{% include base_path %}
{% case site.category_archive.type %}
{% when "liquid" %}
{% assign path_type = "#" %}
{% when "jekyll-archives" %}
{% assign path_type = nil %}
{% endcase %}
{% if site.category_archive.path %}
{% comment %}
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
{% endcomment %}
{% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign category_hashes = (page_categories | split: ',' | sort:0) %}
<p class="page__taxonomy">
<strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
<span itemprop="keywords">
{% for hash in category_hashes %}
{% assign keyValue = hash | split: '#' %}
{% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
<a href="{{ base_path }}{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
{% endfor %}
</span>
</p>
{% endif %}
-22
View File
@@ -1,22 +0,0 @@
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
<div class="comment__avatar-wrapper">
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80">
</div>
<div class="comment__content-wrapper">
<h3 class="comment__author" itemprop="author" itemscope itemtype="http://schema.org/Person">
{% unless include.url == blank %}
<span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span>
{% else %}
<span itemprop="name">{{ include.name }}</span>
{% endunless %}
</h3>
<p class="comment__date">
{% if include.date %}
{% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %}
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time>
{% if include.index %}</a>{% endif %}
{% endif %}
</p>
<div itemprop="text">{{ include.message | markdownify }}</div>
</div>
</article>
-3
View File
@@ -1,3 +0,0 @@
<!-- start custom comments snippet -->
<!-- end custom comments snippet -->
@@ -1,14 +0,0 @@
{% if site.comments.discourse.server %}
{% include base_path %}
{% capture canonical %}{{ base_path }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
<script type="text/javascript">
DiscourseEmbed = { discourseUrl: '//{{ site.comments.discourse.server }}/',
discourseEmbedUrl: '{{ canonical }}' };
(function () {
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
})();
</script>
<noscript>Please enable JavaScript to view the comments powered by [Discourse](http://forum.beta-europe.org/c/beta/website).</a></noscript>
{% endif %}
-22
View File
@@ -1,22 +0,0 @@
{% if site.comments.disqus.shortname %}
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = '{{ site.comments.disqus.shortname }}';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
/* * * DON'T EDIT BELOW THIS LINE * * */
(function () {
var s = document.createElement('script'); s.async = true;
s.type = 'text/javascript';
s.src = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
{% endif %}
@@ -1,8 +0,0 @@
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5{% if site.comments.facebook.appid %}&appId={{ site.comments.facebook.appid }}{% endif %}";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
@@ -1,2 +0,0 @@
<script async type="text/javascript" src="//apis.google.com/js/plusone.js?callback=gpcb"></script>
<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript>
-18
View File
@@ -1,18 +0,0 @@
{% if site.comments.provider and page.comments %}
{% case site.comments.provider %}
{% when "disqus" %}
{% include /comments-providers/disqus.html %}
{% when "discourse" %}
{% include /comments-providers/discourse.html %}
{% when "facebook" %}
{% include /comments-providers/facebook.html %}
{% when "google-plus" %}
{% include /comments-providers/google-plus.html %}
{% when "staticman" %}
{% include /comments-providers/staticman.html %}
{% when "custom" %}
{% include /comments-providers/custom.html %}
{% endcase %}
{% endif %}
@@ -1,42 +0,0 @@
{% if site.repository and site.staticman.branch %}
<script>
(function ($) {
var $comments = $('.js-comments');
$('#new_comment').submit(function () {
var form = this;
$(form).addClass('disabled');
$('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize(),
contentType: 'application/x-www-form-urlencoded',
success: function (data) {
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
$('.page__comments-form .js-notice').removeClass('notice--danger');
$('.page__comments-form .js-notice').addClass('notice--success');
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
},
error: function (err) {
console.log(err);
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}');
$('.page__comments-form .js-notice').removeClass('notice--success');
$('.page__comments-form .js-notice').addClass('notice--danger');
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
$(form).removeClass('disabled');
}
});
return false;
});
function showAlert(message) {
$('.page__comments-form .js-notice').removeClass('hidden');
$('.page__comments-form .js-notice-text').html(message);
}
})(jQuery);
</script>
{% endif %}
-82
View File
@@ -1,82 +0,0 @@
{% include base_path %}
<div class="page__comments">
{% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %}
{% case site.comments.provider %}
{% when "disqus" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section id="disqus_thread"></section>
{% when "facebook" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section class="fb-comments" data-href="{{ base_path }}{{ page.url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section>
{% when "google-plus" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section class="g-comments" data-href="{{ base_path }}{{ page.url }}" data-first_party_property="BLOGGER" data-view_type="FILTERED_POSTMOD">Loading Google+ Comments ...</section>
{% when "staticman" %}
<section id="comments">
{% if site.repository and site.staticman.branch %}
<!-- Start static comments -->
<div class="js-comments">
{% if site.data.comments[page.slug] %}
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
{% assign comments = site.data.comments[page.slug] | sort %}
{% for comment in comments %}
{% assign email = comment[1].email %}
{% assign name = comment[1].name %}
{% assign url = comment[1].url %}
{% assign date = comment[1].date %}
{% assign message = comment[1].message %}
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
{% endfor %}
{% endif %}
</div>
<!-- End static comments -->
<!-- Start new comment form -->
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
<form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/{{ site.repository }}/{{ site.staticman.branch }}">
<div class="form__spinner">
<i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
</div>
<fieldset>
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
<textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
</fieldset>
<fieldset>
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
</fieldset>
<fieldset>
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
</fieldset>
<fieldset>
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
</fieldset>
<fieldset class="hidden" style="display: none;">
<input type="hidden" name="options[slug]" value="{{ page.slug }}">
<label for="comment-form-location">Not used. Leave blank if you are a human.</label>
<input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
</fieldset>
<!-- Start comment form alert messaging -->
<p class="hidden js-notice">
<strong class="js-notice-text"></strong>
</p>
<!-- End comment form alert messaging -->
<fieldset>
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
</fieldset>
</form>
<!-- End new comment form -->
{% endif %}
</section>
{% when "custom" %}
<section id="comments"></section>
{% endcase %}
</div>
-52
View File
@@ -1,52 +0,0 @@
{% include base_path %}
{% if include.id %}
{% assign feature_row = page.[include.id] %}
{% else %}
{% assign feature_row = page.feature_row %}
{% endif %}
<div class="feature__wrapper">
{% for f in feature_row %}
{% if f.url contains "://" %}
{% capture f_url %}{{ f.url }}{% endcapture %}
{% else %}
{% capture f_url %}{{ f.url | prepend: base_path }}{% endcapture %}
{% endif %}
<div class="feature__item{% if include.type %}--{{ include.type }}{% endif %}">
<div class="archive__item">
{% if f.image_path %}
<div class="archive__item-teaser">
<img src=
{% if f.image_path contains "://" %}
"{{ f.image_path }}"
{% else %}
"{{ f.image_path | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if f.alt %}{{ f.alt }}{% endif %}">
</div>
{% endif %}
<div class="archive__item-body">
{% if f.title %}
<h2 class="archive__item-title">{{ f.title }}</h2>
{% endif %}
{% if f.excerpt %}
<div class="archive__item-excerpt">
{{ f.excerpt | markdownify }}
</div>
{% endif %}
{% if f.url %}
<p><a href="{{ f_url }}" class="btn {{ f.btn_class }}">{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</div>
-24
View File
@@ -1,24 +0,0 @@
{% include base_path %}
<div class="page__footer-follow">
<ul class="social-icons">
{% if site.data.ui-text[site.locale].follow_label %}
<li><strong>{{ site.data.ui-text[site.locale].follow_label }}</strong></li>
{% endif %}
{% if site.twitter.username %}
<li><a href="https://twitter.com/{{ site.twitter.username }}"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
{% endif %}
{% if site.facebook.username %}
<li><a href="https://facebook.com/{{ site.facebook.username }}"><i class="fa fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook</a></li>
{% endif %}
{% if site.author.github %}
<li><a href="http://github.com/{{ site.author.github }}"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
{% endif %}
{% if site.author.bitbucket %}
<li><a href="http://bitbucket.org/{{ site.author.bitbucket }}"><i class="fa fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li>
{% endif %}
<li><a href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ base_path }}/feed.xml{% endif %}"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}</a></li>
</ul>
</div>
<div class="page__footer-copyright">&copy; {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
-3
View File
@@ -1,3 +0,0 @@
<!-- start custom footer snippets -->
<!-- end custom footer snippets -->
-49
View File
@@ -1,49 +0,0 @@
{% include base_path %}
{% if include.id %}
{% assign gallery = page.[include.id] %}
{% else %}
{% assign gallery = page.gallery %}
{% endif %}
{% if gallery.size == 2 %}
{% assign gallery_layout = 'half' %}
{% elsif gallery.size >= 3 %}
{% assign gallery_layout = 'third' %}
{% else %}
{% assign gallery_layout = '' %}
{% endif %}
<figure class="{{ gallery_layout }} {{ include.class }}">
{% for img in gallery %}
{% if img.url %}
<a href=
{% if img.url contains "://" %}
"{{ img.url }}"
{% else %}
"{{ img.url | prepend: "/images/" | prepend: base_path }}"
{% endif %}
{% if img.title %}title="{{ img.title }}"{% endif %}
>
<img src=
{% if img.image_path contains "://" %}
"{{ img.image_path }}"
{% else %}
"{{ img.image_path | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
</a>
{% else %}
<img src=
{% if img.image_path contains "://" %}
"{{ img.image_path }}"
{% else %}
"{{ img.image_path | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
{% endif %}
{% endfor %}
{% if include.caption %}
<figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption>
{% endif %}
</figure>
-47
View File
@@ -1,47 +0,0 @@
<!--
# Jekyll Group-By-Array 0.1.0
# https://github.com/mushishi78/jekyll-group-by-array
# © 2015 Max White <mushishi78@gmail.com>
# MIT License
-->
<!-- Initialize -->
{% assign __empty_array = '' | split: ',' %}
{% assign group_names = __empty_array %}
{% assign group_items = __empty_array %}
<!-- Map -->
{% assign __names = include.collection | map: include.field %}
<!-- Flatten -->
{% assign __names = __names | join: ',' | join: ',' | split: ',' %}
<!-- Uniq -->
{% assign __names = __names | sort %}
{% for name in __names | sort %}
<!-- If not equal to previous then it must be unique as sorted -->
{% unless name == previous %}
<!-- Push to group_names -->
{% assign group_names = group_names | push: name %}
{% endunless %}
{% assign previous = name %}
{% endfor %}
<!-- group_items -->
{% for name in group_names %}
<!-- Collect if contains -->
{% assign __item = __empty_array %}
{% for __element in include.collection %}
{% if __element[include.field] contains name %}
{% assign __item = __item | push: __element %}
{% endif %}
{% endfor %}
<!-- Push to group_items -->
{% assign group_items = group_items | push: __item %}
{% endfor %}
-22
View File
@@ -1,22 +0,0 @@
{% include base_path %}
<meta charset="utf-8">
{% include seo.html %}
<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ base_path }}/feed.xml{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
</script>
<!-- For all browsers -->
<link rel="stylesheet" href="{{ base_path }}/assets/css/main.css">
<link rel="stylesheet" href="{{ base_path }}/assets/icons/octicons/font/octicons.min.css">
<meta http-equiv="cleartype" content="on">
-6
View File
@@ -1,6 +0,0 @@
<!-- start custom head snippets -->
<!-- insert favicons. use http://realfavicongenerator.net/ -->
<link rel='shortcut icon' type='image/x-icon' href='{{ site.baseurl }}/images/favicon-32x32.png' />
<!-- end custom head snippets -->
-38
View File
@@ -1,38 +0,0 @@
{% include base_path %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{% if page.summary %}{{ page.summary | strip_html | strip_newlines | truncate: 160 }}{% endif %}">
<meta name="keywords" content="{{page.tags}}{% if page.tags %}, {% endif %} {{page.keywords}}">
<title>{% if page.homepage == true %} {{site.title}} {% elsif page.title %}{{ page.title }}{% endif %}</title>
<link rel="stylesheet" href="{{ "/css/customstyles.css" | prepend: site.baseurl | prepend: site.url }}">
<link rel="stylesheet" href="{{ "/css/printstyles.css" | prepend: site.baseurl | prepend: site.url }}">
<link rel="stylesheet" href="{{ "/css/font-awesome.min.css" | prepend: site.baseurl | prepend: site.url }}">
<link rel="stylesheet" href="{{site.url}}/{{site.baseurl}}/css/pygments/{{site.pygments-css}}.css">
<!--
<link rel="stylesheet" href="{{ "/css/bootstrap.min.css" | prepend: site.baseurl | prepend: site.url }}">
<link rel="stylesheet" href="{{ "/css/modern-business.css" | prepend: site.baseurl | prepend: site.url }}">
<link rel="stylesheet" href="{{ "/css/theme-blue.css" | prepend: site.baseurl | prepend: site.url }}">
<link rel="stylesheet" href="{{ "/css/syntax.css" | prepend: site.baseurl | prepend: site.url }}">
/-->
<script>
Prince.addScriptFunc("datestamp", function() {
return "PDF last generated: {{ site.time | date: '%B %d, %Y' }}";
});
</script>
<script>
Prince.addScriptFunc("guideName", function() {
return "{{site.title}} User Guide";
});
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<script type="text/javascript" src="{{ base_path }}/assets/js/ConfigMathJax.js"></script>
-10
View File
@@ -1,10 +0,0 @@
{% capture imagePath %}/{{ include.name }}{% endcapture %}
{% if include.caption %}
<figure>
<img src="{{ site.baseurl }}/images{{ imagePath }}" {% if include.alt %} alt="{{ include.alt }}" {% endif %} {% if include.width %} width="{{ include.width }}" style="display: block; margin-left: auto; margin-right: auto" {% endif %}/>
<figcaption>{{ include.caption }}</figcaption>
</figure>
{% else %}
<img src="{{ site.baseurl }}/images{{ imagePath }}" {% if include.alt %} alt="{{ include.alt }}" {% endif %} {% if include.width %} width="{{ include.width }}" style="display: block; margin-left: auto; margin-right: auto" {% endif %}/>
{% endif %}
-24
View File
@@ -1,24 +0,0 @@
{% include base_path %}
<div class="masthead">
<div class="masthead__inner-wrap">
<div class="masthead__menu">
<nav id="site-nav" class="greedy-nav">
<button><div class="navicon"></div></button>
<ul class="visible-links">
<li class="masthead__menu-item masthead__menu-item--lg"><a href="{{ base_path }}/">{{ site.title }}</a></li>
{% for link in site.data.navigation.main %}
{% if link.url contains 'http' %}
{% assign domain = '' %}
{% else %}
{% assign domain = base_path %}
{% endif %}
<li class="masthead__menu-item"><a href="{{ domain }}{{ link.url }}"><span class="{{ link.icon }}"></span> {{ link.title }}</a></li>
{% endfor %}
<li class="masthead__menu-item"><a href="https://github.com/paboyle/Grid" title="Github repository page"><span class="mega-octicon octicon-mark-github vertical-middle"></span></a></li>
</ul>
<ul class="hidden-links hidden"></ul>
</nav>
</div>
</div>
</div>
-52
View File
@@ -1,52 +0,0 @@
{% include base_path %}
{% assign navigation = site.data.navigation[include.nav] %}
<nav class="nav__list">
{% if page.sidebar.title %}<header><h4 class="nav__title" style="padding: 0;">{{ page.sidebar.title }}</h4></header>{% endif %}
<ul>
{% for nav in navigation %}
<li>
{% if nav.url %}
{% comment %}internal/external URL check{% endcomment %}
{% if nav.url contains "://" %}
{% assign domain = "" %}
{% else %}
{% assign domain = base_path %}
{% endif %}
<a href="{{ domain }}{{ nav.url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
{% else %}
<span class="nav__sub-title">{{ nav.title }}</span>
{% endif %}
{% if nav.children != null %}
<ul>
{% for child in nav.children %}
{% comment %}internal/external URL check{% endcomment %}
{% if child.url contains "://" %}
{% assign domain = "" %}
{% else %}
{% assign domain = base_path %}
{% endif %}
{% comment %}set "active" class on current page{% endcomment %}
{% if child.url == page.url %}
{% assign active = "active" %}
{% else %}
{% assign active = "" %}
{% endif %}
{% if child.disable == "yes" %}
{% assign disable = "nav__noclick" %}
{% else %}
{% assign disable = "" %}
{% endif %}
<li><a href="{{ domain }}{{ child.url }}" class="{{ disable }} {{ active }}">{{ child.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
-55
View File
@@ -1,55 +0,0 @@
{% include base_path %}
{% if page.header.image contains "://" %}
{% capture img_path %}{{ page.header.image }}{% endcapture %}
{% else %}
{% capture img_path %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endcapture %}
{% endif %}
{% if page.header.cta_url contains "://" %}
{% capture cta_path %}{{ page.header.cta_url }}{% endcapture %}
{% else %}
{% capture cta_path %}{{ page.header.cta_url | prepend: base_path }}{% endcapture %}
{% endif %}
{% if page.header.overlay_image contains "://" %}
{% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %}
{% elsif page.header.overlay_image %}
{% capture overlay_img_path %}{{ page.header.overlay_image | prepend: "/images/" | prepend: base_path }}{% endcapture %}
{% endif %}
{% if page.header.overlay_filter contains "rgba" %}
{% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
{% elsif page.header.overlay_filter %}
{% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %}
{% endif %}
<div class="page__hero{% if page.header.overlay_color or page.header.overlay_image %}--overlay{% endif %}"
style="{% if page.header.overlay_color %}background-color: {{ page.header.overlay_color | default: 'transparent' }};{% endif %} {% if overlay_img_path %}background-image: {% if overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}), {% endif %}url('{{ overlay_img_path }}');{% endif %}"
>
{% if page.header.overlay_color or page.header.overlay_image %}
<div class="wrapper">
<h1 class="page__title" itemprop="headline">
{% if paginator %}
{{ site.title }}{% unless paginator.page == 1 %} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}
{% else %}
{{ page.title | default: site.title | markdownify | remove: "<p>" | remove: "</p>" }}
{% endif %}
</h1>
{% if page.excerpt %}
<p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
{% endif %}
{% if site.read_time and page.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if page.header.cta_url %}
<p><a href="{{ cta_path }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
{% endif %}
</div>
{% else %}
<img src="{{ img_path }}" alt="{{ page.title }}" class="page__hero-image">
{% endif %}
{% if page.header.caption %}
<span class="page__hero-caption">{{ page.header.caption | markdownify | remove: "<p>" | remove: "</p>" }}</span>
{% endif %}
</div>
-9
View File
@@ -1,9 +0,0 @@
{% include base_path %}
{% if site.tag_archive.type and page.tags[0] %}
{% include tag-list.html %}
{% endif %}
{% if site.category_archive.type and page.categories[0] %}
{% include category-list.html %}
{% endif %}
-70
View File
@@ -1,70 +0,0 @@
{% include base_path %}
{% if paginator.total_pages > 1 %}
<nav class="pagination">
<ul>
{% comment %} Link for previous page {% endcomment %}
{% if paginator.previous_page %}
{% if paginator.previous_page == 1 %}
<li><a href="{{ base_path }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% else %}
<li><a href="{{ base_path }}/page{{ paginator.previous_page }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% endif %}
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
{% endif %}
{% comment %} First page {% endcomment %}
{% if paginator.page == 1 %}
<li><a href="#" class="disabled current">1</a></li>
{% else %}
<li><a href="{{ base_path }}/">1</a></li>
{% endif %}
{% assign page_start = 2 %}
{% if paginator.page > 4 %}
{% assign page_start = paginator.page | minus: 2 %}
{% comment %} Ellipsis for truncated links {% endcomment %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% assign page_end = paginator.total_pages | minus: 1 %}
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
{% if pages_to_end > 4 %}
{% assign page_end = paginator.page | plus: 2 %}
{% endif %}
{% for index in (page_start..page_end) %}
{% if index == paginator.page %}
<li><a href="{{ base_path }}/page{{ index }}/" class="disabled current">{{ index }}</a></li>
{% else %}
{% comment %} Distance from current page and this link {% endcomment %}
{% assign dist = paginator.page | minus: index %}
{% if dist < 0 %}
{% comment %} Distance must be a positive value {% endcomment %}
{% assign dist = 0 | minus: dist %}
{% endif %}
<li><a href="{{ base_path }}/page{{ index }}/">{{ index }}</a></li>
{% endif %}
{% endfor %}
{% comment %} Ellipsis for truncated links {% endcomment %}
{% if pages_to_end > 3 %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% if paginator.page == paginator.total_pages %}
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
{% else %}
<li><a href="{{ base_path }}/page{{ paginator.total_pages }}/">{{ paginator.total_pages }}</a></li>
{% endif %}
{% comment %} Link next page {% endcomment %}
{% if paginator.next_page %}
<li><a href="{{ base_path }}/page{{ paginator.next_page }}/">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
{% endif %}
</ul>
</nav>
{% endif %}
-16
View File
@@ -1,16 +0,0 @@
{% include base_path %}
{% if page.previous or page.next %}
<nav class="pagination">
{% if page.previous %}
<a href="{{ base_path }}{{ page.previous.url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
{% else %}
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
{% endif %}
{% if page.next %}
<a href="{{ base_path }}{{ page.next.url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
{% else %}
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
{% endif %}
</nav>
{% endif %}
-17
View File
@@ -1,17 +0,0 @@
{% if post.read_time %}
{% assign words = post.content | strip_html | number_of_words %}
{% elsif page.read_time %}
{% assign words = page.content | strip_html | number_of_words %}
{% endif %}
{% if site.words_per_minute %}
{% if words < 180 %}
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% elsif words < 360 %}
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% else %}
{{ words | divided_by:site.words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% endif %}
{% else %}
{{ site.data.ui-text[site.locale].undefined_wpm | "Undefined parameter words_per_minute at _config.yml" }}
{% endif %}
-4
View File
@@ -1,4 +0,0 @@
<script src="{{ base_path }}/assets/js/main.min.js"></script>
{% include analytics.html %}
{% include /comments-providers/scripts.html %}
-145
View File
@@ -1,145 +0,0 @@
{% include base_path %}
<!-- begin SEO -->
{% if site.url %}
{% assign seo_url = site.url | append: site.baseurl %}
{% endif %}
{% assign seo_url = seo_url | default: site.github.url %}
{% if page.title %}
{% assign seo_title = page.title | append: " " | append: site.title_separator | append: " " | append: site.title %}
{% endif %}
{% if seo_title %}
{% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %}
{% endif %}
{% if site.url %}
{% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %}
{% endif %}
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ site.title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
{% assign seo_description = page.description | default: page.excerpt | default: site.description %}
{% if seo_description %}
{% assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once %}
{% endif %}
{% assign seo_author = page.author | default: page.author[0] | default: site.author[0] %}
{% if seo_author %}
{% if seo_author.twitter %}
{% assign seo_author_twitter = seo_author.twitter %}
{% else %}
{% if site.data.authors and site.data.authors[seo_author] %}
{% assign seo_author_twitter = site.data.authors[seo_author].twitter %}
{% else %}
{% assign seo_author_twitter = seo_author %}
{% endif %}
{% endif %}
{% assign seo_author_twitter = seo_author_twitter | replace: "@", "" %}
{% endif %}
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en" }}">
<meta property="og:site_name" content="{{ site.title }}">
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
{% if seo_url %}
<link rel="canonical" href="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
<meta property="og:url" content="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
{% endif %}
{% if page.excerpt %}
<meta property="og:description" content="{{ seo_description }}">
{% endif %}
{% if site.twitter.username %}
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
<meta name="twitter:description" content="{{ seo_description }}">
<meta name="twitter:url" content="{{ canonical_url }}">
{% if page.header.image %}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% else %}
<meta name="twitter:card" content="summary">
{% if page.header.teaser %}
<meta name="twitter:image" content="{% if page.header.teaser contains "://" %}{{ page.header.teaser }}{% else %}{{ page.header.teaser | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% elsif site.og_image %}
<meta name="twitter:image" content="{{ site.og_image | prepend: "/images/" | prepend: base_path }}">
{% endif %}
{% endif %}
{% if seo_author_twitter %}
<meta name="twitter:creator" content="@{{ seo_author_twitter }}">
{% endif %}
{% endif %}
{% if site.facebook %}
{% if site.facebook.publisher %}
<meta property="article:publisher" content="{{ site.facebook.publisher }}">
{% endif %}
{% if site.facebook.app_id %}
<meta property="fb:app_id" content="{{ site.facebook.app_id }}">
{% endif %}
{% endif %}
{% if page.header.image %}
<meta property="og:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% elsif page.header.overlay_image %}
<meta property="og:image" content="{% if page.header.overlay_image contains "://" %}{{ page.header.overlay_image }}{% else %}{{ page.header.overlay_image | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% elsif page.header.teaser %}
<meta property="og:image" content="{% if page.header.teaser contains "://" %}{{ page.header.teaser }}{% else %}{{ page.header.teaser | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% elsif site.og_image %}
<meta property="og:image" content="{% if site.og_image contains "://" %}{{ site.og_image }}{% else %}{{ site.og_image | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% endif %}
{% if page.date %}
<meta property="og:type" content="article">
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
{% endif %}
{% if paginator.previous_page %}
<link rel="prev" href="{{ paginator.previous_page_path | prepend: seo_url }}">
{% endif %}
{% if paginator.next_page %}
<link rel="next" href="{{ paginator.next_page_path | prepend: seo_url }}">
{% endif %}
{% if site.og_image %}
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"url": {{ seo_url | jsonify }},
"logo": {{ site.og_image | prepend: "/images/" | prepend: base_path | jsonify }}
}
</script>
{% endif %}
{% if site.social %}
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
"name" : "{{ site.social.name | default: site.name }}",
"url" : {{ seo_url | jsonify }},
"sameAs" : {{ site.social.links | jsonify }}
}
</script>
{% endif %}
{% if site.google_site_verification %}
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
{% endif %}
{% if site.bing_site_verification %}
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
{% endif %}
{% if site.alexa_site_verification %}
<meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
{% endif %}
{% if site.yandex_site_verification %}
<meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
{% endif %}
<!-- end SEO -->
-25
View File
@@ -1,25 +0,0 @@
{% include base_path %}
{% if page.author_profile or layout.author_profile or page.sidebar %}
<div class="sidebar sticky">
{% if page.author_profile or layout.author_profile %}{% include author-profile.html %}{% endif %}
{% if page.sidebar %}
{% for s in page.sidebar %}
{% if s.image %}
<img src=
{% if s.image contains "://" %}
"{{ s.image }}"
{% else %}
"{{ s.image | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if s.image_alt %}{{ s.image_alt }}{% endif %}">
{% endif %}
{% if s.title %}<h3>{{ s.title }}</h3>{% endif %}
{% if s.text %}{{ s.text | markdownify }}{% endif %}
{% endfor %}
{% if page.sidebar.nav %}
{% include nav_list nav=page.sidebar.nav %}
{% endif %}
{% endif %}
</div>
{% endif %}
-15
View File
@@ -1,15 +0,0 @@
{% include base_path %}
<section class="page__share">
{% if site.data.ui-text[site.locale].share_on_label %}
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
{% endif %}
<a href="https://twitter.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username }}&{% endif %}text={{ page.title }} {{ base_path }}{{ page.url }}" class="btn btn--twitter" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
<a href="https://www.facebook.com/sharer/sharer.php?u={{ base_path }}{{ page.url }}" class="btn btn--facebook" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
<a href="https://plus.google.com/share?url={{ base_path }}{{ page.url }}" class="btn btn--google-plus" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ base_path }}{{ page.url }}" class="btn btn--linkedin" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
</section>
-28
View File
@@ -1,28 +0,0 @@
{% include base_path %}
{% case site.tag_archive.type %}
{% when "liquid" %}
{% assign path_type = "#" %}
{% when "jekyll-archives" %}
{% assign path_type = nil %}
{% endcase %}
{% if site.tag_archive.path %}
{% comment %}
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
{% endcomment %}
{% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign tag_hashes = (page_tags | split: ',' | sort:0) %}
<p class="page__taxonomy">
<strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
<span itemprop="keywords">
{% for hash in tag_hashes %}
{% assign keyValue = hash | split: '#' %}
{% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
<a href="{{ base_path }}{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
{% endfor %}
</span>
</p>
{% endif %}
-7
View File
@@ -1,7 +0,0 @@
<aside class="sidebar__right">
<nav class="toc" markdown="1">
<header><h4 class="nav__title"><i class="fa fa-{{ include.icon | default: 'file-text' }}"></i> {{ include.title | default: site.data.ui-text[site.locale].toc_label }}</h4></header>
* Auto generated table of contents
{:toc .toc__menu}
</nav>
</aside>
-16
View File
@@ -1,16 +0,0 @@
---
layout: default
author_profile: false
---
<div id="main" role="main">
{% include sidebar.html %}
<div class="archive">
<h1 class="page__title">{{ page.title }}</h1>
{% include base_path %}
{% for post in page.posts %}
{% include archive-single.html %}
{% endfor %}
</div>
</div>
-24
View File
@@ -1,24 +0,0 @@
---
layout: default
---
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% endif %}
{% if page.url != "/" and site.breadcrumbs %}
{% unless paginator %}
{% include breadcrumbs.html %}
{% endunless %}
{% endif %}
<div id="main" role="main">
{% include sidebar.html %}
<div class="archive">
{% unless page.header.overlay_color or page.header.overlay_image %}
<h1 class="page__title">{{ page.title }}</h1>
{% endunless %}
{{ content }}
</div>
</div>
-10
View File
@@ -1,10 +0,0 @@
---
# Jekyll layout that compresses HTML
# v3.0.2
# http://jch.penibelst.de/
# © 20142015 Anatol Broder
# MIT License
---
{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
-30
View File
@@ -1,30 +0,0 @@
---
---
{% include base_path %}
<!doctype html>
<html lang="{{ site.locale | slice: 0,2 | default: "en" }}" class="no-js">
<head>
{% include head.html %}
{% include head/custom.html %}
</head>
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}">
{% include browser-upgrade.html %}
{% include masthead.html %}
{{ content }}
<div class="page__footer">
<footer>
{% include footer/custom.html %}
{% include footer.html %}
</footer>
</div>
{% include scripts.html %}
</body>
</html>
-19
View File
@@ -1,19 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<html>
<head>
{% include head_print.html %}
</head>
<body class="{% if page.type == " title "%}title{% elsif page.type == "frontmatter " %}frontmatter{% elsif page.type == "first_page
" %}first_page{% endif %} print">
<!-- Page Content -->
<div class="container">
<!-- Content Column -->
<div class="col-md-9">
{{content}}
</div>
</div>
<!-- /.container -->
</body>
</html>
-18
View File
@@ -1,18 +0,0 @@
---
layout: default_print
comments: false
---
<div class="post-header">
<h1 class="post-title-main" id="{{page.permalink | replace: '/', '' }}">{{ page.excerpt }}</h1>
</div>
<div class="post-content">
{% if page.summary %}
<div class="summary">{{page.summary}}</div>
{% endif %}
{{ content }}
</div>
-81
View File
@@ -1,81 +0,0 @@
---
layout: default
---
{% include base_path %}
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% endif %}
{% if page.url != "/" and site.breadcrumbs %}
{% unless paginator %}
{% include breadcrumbs.html %}
{% endunless %}
{% endif %}
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
<div id="main" role="main">
{% include sidebar.html %}
<article class="page" itemscope itemtype="http://schema.org/CreativeWork">
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
{% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}
<div class="page__inner-wrap">
{% unless page.header.overlay_color or page.header.overlay_image %}
<header>
{% if page.title %}<h1 class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
{% if page.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
</header>
{% endunless %}
<section class="page__content" itemprop="text">
{{ content }}
{% if page.link %}<div><a href="{{ page.link }}" class="btn">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
</section>
<footer class="page__meta">
{% if site.data.ui-text[site.locale].meta_label %}
<h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
{% endif %}
{% include page__taxonomy.html %}
{% if page.modified %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.modified | date: "%Y-%m-%d" }}">{{ page.modified | date: "%B %d, %Y" }}</time></p>
{% elsif page.date %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %d, %Y" }}</time></p>
{% endif %}
</footer>
{% if page.share %}{% include social-share.html %}{% endif %}
{% include post_pagination.html %}
</div>
{% if site.comments.provider and page.comments %}
{% include comments.html %}
{% endif %}
</article>
{% comment %}<!-- only show related on a post page when not disabled -->{% endcomment %}
{% if page.id and page.related and site.related_posts.size > 0 %}
<div class="page__related">
{% if site.data.ui-text[site.locale].related_label %}
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
{% endif %}
<div class="grid__wrapper">
{% for post in site.related_posts limit:4 %}
{% include archive-single.html type="grid" %}
{% endfor %}
</div>
</div>
{% endif %}
</div>
-22
View File
@@ -1,22 +0,0 @@
---
layout: default
---
{% include base_path %}
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% endif %}
<div id="main" role="main">
<article class="splash" itemscope itemtype="http://schema.org/CreativeWork">
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
{% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}
<section class="page__content" itemprop="text">
{{ content }}
</section>
</article>
</div>
-17
View File
@@ -1,17 +0,0 @@
---
title: "Page Not Found"
layout: single
excerpt: "Page not found. Your pixels are in another canvas."
sitemap: false
permalink: /404.html
---
Sorry, but the page you were trying to view does not exist --- perhaps you can try searching for it below.
<script type="text/javascript">
var GOOG_FIXURL_LANG = 'en';
var GOOG_FIXURL_SITE = '{{ site.url }}'
</script>
<script type="text/javascript"
src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js">
</script>
-48
View File
@@ -1,48 +0,0 @@
---
layout: splash
permalink: /about/
author_profile: false
title: "About"
excerpt: "The project and the authors"
header:
overlay_color: "#5DADE2"
---
{% include base_path %}
## Main authors and mantainers
* Peter Boyle
* Guido Cossu
* Azusa Yamaguchi
* Antonin Portelli
## Description
This library provides data parallel C++ container classes with internal memory layout
that is transformed to map efficiently to SIMD architectures. CSHIFT facilities
are provided, similar to HPF and cmfortran, and user control is given over the mapping of
array indices to both MPI tasks and SIMD processing elements.
* Identically shaped arrays then be processed with perfect data parallelisation.
* Such identically shapped arrays are called conformable arrays.
The transformation is based on the observation that Cartesian array processing involves
identical processing to be performed on different regions of the Cartesian array.
The library will both geometrically decompose into MPI tasks and across SIMD lanes.
Local vector loops are parallelised with OpenMP pragmas.
Data parallel array operations can then be specified with a SINGLE data parallel paradigm, but
optimally use MPI, OpenMP and SIMD parallelism under the hood. This is a significant simplification
for most programmers.
The layout transformations are parametrised by the SIMD vector length. This adapts according to the architecture.
Presently SSE4 (128 bit) AVX, AVX2 (256 bit) and IMCI and AVX512 (512 bit) targets are supported (ARM NEON and BG/Q QPX on the way).
These are presented as `vRealF`, `vRealD`, `vComplexF`, and `vComplexD` internal vector data types. These may be useful in themselves for other programmers.
The corresponding scalar types are named `RealF`, `RealD`, `ComplexF` and `ComplexD`.
MPI, OpenMP, and SIMD parallelism are present in the library.
Please see [this paper](https://arxiv.org/abs/1512.03487) for more detail.
-34
View File
@@ -1,34 +0,0 @@
---
title : "API Documentation"
author_profile: false
excerpt: "Coordinates"
header:
overlay_color: "#5DADE2"
permalink: /docs/API/coordinates.html
sidebar:
nav : docs
---
The Grid is define on a N-dimensional set of integer coordinates.
The maximum dimension is eight, and indexes in this space make use of the `Coordinate` class.
The coordinate class shares a similar interface to `std::vector<int>`, but contains all data within the
object, and has a fixed maximum length (template parameter).
**Example**:
```c++
const int Nd=4;
Coordinate point(Nd);
for(int i=0;i<Nd;i++)
point[i] = 1;
std::cout<< point <<std::endl;
point.resize(3);
std::cout<< point <<std::endl;
```
This enables the coordinates to be manipulated without heap allocation or thread contention,
and avoids introducing STL functions into GPU code, but does so at the expense of introducing
a maximum dimensionality. This limit is easy to change (`lib/util/Coordinate.h`).
-90
View File
@@ -1,90 +0,0 @@
---
title : "API Documentation"
author_profile: false
excerpt: "Grids"
header:
overlay_color: "#5DADE2"
permalink: /docs/API/grids.html
sidebar:
nav : docs
---
A `Grid` object defines the geometry of a global cartesian array, and through inheritance
provides access to message passing decomposition, the local lattice, and the message passing primitives.
The constructor requires parameters to indicate how the spatial (and temporal) indices
are decomposed across MPI tasks and SIMD lanes of the vector length.
We use a partial vectorisation transformation, must select
which space-time dimensions participate in SIMD vectorisation.
The Lattice containers are defined to have opaque internal layout, hiding this layout transformation.
We define GridCartesian and GridRedBlackCartesian which both inherit from `GridBase`:
```c++
class GridCartesian : public GridBase
class GridRedBlackCartesian: public GridBase
```
The simplest Cartesian Grid constructor distributes across `MPI_COMM_WORLD`:
```c++
/////////////////////////////////////////////////////////////////////////
// Construct from comm world
/////////////////////////////////////////////////////////////////////////
GridCartesian(const Coordinate &dimensions,
const Coordinate &simd_layout,
const Coordinate &processor_grid);
```
A second constructor will create a child communicator from a previously declared Grid.
This allows to subdivide the processor grid, and also to define lattices of differing dimensionalities and sizes,
useful for both Chiral fermions, lower dimensional operations, and multigrid:
```c++
/////////////////////////////////////////////////////////////////////////
// Constructor takes a parent grid and possibly subdivides communicator.
/////////////////////////////////////////////////////////////////////////
GridCartesian(const Coordinate &dimensions,
const Coordinate &simd_layout,
const Coordinate &processor_grid,
const GridCartesian &parent,int &split_rank);
```
The Grid object provides much `internal` functionality to map a lattice site to
a node and lexicographic index. These are not needed by code interfacing
to the data parallel layer.
**Example** (`tests/solver/Test_split_grid.cc`):
```c++
const int Ls=8;
////////////////////////////////////////////
// Grids distributed across full machine
// pick up default command line args
////////////////////////////////////////////
Grid_init(&argc,&argv);
Coordinate latt_size = GridDefaultLatt();
Coordinate simd_layout = GridDefaultSimd(Nd,vComplex::Nsimd());
Coordinate mpi_layout = GridDefaultMpi();
GridCartesian * UGrid = SpaceTimeGrid::makeFourDimGrid(GridDefaultLatt(),
GridDefaultSimd(Nd,vComplex::Nsimd()),GridDefaultMpi());
GridCartesian * FGrid = SpaceTimeGrid::makeFiveDimGrid(Ls,UGrid);
GridRedBlackCartesian * rbGrid = SpaceTimeGrid::makeFourDimRedBlackGrid(UGrid);
GridRedBlackCartesian * FrbGrid = SpaceTimeGrid::makeFiveDimRedBlackGrid(Ls,UGrid);
/////////////////////////////////////////////
// Split into N copies of 1^4 mpi communicators
/////////////////////////////////////////////
Coordinate mpi_split (mpi_layout.size(),1);
GridCartesian * SGrid = new GridCartesian(GridDefaultLatt(),
GridDefaultSimd(Nd,vComplex::Nsimd()),
mpi_split,
*UGrid);
GridCartesian * SFGrid = SpaceTimeGrid::makeFiveDimGrid(Ls,SGrid);
GridRedBlackCartesian * SrbGrid = SpaceTimeGrid::makeFourDimRedBlackGrid(SGrid);
GridRedBlackCartesian * SFrbGrid = SpaceTimeGrid::makeFiveDimRedBlackGrid(Ls,SGrid);
```
-32
View File
@@ -1,32 +0,0 @@
---
title : "API Documentation"
author_profile: false
excerpt: "Data parallel API"
header:
overlay_color: "#5DADE2"
permalink: /docs/API/introduction.html
sidebar:
nav : docs
---
Data parallel array indices are divided into two types.
* Internal indices, such as complex, colour, spin degrees of freedom
* spatial (space-time) indices.
The ranges of all internal degrees are determined by template parameters,
and known at compile time. The ranges of spatial indices are dynamic, run time
values and the Cartesian structure information is contained and accessed via `Grid` objects.
Grid objects are the controlling entity for the decomposition of a distributed `Lattice`
array across MPI tasks, nodes, SIMD lanes, accelerators. Threaded loops are used
as appropriate on host code.
Data parallel operations can only be performed between Lattice objects constructed
from the same Grid pointer. These are called `conformable` operations.
We will focus initially on the internal indices as these are the building blocks assembled
in Lattice container classes. Every Lattice container class constructor requires a Grid object
pointer.
-560
View File
@@ -1,560 +0,0 @@
---
title : "API Documentation"
author_profile: false
excerpt: "Lattice containers"
header:
overlay_color: "#5DADE2"
permalink: /docs/API/lattice_containers.html
sidebar:
nav : docs
---
{% include toc icon="gears" title="Contents" %}
Lattice objects may be constructed to contain the local portion of a distribued array of any tensor type.
For performance reasons the tensor type uses a vector `Real` or `Complex` as the fundamental datum.
Every lattice requires a `GridBase` object pointer to be provided in its constructor. Memory is allocated
at construction time. If a Lattice is passed a RedBlack grid, it allocates
half the storage of the full grid, and may either store the red or black checkerboard. The Lattice object
will automatically track through assignments which checkerboard it refers to.
For example, shifting a Even checkerboard by an odd distance produces an Odd result field.
Struct of array objects are defined, and used in the template parameters to the lattice class.
**Example** (`lib/qcd/QCD.h`):
```c++
template<typename vtype> using iSpinMatrix = iScalar<iMatrix<iScalar<vtype>, Ns> >;
typedef iSpinMatrix<ComplexF> SpinMatrixF; //scalar
typedef iSpinMatrix<vComplexF> vSpinMatrixF;//vectorised
typedef Lattice<vSpinMatrixF> LatticeSpinMatrixF;
```
The full range of QCD relevant lattice objects is given below.
|-----------|------------|----------|-----------|---------------|---------------------------------|--------------------------|
| Lattice | Lorentz | Spin | Colour | scalar_type | Field | Synonym |
|-----------|------------|----------|-----------|---------------|---------------------------------|--------------------------|
|`Vector` | `Scalar` | `Scalar` | `Scalar` | `RealD` | `LatticeRealD` | N/A |
|`Vector` | `Scalar` | `Scalar` | `Scalar` | `ComplexD` | `LatticeComplexD` | N/A |
|`Vector` | `Scalar` | `Scalar` | `Matrix` | `ComplexD` | `LatticeColourMatrixD` | `LatticeGaugeLink` |
|`Vector` | `Vector` | `Scalar` | `Matrix` | `ComplexD` | `LatticeLorentzColourMatrixD` | `LatticeGaugeFieldD` |
|`Vector` | `Scalar` | `Vector` | `Vector` | `ComplexD` | `LatticeSpinColourVectorD` | `LatticeFermionD` |
|`Vector` | `Scalar` | `Vector` | `Vector` | `ComplexD` | `LatticeHalfSpinColourVectorD` | `LatticeHalfFermionD` |
|`Vector` | `Scalar` | `Matrix` | `Matrix` | `ComplexD` | `LatticeSpinColourMatrixD` | `LatticePropagatorD` |
|-----------|------------|----------|-----------|---------------|---------------------------------|--------------------------|
Additional single precison variants are defined with the suffix `F`.
Other lattice objects can be defined using the sort of typedef's shown above if needed.
### Opaque containers
The layout within the container is complicated to enable maximum opportunity for vectorisation, and
is opaque from the point of view of the API definition. The key implementation observation is that
so long as data parallel operations are performed and adjacent SIMD lanes correspond to well separated
lattice sites, then identical operations are performed on all SIMD lanes and enable good vectorisation.
Because the layout is opaque, import and export routines from naturally ordered x,y,z,t arrays
are provided (`lib/lattice/Lattice_transfer.h`):
```c++
unvectorizeToLexOrdArray(std::vector<sobj> &out, const Lattice<vobj> &in);
vectorizeFromLexOrdArray(std::vector<sobj> &in , Lattice<vobj> &out);
```
The Lexicographic order of data in the external vector fields is defined by (`lib/util/Lexicographic.h`):
```c++
Lexicographic::IndexFromCoor(const Coordinate &lcoor, int &lex,Coordinate *local_dims);
```
This ordering is $$x + L_x * y + L_x*L_y*z + L_x*L_y*L_z *t$$
Peek and poke routines are provided to perform single site operations. These operations are
extremely low performance and are not intended for algorithm development or performance critical code.
The following are "collective" operations and involve communication between nodes. All nodes receive the same
result by broadcast from the owning node:
```c++
void peekSite(sobj &s,const Lattice<vobj> &l,const Coordinate &site);
void pokeSite(const sobj &s,Lattice<vobj> &l,const Coordinate &site);
```
The following are executed independently by each node:
```c++
void peekLocalSite(sobj &s,const Lattice<vobj> &l,Coordinate &site);
void pokeLocalSite(const sobj &s,Lattice<vobj> &l,Coordinate &site);
```
Lattices of one tensor type may be transformed into lattices of another tensor type by
peeking and poking specific indices in a data parallel manner:
```c++
template<int Index,class vobj> // Vector data parallel index peek
auto PeekIndex(const Lattice<vobj> &lhs,int i);
template<int Index,class vobj> // Matrix data parallel index peek
auto PeekIndex(const Lattice<vobj> &lhs,int i,int j);
template<int Index,class vobj> // Vector poke
void PokeIndex(Lattice<vobj> &lhs,const Lattice<> & rhs,int i)
template<int Index,class vobj> // Matrix poke
void PokeIndex(Lattice<vobj> &lhs,const Lattice<> & rhs,int i,int j)
```
The inconsistent capitalisation on the letter P is due to an obscure bug in g++ that has not to
our knowledge been fixed in any version. The bug was reported in 2016.
### Global Reduction operations
Reduction operations for any lattice field are provided. The result is identical on each computing node
that is part of the relevant Grid communicator:
```c++
template<class vobj>
RealD norm2(const Lattice<vobj> &arg);
template<class vobj>
ComplexD innerProduct(const Lattice<vobj> &left,const Lattice<vobj> &right);
template<class vobj>
vobj sum(const Lattice<vobj> &arg)
```
### Site local reduction operations
Internal indices may be reduced, site by site, using the following routines:
```c++
template<class vobj>
auto localNorm2 (const Lattice<vobj> &rhs)
template<class vobj>
auto localInnerProduct (const Lattice<vobj> &lhs,const Lattice<vobj> &rhs)
```
### Outer product
A site local outer product is defined:
```c++
template<class ll,class rr>
auto outerProduct (const Lattice<ll> &lhs,const Lattice<rr> &rhs)
```
### Slice operations
Slice operations are defined to operate on one lower dimension than the full lattice. The omitted dimension
is the parameter orthogdim:
```c++
template<class vobj>
void sliceSum(const Lattice<vobj> &Data,
std::vector<typename vobj::scalar_object> &result,
int orthogdim);
template<class vobj>
void sliceInnerProductVector( std::vector<ComplexD> & result,
const Lattice<vobj> &lhs,
const Lattice<vobj> &rhs,
int orthogdim);
template<class vobj>
void sliceNorm (std::vector<RealD> &sn,
const Lattice<vobj> &rhs,
int orthogdim);
```
### Data parallel expression template engine
The standard arithmetic operators and some data parallel library functions are implemented site by site
on lattice types.
Operations may only ever combine lattice objects that have been constructed from the **same** grid pointer.
**Example**:
```c++
LatticeFermionD A(&grid);
LatticeFermionD B(&grid);
LatticeFermionD C(&grid);
A = B - C;
```
Such operations are said to be **conformable** and are the lattice are guaranteed to have the same dimensions
and both MPI and SIMD decomposition because they are based on the same grid object. The conformability check
is lightweight and simply requires the same grid pointers be passed to the lattice objects. The data members
of the grid objects are not compared.
Conformable lattice fields may be combined with appropriate scalar types in expressions. The implemented
rules follow those already documented for the tensor types.
### Unary operators and functions
The following sitewise unary operations are defined:
|-----------------------|---------------------------------------------|
| Operation | Description |
|-----------------------|---------------------------------------------|
|`operator-` | negate |
|`adj` | Hermitian conjugate |
|`conjugate` | complex conjugate |
|`trace` | sitewise trace |
|`transpose` | sitewise transpose |
|`Ta` | take traceles anti Hermitian part |
|`ProjectOnGroup` | reunitarise or orthogonalise |
|`real` | take the real part |
|`imag` | take the imaginary part |
|`toReal` | demote complex to real |
|`toComplex` | promote real to complex |
|`timesI` | elementwise +i mult (0 is not multiplied) |
|`timesMinusI` | elementwise -i mult (0 is not multiplied) |
|`abs` | elementwise absolute value |
|`sqrt` | elementwise square root |
|`rsqrt` | elementwise reciprocal square root |
|`sin` | elementwise sine |
|`cos` | elementwise cosine |
|`asin` | elementwise inverse sine |
|`acos` | elementwise inverse cosine |
|`log` | elementwise logarithm |
|`exp` | elementwise exponentiation |
|`operator!` | Logical negation of integer field |
|`Not` | Logical negation of integer field |
|-----------------------|---------------------------------------------|
The following sitewise applied functions with additional parameters are:
```c++
template<class obj> Lattice<obj> pow(const Lattice<obj> &rhs_i,RealD y);
template<class obj> Lattice<obj> mod(const Lattice<obj> &rhs_i,Integer y);
template<class obj> Lattice<obj> div(const Lattice<obj> &rhs_i,Integer y);
template<class obj> Lattice<obj>
expMat(const Lattice<obj> &rhs_i, RealD alpha, Integer Nexp = DEFAULT_MAT_EXP);
```
### Binary operators
The following binary operators are defined:
```
operator+
operator-
operator*
operator/
```
Logical are defined on LatticeInteger types:
```
operator&
operator|
operator&&
operator||
```
### Ternary operator, logical operatons and where
Within the data parallel level of the API the only way to perform operations
that are differentiated between sites is use predicated execution.
The predicate takes the form of a `LatticeInteger` which is confromable with both
the `iftrue` and `iffalse` argument:
```c++
template<class vobj,class iobj> void where(const Lattice<iobj> &pred,
Lattice<vobj> &iftrue,
Lattice<vobj> &iffalse);
```
This plays the data parallel analogue of the C++ ternary operator:
```c++
a = b ? c : d;
```
In order to create the predicate in a coordinate dependent fashion it is often useful
to use the lattice coordinates.
The `LatticeCoordinate` function:
```c++
template<class iobj> LatticeCoordinate(Lattice<iobj> &coor,int dir);
```
fills an `Integer` field with the coordinate in the N-th dimension.
A usage example is given
**Example**:
```c++
int dir =3;
int block=4;
LatticeInteger coor(FineGrid);
LatticeCoordinate(coor,dir);
result = where(mod(coor,block)==(block-1),x,z);
```
(Other usage cases of LatticeCoordinate include the generation of plane wave momentum phases.)
### Site local fused operations
The biggest limitation of expression template engines is that the optimisation
visibility is a single assignment statement in the original source code.
There is no scope for loop fusion between multiple statements.
Multi-loop fusion gives scope for greater cache locality.
Two primitives for hardware aware parallel loops are provided.
These will operate directly on the site objects which are expanded by a factor
of the vector length (in our struct of array datatypes).
Since the mapping of sites
to data lanes is opaque, these vectorised loops
are *only* appropriate for optimisation of site local operations.
### View objects
Due to an obscure aspect of the way that Nvidia handle device C++11 lambda functions,
it is necessary to disable the indexing of a Lattice object.
Rather, a reference to a lattice object must be first obtained.
The reference is copyable to a GPU, and is able to be indexed on either accelerator code,
or by host code.
In order to prevent people developing code that dereferences Lattice objects in a way that
works on CPU compilation, but fails on GPU compilation, we have decided to remove the ability
to index a lattice object on CPU code.
As a result of Nvidia's constraints, all accesses to lattice objects are required to be made
through a View object.
In the following, the type is `LatticeView<vobj>`, however it is wise to use the C++11 auto keyword
to avoid naming the type. See code examples below.
### thread_loops
The first parallel primitive is the thread_loop
**Example**:
```c++
LatticeField r(grid);
LatticeField x(grid);
LatticeField p(grid);
LatticeField mmp(grid);
auto r_v = r.View();
auto x_v = x.View();
auto p_v = p.View();
auto mmp_v = mmp.View();
thread_loop(s , r_v, {
r_v[s] = r_v[s] - a * mmp_v[s];
x_v[s] = x_v[s] + a*p_v[s];
p_v[s] = p_v[s]*b + r_v[s];
});
```
### accelerator_loops
The second parallel primitive is an accelerated_loop
**Example**:
```c++
LatticeField r(grid);
LatticeField x(grid);
LatticeField p(grid);
LatticeField mmp(grid);
auto r_v = r.View();
auto x_v = x.View();
auto p_v = p.View();
auto mmp_v = mmp.View();
accelerator_loop(s , r_v, {
r_v[s] = r_v[s] - a * mmp_v[s];
x_v[s] = x_v[s] + a*p_v[s];
p_v[s] = p_v[s]*b + r_v[s];
});
```
### Cshift
Site shifting operations are provided using the Cshift function:
```c++
template<class vobj>
Lattice<vobj> Cshift(const Lattice<vobj> &rhs,int dimension,int shift)
```
This shifts the whole vector by any distance shift in the appropriate dimension.
For the avoidance of doubt on direction conventions,a positive shift moves the
lattice site $$x_mu = 1$$ in the rhs to $$x_mu = 0$$ in the result.
**Example** (`benchmarks/Benchmark_wilson.cc`):
```c++
{ // Naive wilson implementation
ref = Zero();
for(int mu=0;mu<Nd;mu++){
tmp = U[mu]*Cshift(src,mu,1);
{
auto ref_v = ref.View();
auto tmp_v = tmp.View();
for(int i=0;i<ref_v.size();i++){
ref_v[i]+= tmp_v[i] - Gamma(Gmu[mu])*tmp_v[i]; ;
}
}
tmp =adj(U[mu])*src;
tmp =Cshift(tmp,mu,-1);
{
auto ref_v = ref.View();
auto tmp_v = tmp.View();
for(int i=0;i<ref_v.size();i++){
ref_v[i]+= tmp_v[i] + Gamma(Gmu[mu])*tmp_v[i]; ;
}
}
}
}
```
### CovariantCshift
Covariant Cshift operations are provided for common cases of boundary condition. These may be further optimised
in future:
```c++
template<class covariant,class gauge>
Lattice<covariant> CovShiftForward(const Lattice<gauge> &Link, int mu,
const Lattice<covariant> &field);
template<class covariant,class gauge>
Lattice<covariant> CovShiftBackward(const Lattice<gauge> &Link, int mu,
const Lattice<covariant> &field);
```
### Boundary conditions
The covariant shift routines occur in namespaces PeriodicBC and ConjugateBC. The correct covariant shift
for the boundary condition is passed into the gauge actions and wilson loops via an
"Impl" template policy class.
The relevant staples, plaquettes, and loops are formed by using the provided method:
```c++
Impl::CovShiftForward
Impl::CovShiftBackward
```
etc... This makes physics code transform appropriately with externally supplied rules about
treating the boundary.
**Example** (`lib/qcd/util/WilsonLoops.h`):
```c++
static void dirPlaquette(GaugeMat &plaq, const std::vector<GaugeMat> &U,
const int mu, const int nu) {
// ___
//| |
//|<__|
plaq = Gimpl::CovShiftForward(U[mu],mu,
Gimpl::CovShiftForward(U[nu],nu,
Gimpl::CovShiftBackward(U[mu],mu,
Gimpl::CovShiftIdentityBackward(U[nu], nu))));
}
```
### Inter-grid transfer operations
Transferring between different checkerboards of the same global lattice:
```c++
template<class vobj> void pickCheckerboard(int cb,Lattice<vobj> &half,const Lattice<vobj> &full);
template<class vobj> void setCheckerboard(Lattice<vobj> &full,const Lattice<vobj> &half);
```
These are used to set up Schur red-black decomposed solvers, for example.
Multi-grid projection between a fine and coarse grid:
```c++
template<class vobj,class CComplex,int nbasis>
void blockProject(Lattice<iVector<CComplex,nbasis > > &coarseData,
const Lattice<vobj> &fineData,
const std::vector<Lattice<vobj> > &Basis);
```
Multi-grid promotion to a finer grid:
```c++
template<class vobj,class CComplex,int nbasis>
void blockPromote(const Lattice<iVector<CComplex,nbasis > > &coarseData,
Lattice<vobj> &fineData,
const std::vector<Lattice<vobj> > &Basis)
```
Support for sub-block Linear algebra:
```c++
template<class vobj,class CComplex>
void blockZAXPY(Lattice<vobj> &fineZ,
const Lattice<CComplex> &coarseA,
const Lattice<vobj> &fineX,
const Lattice<vobj> &fineY)
template<class vobj,class CComplex>
void blockInnerProduct(Lattice<CComplex> &CoarseInner,
const Lattice<vobj> &fineX,
const Lattice<vobj> &fineY)
template<class vobj,class CComplex>
void blockNormalise(Lattice<CComplex> &ip,Lattice<vobj> &fineX)
template<class vobj>
void blockSum(Lattice<vobj> &coarseData,const Lattice<vobj> &fineData)
template<class vobj,class CComplex>
void blockOrthogonalise(Lattice<CComplex> &ip,std::vector<Lattice<vobj> > &Basis)
```
Conversion between different SIMD layouts:
```c++
template<class vobj,class vvobj>
void localConvert(const Lattice<vobj> &in,Lattice<vvobj> &out)
```
Slices between grid of dimension N and grid of dimentions N+1:
```c++
template<class vobj>
void InsertSlice(const Lattice<vobj> &lowDim,Lattice<vobj> & higherDim,int slice, int orthog)
template<class vobj>
void ExtractSlice(Lattice<vobj> &lowDim,const Lattice<vobj> & higherDim,int slice, int orthog)
```
Growing a lattice by a multiple factor, with periodic replication:
```c++
template<class vobj>
void Replicate(Lattice<vobj> &coarse,Lattice<vobj> & fine)
```
That latter is useful to, for example, pre-thermalise a smaller volume and then grow the volume in HMC.
It was written while debugging G-parity boundary conditions.
-107
View File
@@ -1,107 +0,0 @@
---
title : "API Documentation"
author_profile: false
excerpt: "Random number generators"
header:
overlay_color: "#5DADE2"
permalink: /docs/API/random_number_generators.html
sidebar:
nav : docs
---
Grid provides three configure time options for random the number generator engine.
* `sitmo`
* `ranlux48`
* `mt19937`
The selection is controlled by the `--enable-rng=<option>` flag.
Sitmo is the default Grid RNG and is recommended. It is a hash based RNG that is cryptographically secure and has
#. passed the BigCrush tests
#. can Skip forward an arbitrary distance (up to 2^256) in O(1) time
We use Skip functionality to place each site in an independent well separated stream.
The Skip was trivially parallelised, important in a many core node,
and gives very low overhead parallel RNG initialisation.
Our implementation of parallel RNG
* Has passed the BigCrush tests **drawing once from each site RNG** in a round robin fashion.
This test is applied in `tests/testu01/Test_smallcrush.cc`
The interface is as follows::
```c++
class GridSerialRNG {
GridSerialRNG();
void SeedFixedIntegers(const std::vector<int> &seeds);
}
class GridParallelRNG {
GridParallelRNG(GridBase *grid);
void SeedFixedIntegers(const std::vector<int> &seeds);
}
template <class vobj> void random(GridParallelRNG &rng,Lattice<vobj> &l) { rng.fill(l,rng._uniform); }
template <class vobj> void gaussian(GridParallelRNG &rng,Lattice<vobj> &l) { rng.fill(l,rng._gaussian); }
template <class sobj> void random(GridSerialRNG &rng,sobj &l) { rng.fill(l,rng._uniform ); }
template <class sobj> void gaussian(GridSerialRNG &rng,sobj &l) { rng.fill(l,rng._gaussian ); }
```
* Serial RNG's are used to assign scalar fields.
* Parallel RNG's are used to assign lattice fields and must subdivide the field grid (need not be conformable).
It is the API users responsibility to initialise, manage, save and restore these RNG state for their algorithm.
In particular there is no single globally managed RNG state.
Input/Output routines are provided for saving and restoring RNG states.
`lib/parallelIO/BinaryIO.h`:
```c++
////////////////////////////////////////////////////////////////////////////
// Read a RNG; use IOobject and lexico map to an array of state
////////////////////////////////////////////////////////////////////////////
static void readRNG(GridSerialRNG &serial,
GridParallelRNG &parallel,
std::string file,
Integer offset,
uint32_t &nersc_csum,
uint32_t &scidac_csuma,
uint32_t &scidac_csumb)
////////////////////////////////////////////////////////////////////////////
// Write a RNG; lexico map to an array of state and use IOobject
////////////////////////////////////////////////////////////////////////////
static void writeRNG(GridSerialRNG &serial,
GridParallelRNG &parallel,
std::string file,
Integer offset,
uint32_t &nersc_csum,
uint32_t &scidac_csuma,
uint32_t &scidac_csumb)
lib/parallelIO/NerscIO.h::
void writeRNGState(GridSerialRNG &serial,GridParallelRNG &parallel,std::string file);
void readRNG(GridSerialRNG &serial,
GridParallelRNG &parallel,
std::string file,
Integer offset,
uint32_t &nersc_csum,
uint32_t &scidac_csuma,
uint32_t &scidac_csumb);
```
**Example**:
```c++
NerscIO::writeRNGState(sRNG,pRNG,rfile);
```
-443
View File
@@ -1,443 +0,0 @@
---
title : "API Documentation"
author_profile: false
excerpt: "Tensor classes"
header:
overlay_color: "#5DADE2"
permalink: /docs/API/tensor_classes.html
sidebar:
nav : docs
---
The Tensor data structures are built up from fundamental
scalar matrix and vector classes:
```c++
template<class vobj > class iScalar { private: vobj _internal ; }
template<class vobj,int N> class iVector { private: vobj _internal[N] ; }
template<class vobj,int N> class iMatrix { private: vobj _internal[N] ; }
```
These are template classes and can be passed a fundamental scalar or vector type, or
nested to form arbitrarily complicated tensor products of indices. All mathematical expressions
are defined to operate recursively, index by index.
Presently the constants
* `Nc`
* `Nd`
are globally predefined. However, this is planned for changed in future and policy classes
for different theories (e.g. QCD, QED, SU2 etc...) will contain these constants and enable multiple
theories to coexist more naturally.
Arbitrary tensor products of fundamental scalar, vector
and matrix objects may be formed in principle by the basic Grid code.
For Lattice field theory, we define types according to the following tensor
product structure ordering. The suffix "D" indicates either double types, and
replacing with "F" gives the corresponding single precision type.
|Lattice | Lorentz | Spin | Colour | scalar_type | Field |
|---------|----------|-----------|----------|-------------|--------------------------|
|Scalar | Scalar | Scalar | Scalar | RealD | RealD |
|Scalar | Scalar | Scalar | Scalar | ComplexD | ComplexD |
|Scalar | Scalar | Scalar | Matrix | ComplexD | ColourMatrixD |
|Scalar | Vector | Scalar | Matrix | ComplexD | LorentzColourMatrixD |
|Scalar | Scalar | Vector | Vector | ComplexD | SpinColourVectorD |
|Scalar | Scalar | Vector | Vector | ComplexD | HalfSpinColourVectorD |
|Scalar | Scalar | Matrix | Matrix | ComplexD | SpinColourMatrixD |
|---------|----------|-----------|----------|-------------|--------------------------|
The types are implemented via a recursive tensor nesting system.
**Example** we declare:
```c++
template<typename vtype>
using iLorentzColourMatrix = iVector<iScalar<iMatrix<vtype, Nc> >, Nd > ;
typedef iLorentzColourMatrix<ComplexD > LorentzColourMatrixD;
```
**Example** we declare:
```c++
template<typename vtype>
using iLorentzColourMatrix = iVector<iScalar<iMatrix<vtype, Nc> >, Nd > ;
typedef iLorentzColourMatrix<ComplexD > LorentzColourMatrixD;
```
Arbitrarily deep tensor nests may be formed. Grid uses a positional and numerical rule to associate indices for contraction
in the Einstein summation sense.
|----------------|---------|------------|
| Symbolic name | Number | Position |
|----------------|---------|------------|
|`LorentzIndex` | 0 | left |
|`SpinIndex` | 1 | middle |
|`ColourIndex` | 2 | right |
|----------------|---------|------------|
The conventions are that the index ordering left to right are: Lorentz, Spin, Colour. A scalar type (either real
or complex, single or double precision) is be provided to the innermost structure.
### Tensor arithmetic rules (`lib/tensors/Tensor_arith.h`)
Arithmetic rules are defined on these types
The multiplication operator follows the natural multiplication
table for each index, index level by index level.
`Operator *`
|----|----|----|----|
| x | S | V | M |
|----|----|----|----|
| S | S | V | M |
| V | S | S | V |
| M | M | V | M |
|----|----|----|----|
The addition and subtraction rules disallow a scalar to be added to a vector,
and vector to be added to matrix. A scalar adds to a matrix on the diagonal.
`Operator +` and `Operator -`
|----|----|----|----|
| +/-| S | V | M |
|----|----|----|----|
| S | S | - | M |
| V | - | V | - |
| M | M | - | M |
|----|----|----|----|
The rules for a nested objects are recursively inferred level by level from basic rules of multiplication
addition and subtraction for scalar/vector/matrix. Legal expressions can only be formed between objects
with the same number of nested internal indices. All the Grid QCD datatypes have precisely three internal
indices, some of which may be trivial scalar to enable expressions to be formed.
Arithmetic operations are possible where the left or right operand is a scalar type.
**Example**:
```c++
LatticeColourMatrixD U(grid);
LatticeColourMatrixD Udag(grid);
Udag = adj(U);
RealD unitary_err = norm2(U*adj(U) - 1.0);
```
Will provide a measure of how discrepant from unitarity the matrix U is.
### Internal index manipulation (`lib/tensors/Tensor_index.h`)
General code can access any specific index by number with a peek/poke semantic:
```c++
// peek index number "Level" of a vector index
template<int Level,class vtype> auto peekIndex (const vtype &arg,int i);
// peek index number "Level" of a vector index
template<int Level,class vtype> auto peekIndex (const vtype &arg,int i,int j);
// poke index number "Level" of a vector index
template<int Level,class vtype>
void pokeIndex (vtype &pokeme,arg,int i)
// poke index number "Level" of a matrix index
template<int Level,class vtype>
void pokeIndex (vtype &pokeme,arg,int i,int j)
```
**Example**:
```c++
for (int mu = 0; mu < Nd; mu++) {
U[mu] = PeekIndex<LorentzIndex>(Umu, mu);
}
```
Similar to the QDP++ package convenience routines are provided to access specific elements of
vector and matrix internal index types by physics name or meaning aliases for the above routines
with the appropriate index constant.
* `peekColour`
* `peekSpin`
* `peekLorentz`
and
* `pokeColour`
* `pokeSpin`
* `pokeLorentz`
For example, we often store Gauge Fields with a Lorentz index, but can split them into
polarisations in relevant pieces of code.
**Example**:
```c++
for (int mu = 0; mu < Nd; mu++) {
U[mu] = peekLorentz(Umu, mu);
}
```
For convenience, direct access as both an l-value and an r-value is provided by the parenthesis operator () on each of the Scalar, Vector and Matrix classes.
For example one may write
**Example**:
```c++
ColourMatrix A, B;
A()()(i,j) = B()()(j,i);
```
bearing in mind that empty parentheses are need to address a scalar entry in the tensor index nest.
The first (left) empty parentheses move past the (scalar) Lorentz level in the tensor nest, and the second
(middle) empty parantheses move past the (scalar) spin level. The (i,j) index the colour matrix.
Other examples are easy to form for the many cases, and should be obvious to the reader.
This form of addressing is convenient and saves peek, modifying, poke
multiple temporary objects when both spin and colour indices are being accessed.
There are many cases where multiple lines of code are required with a peek/poke semantic which are
easier with direct l-value and r-value addressing.
### Matrix operations
Transposition and tracing specific internal indices are possible using:
```c++
template<int Level,class vtype>
auto traceIndex (const vtype &arg)
template<int Level,class vtype>
auto transposeIndex (const vtype &arg)
```
These may be used as
**Example**:
```c++
LatticeColourMatrixD Link(grid);
ComplexD link_trace = traceIndex<ColourIndex> (Link);
```
Again, convenience aliases for QCD naming schemes are provided via
* `traceColour`
* `traceSpin`
* `transposeColour`
* `transposeSpin`
**Example**:
```c++
ComplexD link_trace = traceColour (Link);
```
The operations only makes sense for matrix and scalar internal indices.
The trace and transpose over all indices is also defined for matrix and scalar types:
```c++
template<class vtype,int N>
auto trace(const iMatrix<vtype,N> &arg) -> iScalar
template<class vtype,int N>
auto transpose(const iMatrix<vtype,N> &arg ) -> iMatrix
```
Similar functions are:
* `conjugate`
* `adjoint`
The traceless anti-Hermitian part is taken with:
```c++
template<class vtype,int N> iMatrix<vtype,N>
Ta(const iMatrix<vtype,N> &arg)
```
Reunitarisation (or reorthogonalisation) is enabled by:
```c++
template<class vtype,int N> iMatrix<vtype,N>
ProjectOnGroup(const iMatrix<vtype,N> &arg)
```
**Example**:
```c++
LatticeColourMatrixD Mom(grid);
LatticeColourMatrixD TaMom(grid);
TaMom = Ta(Mom);
```
### Querying internal index structure
Templated code may find it useful to use query functions on the Grid datatypes they are provided.
For example general Serialisation and I/O code can inspect the nature of a type a routine has been
asked to read from disk, or even generate descriptive type strings:
```c++
////////////////////////////////////////////////////
// Support type queries on template params:
////////////////////////////////////////////////////
// int _ColourScalar = isScalar<ColourIndex,vobj>();
// int _ColourVector = isVector<ColourIndex,vobj>();
// int _ColourMatrix = isMatrix<ColourIndex,vobj>();
template<int Level,class vtype> int isScalar(void)
template<int Level,class vtype> int isVector(void)
template<int Level,class vtype> int isMatrix(void)
```
**Example** (`lib/parallelIO/IldgIO.h`):
```c++
template<class vobj> std::string ScidacRecordTypeString(int &colors, int &spins, int & typesize,int &datacount) {
/////////////////////////////////////////
// Encode a generic tensor as a string
/////////////////////////////////////////
typedef typename getPrecision<vobj>::real_scalar_type stype;
int _ColourN = indexRank<ColourIndex,vobj>();
int _ColourScalar = isScalar<ColourIndex,vobj>();
int _ColourVector = isVector<ColourIndex,vobj>();
int _ColourMatrix = isMatrix<ColourIndex,vobj>();
int _SpinN = indexRank<SpinIndex,vobj>();
int _SpinScalar = isScalar<SpinIndex,vobj>();
int _SpinVector = isVector<SpinIndex,vobj>();
int _SpinMatrix = isMatrix<SpinIndex,vobj>();
int _LorentzN = indexRank<LorentzIndex,vobj>();
int _LorentzScalar = isScalar<LorentzIndex,vobj>();
int _LorentzVector = isVector<LorentzIndex,vobj>();
int _LorentzMatrix = isMatrix<LorentzIndex,vobj>();
std::stringstream stream;
stream << "GRID_";
stream << ScidacWordMnemonic<stype>();
if ( _LorentzVector ) stream << "_LorentzVector"<<_LorentzN;
if ( _LorentzMatrix ) stream << "_LorentzMatrix"<<_LorentzN;
if ( _SpinVector ) stream << "_SpinVector"<<_SpinN;
if ( _SpinMatrix ) stream << "_SpinMatrix"<<_SpinN;
if ( _ColourVector ) stream << "_ColourVector"<<_ColourN;
if ( _ColourMatrix ) stream << "_ColourMatrix"<<_ColourN;
if ( _ColourScalar && _LorentzScalar && _SpinScalar ) stream << "_Complex";
typesize = sizeof(typename vobj::scalar_type);
if ( _ColourMatrix ) typesize*= _ColourN*_ColourN;
else typesize*= _ColourN;
if ( _SpinMatrix ) typesize*= _SpinN*_SpinN;
else typesize*= _SpinN;
};
```
### Inner and outer products
We recursively define (`tensors/Tensor_inner.h`), ultimately returning scalar in all indices:
```c++
/////////////////////////////////////////////////////////////////////////
// innerProduct Scalar x Scalar -> Scalar
// innerProduct Vector x Vector -> Scalar
// innerProduct Matrix x Matrix -> Scalar
/////////////////////////////////////////////////////////////////////////
template<class l,class r>
auto innerProductD (const iScalar<l>& lhs,const iScalar<r>& rhs)
template<class l,class r,int N>
auto innerProductD (const iVector<l,N>& lhs,const iVector<r,N>& rhs)
template<class l,class r,int N>
auto innerProductD (const iMatrix<l,N>& lhs,const iMatrix<r,N>& rhs)
template<class l,class r>
auto innerProduct (const iScalar<l>& lhs,const iScalar<r>& rhs)
template<class l,class r,int N>
auto innerProduct (const iVector<l,N>& lhs,const iVector<r,N>& rhs)
template<class l,class r,int N>
auto innerProduct (const iMatrix<l,N>& lhs,const iMatrix<r,N>& rhs)
```
The sum is always performed in double precision for the `innerProductD` variant.
We recursively define (`tensors/Tensor_outer.h`):
```c++
/////////////////////////////////////////////////////////////////////////
// outerProduct Scalar x Scalar -> Scalar
// Vector x Vector -> Matrix
/////////////////////////////////////////////////////////////////////////
template<class l,class r>
auto outerProduct (const iScalar<l>& lhs,const iScalar<r>& rhs)
template<class l,class r,int N>
auto outerProduct (const iVector<l,N>& lhs,const iVector<r,N>& rhs)
```
### Functions of Tensor
The following unary functions are defined, which operate element by element on a tensor
data structure:
```c++
sqrt();
rsqrt();
sin();
cos();
asin();
acos();
log();
exp();
abs();
Not();
toReal();
toComplex();
```
Element wise functions are defined for::
```c++
div(tensor,Integer);
mod(tensor,Integer);
pow(tensor,RealD);
```
Matrix exponentiation (as opposed to element wise exponentiation is implemented via power series in::
```c++
Exponentiate(const Tensor &r ,RealD alpha, Integer Nexp = DEFAULT_MAT_EXP)
```
the exponentiation is distributive across vector indices (i.e. proceeds component by component for a `LorentzColourMatrix`).
Determinant is similar::
```c++
iScalar Determinant(const Tensor &r )
```
-25
View File
@@ -1,25 +0,0 @@
---
title : "API Documentation"
author_profile: false
excerpt: "Vectorisation"
header:
overlay_color: "#5DADE2"
permalink: /docs/API/vectorisation.html
sidebar:
nav : docs
---
Internally, Grid defines a portable abstraction SIMD vectorisation, via the following types:
* `vRealF`
* `vRealD`
* `vComplexF`
* `vComplexD`
These have the usual range of arithmetic operators and functions acting upon them. They do not form
part of the API, but are mentioned to (partially) explain the need for controlling the
layout transformation in lattice objects.
-32
View File
@@ -1,32 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Reporting an issue"
header:
overlay_color: "#C70039"
permalink: /docs/bug_report/
sidebar:
nav : docs
---
__To help us tracking and solving more efficiently issues with Grid, please report problems using the [issue system of GitHub](https://github.com/paboyle/Grid/issues) rather than sending emails to Grid developers.__
We also suggest to have a brief look at the [closed issues pages](https://github.com/paboyle/Grid/issues?q=is%3Aissue+is%3Aclosed) and check whether the problem has been addressed already.
{% capture notice-text %}
1. Check that the code is pointing to the `HEAD` of `develop` or any commit in `master` which is tagged with a version number.
2. Give a description of the target platform (CPU, network, compiler). Please give the full CPU part description, using for example `cat /proc/cpuinfo | grep 'model name' | uniq` (Linux) or `sysctl machdep.cpu.brand_string` (macOS) and the full output the `--version` option of your compiler.
3. Give the exact `configure` command used.
4. Attach `config.log`.
5. Attach `grid.config.summary`.
6. Attach the output of `make V=1`.
7. Describe the issue and any previous attempt to solve it. If relevant, show how to reproduce the issue using a minimal working example.
{% endcapture %}
<div class="notice--warning">
<h4>When you file an issue, please go though the following checklist:</h4>
{{ notice-text | markdownify }}
</div>
-38
View File
@@ -1,38 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Supported communication interfaces"
header:
overlay_color: "#5DADE2"
permalink: /docs/comm_interfaces/
sidebar:
nav : docs
---
{% include base_path %}
The following options can be used with the `--enable-comms=` option to target different communication interfaces:
| `<comm>` | Description |
| ------------- | -------------------------------------------- |
| `none` | no communications |
| `mpi` | MPI communications using [MPI-3 shared memory](https://software.intel.com/sites/default/files/managed/eb/54/An_Introduction_to_MPI-3.pdf) |
| `mpi-auto` | MPI communications with compiler CXX but clone flags from MPICXX |
For the MPI interfaces the optional `-auto` suffix instructs the `configure` scripts to determine all the necessary compilation and linking flags. This is done by extracting the informations from the MPI wrapper specified in the environment variable `MPICXX` (if not specified `configure` will scan though a list of default names). The `-auto` suffix is not supported by the Cray environment wrapper scripts. Use the standard wrappers ( `CXX=CC` ) set up by Cray `PrgEnv` modules instead.
### Shared memory communications support
The following options can be use with the `--enable-shm=` option to target different shared memory behaviours (default `shmopen`):
| `<shm>` | Description |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `shmnone` | uses anonymous spaces, use only for 1 MPI rank per node |
| `shmopen` | uses `shm_open` to allocate a shared memory space for inter socket communications. Uses a unique file name in `/dev/shm` associated to the user. |
| `hugetlbfs` | optional [libhugetlbfs](https://github.com/libhugetlbfs/libhugetlbfs) support to map the shared memory allocation into huge 2M pages |
### Other flags
`--enable-shmpath=<path>` to select the shared memory map base path for [libhugetlbfs](https://github.com/libhugetlbfs/libhugetlbfs).
{% include paginator.html %}
-51
View File
@@ -1,51 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Execution model"
header:
overlay_color: "#5DADE2"
permalink: /docs/execution-model/
sidebar:
nav : docs
---
Grid is intended to support performance portability across a many of platforms ranging from single processors
to message passing CPU clusters and accelerated computing nodes.
The library provides data parallel C++ container classes with internal memory layout that is transformed to map efficiently to SIMD architectures. CSHIFT facilities are provided, similar to HPF and cmfortran, and user control is given over the mapping of array indices to both MPI tasks and SIMD processing elements.
Identically shaped arrays then be processed with perfect data parallelisation.
Such identically shaped arrays are called conformable arrays.
The transformation is based on the observation that Cartesian array processing involves identical processing to be performed on different regions of the Cartesian array.
The library will both geometrically decompose into MPI tasks and across SIMD lanes. Local vector loops are parallelised with OpenMP pragmas.
Data parallel array operations can then be specified with a SINGLE data parallel paradigm, but optimally use MPI, OpenMP and SIMD parallelism under the hood. This is a significant simplification for most programmers.
The two broad optimisation targets are:
* MPI, OpenMP, and SIMD parallelism
Presently SSE4, ARM NEON (128 bits) AVX, AVX2, QPX (256 bits), and AVX512 (512 bits) targets are supported
with aggressive use of architecture vectorisation intrinsic functions.
* MPI between nodes with and data parallel offload to GPU's.
For the latter generic C++ code is used both on the host and on the GPU, with a common vectorisation
granularity.
### Accelerator memory model
For accelerator targets it is assumed that heap allocations can be shared between the CPU
and the accelerator. This corresponds to lattice fields having their memory allocated with
*cudaMallocManaged* with Nvidia GPU's.
Grid does not assume that stack or data segments share a common address space with an accelerator.
* This constraint presently rules out porting Grid to AMD GPU's which do not support managed memory.
* At some point in the future a cacheing strategy may be implemented to enable running on AMD GPU's
This document was updated on March 2018.
{: .notice}
-213
View File
@@ -1,213 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Building on Intel and AMD targets"
header:
overlay_color: "#5DADE2"
permalink: /docs/general_build/
sidebar:
nav : docs
---
{% include base_path %}
The information included in this page has been updated on *March 2018* and it is valid for the [release version 0.7.0](https://github.com/paboyle/Grid/tree/release/v0.7.0).
{% include toc icon="gears" title="Contents" %}
### Building for the Intel Knights Landing
The following configuration is recommended for the [Intel Knights Landing](http://ark.intel.com/products/codename/48999/Knights-Landing) platform:
``` text
../configure --enable-precision=double\
--enable-simd=KNL \
--enable-comms=mpi-auto \
--with-gmp=<path> \
--with-mpfr=<path> \
--enable-mkl \
CXX=icpc MPICXX=mpiicpc
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed. If you are working on a Cray machine that does not use the `mpiicpc` wrapper, please use:
``` text
../configure --enable-precision=double\
--enable-simd=KNL \
--enable-comms=mpi \
--with-gmp=<path> \
--with-mpfr=<path> \
--enable-mkl \
CXX=CC CC=cc
```
### Building for the Intel Haswell
The following configuration is recommended for the [Intel Haswell platform](https://ark.intel.com/products/codename/42174/Haswell):
```bash
../configure --enable-precision=double\
--enable-simd=AVX2 \
--enable-comms=mpi-auto \
--enable-mkl \
CXX=icpc MPICXX=mpiicpc
```
The MKL flag enables use of BLAS and FFTW from the Intel Math Kernels Library.
If gmp and mpfr are NOT in standard places (`/usr/`) these flags may be needed:
```bash
--with-gmp=<path> \
--with-mpfr=<path>
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed.
If you are working on a Cray machine that does not use the `mpiicpc` wrapper, please use:
```bash
../configure --enable-precision=double\
--enable-simd=AVX2 \
--enable-comms=mpi \
--enable-mkl \
CXX=CC CC=cc
```
If using the Intel MPI library, threads should be pinned to NUMA domains using:
```bash
export I_MPI_PIN=1
```
This is the default.
### Building for the Intel Skylake
The following configuration is recommended for the [Intel Skylake platform](https://ark.intel.com/products/codename/37572/Skylake):
```bash
../configure --enable-precision=double\
--enable-simd=AVX512 \
--enable-comms=mpi-auto \
--enable-mkl \
CXX=mpiicpc
```
The MKL flag enables use of BLAS and FFTW from the Intel Math Kernels Library.
If gmp and mpfr are NOT in standard places (`/usr/`) these flags may be needed:
```bash
--with-gmp=<path> \
--with-mpfr=<path> \
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed.
If you are working on a Cray machine that does not use the `mpiicpc` wrapper, please use:
``` bash
../configure --enable-precision=double\
--enable-simd=AVX512 \
--enable-comms=mpi \
--enable-mkl \
CXX=CC CC=cc
```
If using the Intel MPI library, threads should be pinned to NUMA domains using:
```bash
export I_MPI_PIN=1
```
This is the default.
### Building for the AMD Epyc
The [AMD EPYC](https://www.amd.com/en/products/epyc) is a multichip module comprising 32 cores spread over four distinct chips each with 8 cores.
So, even with a single socket node there is a quad-chip module. Dual socket nodes with 64 cores total
are common. Each chip within the module exposes a separate NUMA domain.
There are four NUMA domains per socket and we recommend one MPI rank per NUMA domain.
MPI-3 is recommended with the use of four ranks per socket,
and 8 threads per rank.
The following configuration is recommended for the AMD EPYC platform:
```bash
../configure --enable-precision=double\
--enable-simd=AVX2 \
--enable-comms=mpi3 \
CXX=mpicxx
```
If `gmp` and `mpfr` are NOT in standard places (`/usr/`) these flags may be needed::
```bash
--with-gmp=<path> \
--with-mpfr=<path>
```
where `<path>` is the UNIX prefix where GMP and MPFR are installed.
Using MPICH and g++ v4.9.2, best performance can be obtained using explicit GOMP_CPU_AFFINITY flags for each MPI rank.
This can be done by invoking MPI on a wrapper script omp_bind.sh to handle this.
It is recommended to run 8 MPI ranks on a single dual socket AMD EPYC, with 8 threads per rank using MPI3 and
shared memory to communicate within this node:
```bash
mpirun -np 8 ./omp_bind.sh ./Benchmark_dwf --mpi 2.2.2.1 --dslash-unroll --threads 8 --grid 16.16.16.16 --cacheblocking 4.4.4.4
```
Where omp_bind.sh does the following:
```bash
#!/bin/bash
numanode=` expr $PMI_RANK % 8 `
basecore=`expr $numanode \* 16`
core0=`expr $basecore + 0 `
core1=`expr $basecore + 2 `
core2=`expr $basecore + 4 `
core3=`expr $basecore + 6 `
core4=`expr $basecore + 8 `
core5=`expr $basecore + 10 `
core6=`expr $basecore + 12 `
core7=`expr $basecore + 14 `
export GOMP_CPU_AFFINITY="$core0 $core1 $core2 $core3 $core4 $core5 $core6 $core7"
echo GOMP_CUP_AFFINITY $GOMP_CPU_AFFINITY
$@
```
### Build setup for laptops, other compilers, non-cluster builds
Many versions of `g++` and `clang++` work with Grid, and involve merely replacing `CXX` (and `MPICXX`),
and omit the `enable-mkl` flag.
Single node, non MPI builds are enabled with:
```bash
--enable-comms=none
```
FFTW support that is not in the default search path may then enabled with:
```bash
--with-fftw=<installpath>
```
BLAS will not be compiled in by default, and Lanczos will default to Eigen diagonalisation.
### Notes
- [GMP](https://gmplib.org/) is the GNU Multiple Precision Library.
- [MPFR](http://www.mpfr.org/) is a C library for multiple-precision floating-point computations with correct rounding.
- Both libaries are necessary for the RHMC support.
{% include paginator.html %}
-185
View File
@@ -1,185 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Quick start guide"
header:
overlay_color: "#5DADE2"
permalink: /docs/quick-start-guide/
sidebar:
nav : docs
---
{% include toc icon="gears" title="Quick-start" %}
Please send all pull requests to the `develop` branch.
{: .notice--warning}
## Requirements
### Required libraries
* [GMP](https://gmplib.org/) is the GNU Multiple Precision Library (RHMC support).
* [MPFR](http://www.mpfr.org/) is a C library for multiple-precision floating-point computations with correct rounding (RHMC support).
* [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page): bootstrapping GRID downloads and uses for internal dense matrix (non-QCD operations) the Eigen library.
Grid optionally uses:
* [HDF5](https://support.hdfgroup.org/HDF5/) for structured data I/O
* [LIME](http://usqcd-software.github.io/c-lime/) for ILDG and SciDAC file format support.
* [FFTW](http://www.fftw.org/) either generic version or via the Intel MKL library.
* [LAPACK](http://www.netlib.org/lapack/) either generic version or Intel MKL library.
### Compilers
* Intel ICPC v17 and later
* Clang v3.5 and later (need 3.8 and later for OpenMP)
* GCC v4.9.x
* GCC v6.3 and later (recommended)
**Important:**
Some versions of GCC appear to have a bug under high optimisation (-O2, -O3).
The safety of these compiler versions cannot be guaranteed at this time. Follow [Issue 100](https://github.com/paboyle/Grid/issues/100) for details and updates.
GCC v5.x, v6.1, v6.2
## Quick start
First, start by cloning the repository:
``` bash
git clone https://github.com/paboyle/Grid.git
```
Then enter the cloned directory and set up the build system:
```bash
cd Grid
./bootstrap.sh
```
Now you can execute the `configure` script to generate makefiles as in this example (here from a build directory):
``` bash
mkdir build
cd build
../configure --enable-precision=double --enable-simd=AVX --enable-comms=mpi-auto --prefix=<path>
```
where:
``` bash
--enable-precision=single|double
```
sets the **default precision**. Since this is largely a benchmarking convenience, it is anticipated that the default precision may be removed in future implementations, and that explicit type selection be made at all points. Naturally, most code will be type templated in any case.::
``` bash
--enable-simd=GEN|SSE4|AVX|AVXFMA|AVXFMA4|AVX2|AVX512|NEONv8|QPX
```
sets the **SIMD architecture**,
``` bash
--enable-comms=mpi|none
```
selects whether to use MPI communication (mpi) or no communication (none).
``` bash
--prefix=<path>
```
should be passed the prefix path where you want to install Grid.
Other options are detailed in the next section, you can also use
```bash
configure --help
```
to display them.
Like with any other program using GNU autotool, the
```bash
CXX, CXXFLAGS, LDFLAGS, ...
```
environment variables can be modified to customise the build.
Finally, you can build and install Grid:
``` bash
make
make install #this is optional
```
To minimise the build time, only the tests at the root of the `tests` directory are built by default. If you want to build tests in the sub-directory `<subdir>` you can execute:
``` bash
make -C tests/<subdir> tests
```
If you want to build all the tests at once just use `make tests`.
## Build configuration options
A full list of configurations options is available with the `./configure --help` command:
* `--prefix=<path>`: installation prefix for Grid.
* `--with-gmp=<path>`: look for GMP in the UNIX prefix `<path>`
* `--with-mpfr=<path>`: look for MPFR in the UNIX prefix `<path>`
* `--with-fftw=<path>`: look for FFTW in the UNIX prefix `<path>`
* `--with-hdf5=<path>`: look for HDF5 in the UNIX prefix `<path>`
* `--with-lime=<path>`: look for the C-LIME library in the UNIX prefix `<path>`
* `--enable-sfw-fp16=<yes|no`: Enable software FP16 communications support (default `yes`)
* `--enable-lapack[=<path>]`: enable LAPACK support in Lanczos eigensolver. A UNIX prefix containing the library can be specified (optional).
* `--enable-mkl[=<path>]`: use Intel MKL for FFT (and LAPACK if enabled) routines. A UNIX prefix containing the library can be specified (optional).
* `--enable-numa`: enable [numa first touch policy](http://queue.acm.org/detail.cfm?id=2513149) optimization (default `no`)
* `--enable-simd=<code>`: setup Grid for the SIMD target `<code>` (default: `GEN`). [List of possible SIMD targets](/Grid/docs/simd_targets/).
* `--enable-gen-simd-width=<size>`: select the size (in bytes) of the generic SIMD vector type (default: 32 bytes).
* `--enable-precision={single|double}`: set the default precision (default: `double`).
* `--enable-comms=<comm>`: Use `<comm>` for message passing (default: `none`). [List of possible comm targets](/Grid/docs/comm_interfaces/).
* `--enable-shm=<shm>`: Use `<shm>` for shared memory behaviour (default: `shmopen`). [List of possible shm targets](/Grid/docs/comm_interfaces/).
* `--enable-shmpath=<path>`: Select `<path>` for the shared memory mmap base path for libhugetlbfs.
* `--enable-rng={sitmo|ranlux48|mt19937}` choose the RNG (default: `sitmo`).
* `--disable-timers`: disable system dependent high-resolution timers.
* `--enable-chroma`: enable Chroma regression tests. A compiled version of Chroma is assumed to be present.
* `--enable-doxygen-doc`: enable the Doxygen documentation generation (build with `make doxygen-doc`)
{% if site.option=="web" %}
More details on the *Getting started* menu entries on the left.
{% endif %}
This document was updated on March 2018.
{: .notice}
-80
View File
@@ -1,80 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Running on a Intel Knights Landing"
header:
overlay_color: "#5DADE2"
permalink: /docs/running_knl/
sidebar:
nav : docs
---
{% include base_path %}
{% include toc icon="gears" title="Contents" %}
These are few suggestions in order to get the best performance on the Intel Knights Landing (KNL).
### Bind the memory allocation to the MCDRAM NUMA node
The KNL has two memory systems, the DDR4 (~90 GFlops/s) and the High Bandwidth Memory (MCDRAM, ~400 Gflops/s).
Each of the two memory system is attached to a different [NUMA context](https://software.intel.com/en-us/articles/optimizing-applications-for-numa).
On a KNL node the command `numactl --hardware` will report which NUMA context is connected to the faster MCDRAM.
A typical report looks like this
``` text
node 0 size: 98178 MB
node 0 free: 92899 MB
node 1 cpus:
node 1 size: 16384 MB
node 1 free: 15926 MB
```
In this case the node 1 is related to the 16GB MCDRAM (this is the typical situation on KNLs)
To bind the memory allocation to NUMA node 1 use
``` bash
numactl --membind 1 ./your-executable
```
### Controlling threading
The number of threads can be set in GRID at runtime by the flag
``` text
--threads <#threads>
```
A finer control can be achieved using the environment variable `KMP_HW_SUBSETS` (or the deprecated `KMP_PLACE_THREADS`).
From the [Intel developer guide](https://software.intel.com/en-us/node/684313):
>The KMP_HW_SUBSETS variable controls the hardware resource that will be used by the program. This variable specifies the number of sockets to use, how many cores to use per socket and how many threads to assign per core. For example, on Intel® Xeon Phi™ coprocessors, while each coprocessor can take up to four threads, specifying fewer than four threads per core may result in a better performance. While specifying two threads per core often yields better performance than one thread per core, specifying three or four threads per core may or may not improve the performance. This variable enables you to conveniently measure the performance of up to four threads per core.
A typical setting for the best performance on a single node is to use **62 cores with 1 threads per code**, on the bash shell this is set by
``` bash
export KMP_HW_SUBSETS=62c,1t
```
### Using the optimised Wilson Dslash kernels
Beside the generic implementation using stencils, GRID has optimised version of the Dslash kernels (for Wilson and DWF fermions).
Flags at runtime can be used for the optimised paths
| Flag | Description |
| --------------------- | --------------------------------------------------------------------- |
| `--dslash-generic` | This is the default option and used the implementation with stencils |
| `--dslash-unroll` | This explicitly unroll the colour loops. It is tied to `Nc=3` |
| `--dslash-asm` | This is specific for AVX512-F architectures and `Nc=3` |
The information included in this page has been updated on *November 2016* and it is valid for the release version 0.6.0.
{: .notice}
{% include paginator.html %}
-45
View File
@@ -1,45 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Supported SIMD architectures"
header:
overlay_color: "#5DADE2"
permalink: /docs/simd_targets/
sidebar:
nav : docs
---
{% include base_path %}
The following options can be used for `--enable-simd=` flag to target different SIMD instruction sets:
| `<code>` | Description |
| ----------- | -------------------------------------- |
| `GEN` | generic portable vector code |
| `SSE4` | SSE 4.2 (128 bit) |
| `AVX` | AVX (256 bit) |
| `AVXFMA` | AVX (256 bit) + FMA |
| `AVXFMA4` | AVX (256 bit) + FMA4 |
| `AVX2` | AVX 2 (256 bit) |
| `AVX512` | AVX 512 bit |
| `NEONv8` | [ARM NEON](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/ch07s03.html) (128 bit)
| `QPX` | QPX (256 bit) |
Alternatively, some CPU codenames can be directly used:
| `<code>` | Description |
| ----------- | -------------------------------------- |
| `KNL` | [Intel Xeon Phi codename Knights Landing](http://ark.intel.com/products/codename/48999/Knights-Landing) |
| `SKL` | [Intel Skylake with AVX512 support](https://ark.intel.com/products/codename/37572/Skylake) |
| `BGQ` | Blue Gene/Q |
#### Notes (Jan 2018):
* We currently support AVX512 for the Intel compiler and GCC (KNL and SKL target). Support for clang will appear in future
versions of Grid when the AVX512 support in the compiler is more advanced.
* For BG/Q only [bgclang](http://trac.alcf.anl.gov/projects/llvm-bgq) is supported. We do not presently plan to support more compilers for this platform.
* BG/Q performances are currently rather poor. This is being investigated for future versions.
* The vector size for the `GEN` target can be specified with the `configure` script option `--enable-gen-simd-width`.
{% include paginator.html %}
-40
View File
@@ -1,40 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Travis Continous Integration framework"
header:
overlay_color: "#5DADE2"
permalink: /docs/travis/
sidebar:
nav : docs
---
{% include base_path %}
<!-- {% include toc icon="gears" title="Helpers" %} -->
For continous testing of every commit we use the [Travis CI framework](https://travis-ci.org/).
The current status is
| Branch | Status |
|---------- | ------ |
| [Master](https://travis-ci.org/paboyle/Grid) | [![Build Status](https://travis-ci.org/paboyle/Grid.svg?branch=master)](https://travis-ci.org/paboyle/Grid) |
| [Develop](https://travis-ci.org/paboyle/Grid) | [![Build Status](https://travis-ci.org/paboyle/Grid.svg?branch=develop)](https://travis-ci.org/paboyle/Grid) |
| [Release 0.7.0](https://github.com/paboyle/Grid/tree/release/v0.7.0) | [![Build Status](https://travis-ci.org/paboyle/Grid.svg?branch=release/v0.7.0)](https://github.com/paboyle/Grid/tree/release/v0.7.0) |
### Automated tests
Travis will test the compilation workflow for single and double precision version on the following compilers for each commit:
- clang 3.7.0 on Ubuntu 14.04
- clang 3.8.0 on Ubuntu 14.04
- gcc 5.4.1 on Ubuntu 14.04
- gcc 4.9.4 on Ubuntu 14.04.1
- Apple LLVM version 8.1.0 (clang-802.0.42) on OSX (x86_64-apple-darwin16.5.0)
Due to the limitations of the Travis virtual machines, the archictecture is limited to SSE4 and few tests.
May 2017: a new server using [TeamCity](https://www.jetbrains.com/teamcity/specials/teamcity/teamcity.html?gclid=CjwKEAjwutXIBRDV7-SDvdiNsUoSJACIlTqlygt_V8-PqWvjV23oAj8wf2suNmct9-sFfplBFYctzBoCnTvw_wcB&gclsrc=aw.ds.ds&dclid=COOh9rPt6dMCFYOmUQodkpwLfQ) is being setup for extensive testing of every commit.
{% include paginator.html %}
-114
View File
@@ -1,114 +0,0 @@
---
title : "Documentation"
author_profile: false
excerpt: "Using HMC"
header:
overlay_color: "#5DADE2"
permalink: /docs/theories/hmc/
sidebar:
nav : docs
---
Using HMC in Grid version 0.7.0
These are the instructions to use the Generalised HMC on Grid version 0.7.0.
Disclaimer: GRID is still under active development so any information provided here can be changed in future releases.
Introduction
=======
The general problem is to generate a Markov Chain distributed according to the action $$S(\psi)$$ in order to compute observables expectaction values.
$$ \langle O \rangle = \frac{1}{Z} \int O e^{-S(\psi)} D\psi $$
The Hybrid Monte Carlo approach is to introduce ficticious random momenta to construct an Hamiltonian $$H(\psi)$$ and generate
new configurations by integrating the corresponding Hamilton equations.
$$H(\psi) = \frac{1}{2} P^2 + S(\psi)$$
Command line options
====================
(relevant file `GenericHMCrunner.h`)
List of command line options, specific for HMC
* ```--StartingType <string>```
Choices: HotStart, ColdStart, TepidStart, CheckpointStart
* ```--StartingTrajectory <integer>```
Only for CheckpointStart, ignored otherwise.
Expected format of the filename is ```<config prefix>.<integer>``` for the configuration and ```<rng file prefix>.<integer>```
* ```--Trajectories <integer>```
Number of trajectories in this run, excluding the thermalization steps. Default: 1.
* ```--Thermalizations <integers>```
Default: 10
* ```--ParameterFile <string>```
The filename for the input parameters deserialisation.
All of them, except the starting trajectory, can be overridden by the input file (but this behaviour can be easily changed by the user writing the source file).
Actions
======
Action names are defined in the file
lib/qcd/Actions.h
Gauge action names list:
```
WilsonGaugeActionR;
WilsonGaugeActionF;
WilsonGaugeActionD;
PlaqPlusRectangleActionR;
PlaqPlusRectangleActionF;
PlaqPlusRectangleActionD;
IwasakiGaugeActionR;
IwasakiGaugeActionF;
IwasakiGaugeActionD;
SymanzikGaugeActionR;
SymanzikGaugeActionF;
SymanzikGaugeActionD;
ConjugateWilsonGaugeActionR;
ConjugateWilsonGaugeActionF;
ConjugateWilsonGaugeActionD;
ConjugatePlaqPlusRectangleActionR;
ConjugatePlaqPlusRectangleActionF;
ConjugatePlaqPlusRectangleActionD;
ConjugateIwasakiGaugeActionR;
ConjugateIwasakiGaugeActionF;
ConjugateIwasakiGaugeActionD;
ConjugateSymanzikGaugeActionR;
ConjugateSymanzikGaugeActionF;
ConjugateSymanzikGaugeActionD;
```
Scalar action names list
```
ScalarActionR;
ScalarActionF;
ScalarActionD;
```
each of these action accept one single parameter at creation time (beta).
Example for creating a Symanzik action with beta=4.0
SymanzikGaugeActionR(4.0)
The suffixes R,F,D in the action names refer to the Real
(the precision is defined at compile time by the --enable-precision flag in the configure),
Float and Double, that force the precision of the action to be 32, 64 bit respectively.
-139
View File
@@ -1,139 +0,0 @@
---
##layout : single
title : "Documentation"
author_profile: false
excerpt: "Welcome to the Grid documentation pages"
header:
overlay_color: "#5DADE2"
#cta_label: "Download documentation"
#cta_url: "https://www.google.com"
sidebar:
nav : docs
permalink: /docs/
---
{% include base_path %}
We are currently working on the full documentation.
{% if site.option=="web" %}
Use the sidebar on the left to navigate.
{% endif %}
_May 2017 : The API description and Lattice Theories sections in the sidebar are work in progress_.
### Version history
* May 2017 [version 0.7.0](https://github.com/paboyle/Grid/tree/release/v0.7.0)
* November 2016 [version 0.6.0](https://github.com/paboyle/Grid/tree/release/v0.6.0)
Grid is primarily an application development interface (API) for structured Cartesian grid codes and written in C++11.
In particular it is aimed at Lattice Field Theory simulations in general gauge theories, but with a particular emphasis
on supporting SU(3) and U(1) gauge theories relevant to hadronic physics.
### Description
This library provides data parallel C++ container classes with internal memory layout
that is transformed to map efficiently to SIMD architectures. CSHIFT facilities
are provided, similar to HPF and cmfortran, and user control is given over the mapping of
array indices to both MPI tasks and SIMD processing elements.
* Identically shaped arrays then be processed with perfect data parallelisation.
* Such identically shaped arrays are called conformable arrays.
The transformation is based on the observation that Cartesian array processing involves
identical processing to be performed on different regions of the Cartesian array.
The library will both geometrically decompose into MPI tasks and across SIMD lanes.
Local vector loops are parallelised with OpenMP pragmas.
Data parallel array operations can then be specified with a SINGLE data parallel paradigm, but
optimally use MPI, OpenMP and SIMD parallelism under the hood. This is a significant simplification
for most programmers.
The layout transformations are parametrised by the SIMD vector length. This adapts according to the architecture.
Presently SSE4 (128 bit) AVX, AVX2, QPX (256 bit), IMCI, and AVX512 (512 bit) targets are supported (ARM NEON on the way).
These are presented as `vRealF`, `vRealD`, `vComplexF`, and `vComplexD` internal vector data types. These may be useful in themselves for other programmers.
The corresponding scalar types are named `RealF`, `RealD`, `ComplexF` and `ComplexD`.
MPI, OpenMP, and SIMD parallelism are present in the library.
Please see [this paper](https://arxiv.org/abs/1512.03487) for more detail.
### Who will use this library
As an application development interface *Grid* is primarily a programmers tool providing the
building blocks and primitives for constructing lattice gauge theory programmes.
Grid functionality includes:
* Data parallel primitives, similar to QDP++
* gauge and fermion actions
* solvers
* gauge and fermion force terms
* integrators and (R)HMC.
* parallel field I/O
* object serialisation (text, XML, JSON...)
Grid is intended to enable the rapid and easy development of code with reasonably competitive performance.
It is first and foremost a *library* to which people can programme, and develop new algorithms and measurements.
As such, it is very much hoped that peoples principle point of contact with Grid will be in
the wonderfully rich C++ language. Since import and export procedures are provided for the opaque lattice types
it should be possible to call Grid from other code bases.
Grid is most tightly coupled to the Hadrons package
developed principally by Antonin Portelli.
This package is entirely composed against the Grid data parallel interface.
Interfacing to other packages is also possible.
Several regression tests that combine Grid with Chroma are included in the Grid distribution.
Further, Grid has been successfully interfaced to
* The Columbia Physics System
* The MILC code
### Data parallel interface
Most users will wish to interact with Grid above the data parallel *Lattice* interface. At this level
a programme is simply written as a series of statements, addressing entire lattice objects.
Implementation details may be provided to explain how the code works, but are not strictly part of the API.
**Example**
For example, as an implementation detail, in a single programme multiple data (SPMD) message passing supercomputer the main programme is trivially replicated on each computing node. The data parallel operations are called *collectively* by all nodes. Any scalar values returned by the various reduction routines are the same on each node, resulting in (for example) the same decision being made by all nodes to terminate an iterative solver on the same iteration.
### Internal development
Internal developers may contribute to Grid at a level below the data parallel interface.
Specifically, development of new lattice Dirac operators, for example,
or any codes directly interacting with the
* Communicators
* Simd
* Tensor
* Stencil
will make use of facilities provided by to assist the creation of high performance code. The internal data layout complexities
will be exposed to some degree and the interfaces are subject to change without notice as HPC architectures change.
Since some of the internal implementation details are needed to explain the design strategy of grid these will be
documented, but labelled as *implementation dependent*
Reasonable endeavours will be made to preserve functionality where practical but no guarantees are made.
{% include paginator.html %}
-21
View File
@@ -1,21 +0,0 @@
/* ==========================================================================
ANIMATIONS
========================================================================== */
@-webkit-keyframes intro {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes intro {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
-238
View File
@@ -1,238 +0,0 @@
/* ==========================================================================
ARCHIVE
========================================================================== */
.archive {
margin-bottom: 2em;
@include breakpoint($medium) {
@include span(12 of 12);
}
@include breakpoint($large) {
@include span(10 of 12 last);
@include prefix(0.5 of 12);
}
a {
color: inherit;
text-decoration: none;
}
}
.archive__subtitle {
margin: 1.414em 0 0;
padding-bottom: 0.5em;
font-size: $type-size-5;
color: mix(#fff, $gray, 25%);
border-bottom: 1px solid $border-color;
+ .list__item .archive__item-title {
margin-top: 0.5em;
}
}
.archive__item-title {
margin-bottom: 0.25em;
font-family: $sans-serif-narrow;
a + a {
opacity: 0.5;
}
}
/* remove border*/
.page__content {
.archive__item-title {
margin-top: 1em;
border-bottom: none;
}
}
.archive__item-excerpt {
margin-top: 0;
font-size: $type-size-6;
& + p {
text-indent: 0;
}
}
.archive__item-teaser {
border-radius: $border-radius;
overflow: hidden;
img {
width: 100%;
}
}
.archive__item:hover {
.archive__item-teaser {
box-shadow: 0 0 10px rgba(#000, 0.25);
}
.archive__item-title {
text-decoration: underline;
}
}
/*
List view
========================================================================== */
.list__item {
@include breakpoint($medium) {
padding-right: $right-sidebar-width-narrow;
}
@include breakpoint($large) {
padding-right: $right-sidebar-width;
}
@include breakpoint($x-large) {
padding-right: $right-sidebar-width-wide;
}
.page__meta {
margin: 0 0 4px;
}
}
/*
Grid view
========================================================================== */
.grid__item {
margin-bottom: 2em;
.page__meta {
margin: 0 0 4px;
}
.archive__item-title {
margin-top: 0.5em;
font-size: $type-size-5;
}
.archive__item-excerpt {
display: none;
}
@include breakpoint($small) {
@include gallery(5 of 10);
.archive__item-teaser {
max-height: 200px;
}
}
@include breakpoint($medium) {
margin-left: 0; /* reset before mixin does its thing*/
margin-right: 0; /* reset before mixin does its thing*/
@include gallery(2.5 of 10);
.archive__item-teaser {
max-height: 120px;
}
.archive__item-excerpt {
display: block;
font-size: $type-size-6;
}
}
}
/*
Features
========================================================================== */
.feature__wrapper {
@include clearfix();
margin-bottom: 2em;
border-bottom: 1px solid $border-color;
}
.feature__item {
margin-bottom: 2em;
font-size: 1.25rem;
@include breakpoint($small) {
margin-bottom: 0;
@include gallery(4 of 12);
.feature__item-teaser {
max-height: 200px;
overflow: hidden;
}
}
&--left {
@include full();
font-size: 1.25rem;
.archive__item-teaser {
margin-bottom: 2em;
}
@include breakpoint($small) {
.archive__item-teaser {
@include span(5 of 12);
}
.archive__item-body {
@include span(7 of 12 last);
@include prefix(0.5 of 12);
@include suffix(1 of 12);
}
}
}
&--right {
@include full();
font-size: 1.25rem;
.archive__item-teaser {
margin-bottom: 2em;
}
@include breakpoint($small) {
text-align: right;
.archive__item-teaser {
@include span(5 of 12 rtl);
}
.archive__item-body {
@include span(7 of 12 last rtl);
@include prefix(0.5 of 12);
@include suffix(1 of 12);
}
}
}
&--center {
@include full();
font-size: 1.25rem;
.archive__item-teaser {
margin-bottom: 2em;
}
@include breakpoint($small) {
text-align: center;
.archive__item-teaser {
margin: 0 auto;
width: span(5 of 12);
}
.archive__item-body {
margin: 0 auto;
width: span(7 of 12);
}
}
}
}
-315
View File
@@ -1,315 +0,0 @@
/* ==========================================================================
BASE ELEMENTS
========================================================================== */
html {
/* sticky footer fix */
position: relative;
min-height: 100%;
}
body {
margin: 0;
padding: 0;
color: $text-color;
font-family: $global-font-family;
line-height: 1.5;
&.overflow--hidden {
/* when primary navigation is visible, the content in the background won't scroll */
overflow: hidden;
}
}
h1, h2, h3, h4, h5, h6 {
margin: 2em 0 0.5em;
line-height: 1.2;
font-family: $header-font-family;
font-weight: bold;
}
h1 {
margin-top: 0;
font-size: $type-size-3;
}
h2 {
font-size: $type-size-4;
}
h3 {
font-size: $type-size-5;
}
h4 {
font-size: $type-size-6;
}
h5 {
font-size: $type-size-6;
}
h6 {
font-size: $type-size-6;
}
small, .small {
font-size: $type-size-6;
}
p {
margin-bottom: 1.3em;
}
u,
ins {
text-decoration: none;
border-bottom: 1px solid $text-color;
a {
color: inherit;
}
}
del a {
color: inherit;
}
/* reduce orphans and widows when printing */
p, pre, blockquote, ul, ol, dl, figure, table, fieldset {
orphans: 3;
widows: 3;
}
/* abbreviations */
abbr[title],
abbr[data-original-title] {
text-decoration: none;
cursor: help;
border-bottom: 1px dotted $text-color;
}
/* blockquotes */
blockquote {
margin: 2em 1em 2em 0;
padding-left: 1em;
padding-right: 1em;
font-style: italic;
border-left: 0.25em solid $primary-color;
cite {
font-style: italic;
&:before {
content: "\2014";
padding-right: 5px;
}
}
}
/* links */
a {
&:focus {
@extend %tab-focus;
}
&:hover,
&:active {
outline: 0;
}
}
/* code */
tt, code, kbd, samp, pre {
font-family: $monospace;
}
pre {
overflow-x: auto; /* add scrollbars to wide code blocks*/
}
p > code,
a > code,
li > code,
figcaption > code,
td > code {
padding-top: 0.1rem;
padding-bottom: 0.1rem;
font-size: $type-size-6;
background: $code-background-color;
border: 1px solid $lighter-gray;
border-radius: $border-radius;
box-shadow: $box-shadow;
&:before, &:after {
letter-spacing: -0.2em;
content: "\00a0"; /* non-breaking space*/
}
}
/* horizontal rule */
hr {
display: block;
margin: 1em 0;
border: 0;
border-top: 1px solid $border-color;
}
/* lists */
ul li,
ol li {
margin-bottom: 0.5em;
}
li ul,
li ol {
margin-top: 0.5em;
}
/*
Media and embeds
========================================================================== */
/* Figures and images */
figure {
display: -webkit-box;
display: flex;
-webkit-box-pack: justify;
justify-content: space-between;
-webkit-box-align: start;
align-items: flex-start;
flex-wrap: wrap;
margin: 2em 0;
img,
iframe,
.fluid-width-video-wrapper {
margin-bottom: 1em;
}
img {
width: 100%;
border-radius: $border-radius;
-webkit-transition: $global-transition;
transition: $global-transition;
}
> a {
display: block;
}
&.half {
> a,
> img {
@include breakpoint($small) {
width: calc(50% - 0.5em);
}
}
figcaption {
width: 100%;
}
}
&.third {
> a,
> img {
@include breakpoint($small) {
width: calc(33.3333% - 0.5em);
}
}
figcaption {
width: 100%;
}
}
}
/* Figure captions */
figcaption {
margin-bottom: 0.5em;
color: mix(#fff, $text-color, 25%);
font-family: $caption-font-family;
font-size: $type-size-6;
a {
color: inherit;
text-decoration: none;
border-bottom: 1px solid $light-gray;
-webkit-transition: $global-transition;
transition: $global-transition;
&:hover {
color: #000;
border-bottom-color: #000;
}
}
}
/* Fix IE9 SVG bug */
svg:not(:root) {
overflow: hidden;
}
/*
Navigation lists
========================================================================== */
/**
* Removes margins, padding, and bullet points from navigation lists
*
* Example usage:
* <nav>
* <ul>
* <li><a href="#link-1">Link 1</a></li>
* <li><a href="#link-2">Link 2</a></li>
* <li><a href="#link-3">Link 3</a></li>
* </ul>
* </nav>
*/
nav {
ul {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
a {
text-decoration: none;
}
/* override white-space for nested lists */
ul li,
ol li {
margin-bottom: 0;
}
li ul,
li ol {
margin-top: 0;
}
}
/*
Global animation transition
========================================================================== */
b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, tr, td, form button, input[type="submit"], .btn, .highlight, .archive__item-teaser {
-webkit-transition: $global-transition;
transition: $global-transition;
}
-153
View File
@@ -1,153 +0,0 @@
/* ==========================================================================
BUTTONS
========================================================================== */
/*
Default button
========================================================================== */
.btn {
/* default button */
display: inline-block;
margin-bottom: 0.25em;
padding: 0.5em 1em;
color: #fff !important;
font-family: $sans-serif;
font-size: $type-size-6;
font-weight: bold;
text-align: center;
text-decoration: none;
background-color: $primary-color;
border: 0 !important;
border-radius: $border-radius;
cursor: pointer;
&:hover {
background-color: mix(white, #000, 20%);
}
.icon {
margin-right: 0.5em;
}
.icon + .hidden {
margin-left: -0.5em; /* override for hidden text*/
}
/* fills width of parent container */
&--block {
display: block;
width: 100%;
+ .btn--block {
margin-top: 0.25em;
}
}
/* for dark backgrounds */
&--inverse {
color: $gray !important;
border: 1px solid $light-gray !important; /* override*/
background-color: #fff;
&:hover {
color: #fff !important;
border-color: $gray;
}
}
/* light outline */
&--light-outline {
border: 1px solid #fff !important; /* override*/
background-color: transparent;
}
/* information */
&--info {
background-color: $info-color;
&:hover {
background-color: mix(#000, $info-color, 20%);
}
}
/* warning */
&--warning {
background-color: $warning-color;
&:hover {
background-color: mix(#000, $warning-color, 20%);
}
}
/* success */
&--success {
background-color: $success-color;
&:hover {
background-color: mix(#000, $success-color, 20%);
}
}
/* danger */
&--danger {
background-color: $danger-color;
&:hover {
background-color: mix(#000, $danger-color, 20%);
}
}
/* disabled */
&--disabled {
pointer-events: none;
cursor: not-allowed;
filter: alpha(opacity=65);
box-shadow: none;
opacity: 0.65;
}
/* social buttons */
$social:
(facebook, $facebook-color),
(twitter, $twitter-color),
(google-plus, $google-plus-color),
(linkedin, $linkedin-color);
@each $socialnetwork, $color in $social {
&--#{$socialnetwork} {
background-color: $color;
&:hover {
background-color: mix(#000, $color, 20%);
}
}
}
/* extra large button */
&--x-large {
font-size: $type-size-4;
}
/* large button */
&--large {
font-size: $type-size-5;
}
/* small button */
&--small {
font-size: $type-size-7;
}
}
-80
View File
@@ -1,80 +0,0 @@
/* ==========================================================================
FOOTER
========================================================================== */
.page__footer {
@include full();
@include clearfix;
/* sticky footer fix start */
position: absolute;
bottom: 0;
width: 100%;
clear: both;
height: auto;
/* sticky footer fix end */
margin-top: 3em;
color: mix(#fff, $gray, 25%);
-webkit-animation: intro 0.3s both;
animation: intro 0.3s both;
-webkit-animation-delay: 0.45s;
animation-delay: 0.45s;
background-color: $lighter-gray;
border-top: 1px solid $light-gray;
footer {
@include container;
@include clearfix;
margin-top: 2em;
padding: 0 1em 2em;
@include breakpoint($x-large) {
max-width: $x-large;
}
}
a {
color: inherit;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.fa {
color: mix(#fff, $gray, 25%);
}
}
.page__footer-copyright {
font-family: $global-font-family;
font-size: $type-size-7;
}
.page__footer-follow {
ul {
margin: 0;
padding: 0;
list-style-type: none;
}
li {
display: inline-block;
padding-top: 5px;
padding-bottom: 5px;
font-family: $sans-serif-narrow;
font-size: $type-size-6;
text-transform: uppercase;
}
li + li:before {
content: "";
padding-right: 5px;
}
a {
padding-right: 10px;
font-weight: bold;
}
}
-391
View File
@@ -1,391 +0,0 @@
/* ==========================================================================
Forms
========================================================================== */
form {
margin: 0 0 5px 0;
fieldset {
margin-bottom: 5px;
padding: 0;
border-width: 0;
}
legend {
display: block;
width: 100%;
margin-bottom: 5px * 2;
*margin-left: -7px;
padding: 0;
color: $text-color;
border: 0;
border-bottom: 1px solid mix(#fff, #000, 80%);
white-space: normal;
}
p {
margin-bottom: 5px / 2;
}
ul {
list-style-type: none;
margin: 0 0 5px 0;
padding: 0;
}
br {
display: none;
}
}
label,
input,
button,
select,
textarea {
vertical-align: baseline;
*vertical-align: middle;
}
input,
button,
select,
textarea {
box-sizing: border-box;
font-family: $sans-serif;
}
label {
display: block;
margin-bottom: 0.25em;
color: $text-color;
cursor: pointer;
small {
font-size: $type-size-6;
}
input,
textarea,
select {
display: block;
}
}
input,
textarea,
select {
display: inline-block;
width: 100%;
padding: 0.25em;
margin-bottom: 0.5em;
color: $text-color;
background-color: #fff;
border: 1px solid mix(#fff, #000, 80%);
border-radius: $border-radius;
box-shadow: $box-shadow;
&:hover {
border-color: mix(#fff, $primary-color, 50%);
}
}
.input-mini {
width: 60px;
}
.input-small {
width: 90px;
}
input[type="image"],
input[type="checkbox"],
input[type="radio"] {
width: auto;
height: auto;
padding: 0;
margin: 3px 0;
*margin-top: 0;
line-height: normal;
cursor: pointer;
border-radius: 0;
border: 0 \9;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
*width: 13px;
*height: 13px;
}
input[type="image"] {
border: 0;
box-shadow: none;
}
input[type="file"] {
width: auto;
padding: initial;
line-height: initial;
border: initial;
background-color: transparent;
background-color: initial;
box-shadow: none;
}
input[type="button"],
input[type="reset"],
input[type="submit"] {
width: auto;
height: auto;
cursor: pointer;
*overflow: visible;
}
select,
input[type="file"] {
*margin-top: 4px;
}
select {
width: auto;
background-color: #fff;
}
select[multiple],
select[size] {
height: auto;
}
textarea {
resize: vertical;
height: auto;
overflow: auto;
vertical-align: top;
}
input[type="hidden"] {
display: none;
}
.form {
position: relative;
}
.radio,
.checkbox {
padding-left: 18px;
font-weight: normal;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
float: left;
margin-left: -18px;
}
.radio.inline,
.checkbox.inline {
display: inline-block;
padding-top: 5px;
margin-bottom: 0;
vertical-align: middle;
}
.radio.inline + .radio.inline,
.checkbox.inline + .checkbox.inline {
margin-left: 10px;
}
/*
Disabled state
========================================================================== */
input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
opacity: 0.5;
cursor: not-allowed;
}
/*
Focus & active state
========================================================================== */
input:focus,
textarea:focus {
border-color: $primary-color;
outline: 0;
outline: thin dotted \9;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus,
select:focus {
box-shadow: none;
}
/*
Help text
========================================================================== */
.help-block,
.help-inline {
color: $info-color;
}
.help-block {
display: block;
margin-bottom: 1em;
line-height: 1em;
}
.help-inline {
display: inline-block;
vertical-align: middle;
padding-left: 5px;
}
/*
.form-inline
========================================================================== */
.form-inline input,
.form-inline textarea,
.form-inline select {
display: inline-block;
margin-bottom: 0;
}
.form-inline label {
display: inline-block;
}
.form-inline .radio,
.form-inline .checkbox,
.form-inline .radio {
padding-left: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
float: left;
margin-left: 0;
margin-right: 3px; }
/*
.form-search
========================================================================== */
.form-search input,
.form-search textarea,
.form-search select {
display: inline-block;
margin-bottom: 0;
}
.form-search .search-query {
padding-left: 14px;
padding-right: 14px;
margin-bottom: 0;
border-radius: 14px;
}
.form-search label {
display: inline-block;
}
.form-search .radio,
.form-search .checkbox,
.form-inline .radio {
padding-left: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"] {
float: left;
margin-left: 0;
margin-right: 3px;
}
/*
.form--loading
========================================================================== */
.form--loading:before {
content: '';
}
.form--loading .form__spinner {
display: block;
}
.form:before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.7);
z-index: 10;
}
.form__spinner {
display: none;
position: absolute;
top: 50%;
left: 50%;
z-index: 11;
}
/*
Google search form
========================================================================== */
#goog-fixurl {
ul {
list-style: none;
margin-left: 0;
padding-left: 0;
li {
list-style-type: none;
}
}
}
#goog-wm-qt {
width: auto;
margin-right: 10px;
margin-bottom: 20px;
padding: 8px 20px;
display: inline-block;
font-size: $type-size-6;
background-color: #fff;
color: #000;
border-width: 2px !important;
border-style: solid !important;
border-color: lighten(#000,50);
border-radius: $border-radius;
}
#goog-wm-sb {
@extend .btn;
}
-56
View File
@@ -1,56 +0,0 @@
/* ==========================================================================
MASTHEAD
========================================================================== */
.masthead {
position: relative;
border-bottom: 1px solid $border-color;
-webkit-animation: intro 0.3s both;
animation: intro 0.3s both;
-webkit-animation-delay: 0.15s;
animation-delay: 0.15s;
z-index: 20;
&__inner-wrap {
@include container;
@include clearfix;
padding-top: 0.5em;
padding-bottom: 0.5em;
padding-left: 1em;
padding-right: 1em;
font-family: $sans-serif-narrow;
@include breakpoint($x-large) {
max-width: $x-large;
}
nav {
z-index: 10;
}
a {
text-decoration: none;
}
}
}
.masthead__menu {
ul {
margin: 0;
padding: 0;
clear: both;
list-style-type: none;
}
}
.masthead__menu-item {
display: block;
list-style-type: none;
white-space: nowrap;
&--lg {
padding-right: 2em;
font-weight: 700;
}
}
-53
View File
@@ -1,53 +0,0 @@
/* ==========================================================================
MIXINS
========================================================================== */
%tab-focus {
/* Default*/
outline: thin dotted $warning-color;
/* Webkit*/
outline: 5px auto $warning-color;
outline-offset: -2px;
}
/*
em function
========================================================================== */
@function em($target, $context: $doc-font-size) {
@return ($target / $context) * 1em;
}
/*
Bourbon clearfix
========================================================================== */
/*
* Provides an easy way to include a clearfix for containing floats.
* link http://cssmojo.com/latest_new_clearfix_so_far/
*
* example scss - Usage
*
* .element {
* @include clearfix;
* }
*
* example css - CSS Output
*
* .element::after {
* clear: both;
* content: "";
* display: table;
* }
*/
@mixin clearfix {
clear: both;
&::after {
clear: both;
content: "";
display: table;
}
}
-442
View File
@@ -1,442 +0,0 @@
/* ==========================================================================
NAVIGATION
========================================================================== */
/*
Breadcrumb navigation links
========================================================================== */
.breadcrumbs {
@include container;
@include clearfix;
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
padding-right: 2em;
font-family: $sans-serif;
-webkit-animation: intro 0.3s both;
animation: intro 0.3s both;
-webkit-animation-delay: 0.30s;
animation-delay: 0.30s;
@include breakpoint($large) {
padding-left: 1em;
padding-right: 1em;
}
@include breakpoint($x-large) {
max-width: $x-large;
}
ol {
padding: 0;
list-style: none;
font-size: $type-size-6;
@include breakpoint($large) {
@include span(10 of 12 last);
}
@include breakpoint($x-large) {
@include prefix(0.5 of 12);
}
}
li {
display: inline;
}
.current {
font-weight: bold;
}
}
/*
Post pagination navigation links
========================================================================== */
.pagination {
@include full();
@include clearfix();
margin-top: 1em;
padding-top: 1em;
ul {
margin: 0;
padding: 0;
list-style-type: none;
font-family: $sans-serif;
}
li {
display: block;
float: left;
margin-left: -1px;
a {
margin-bottom: 0.25em;
padding: 0.5em 1em;
font-family: $sans-serif;
font-size: 14px;
font-weight: bold;
line-height: 1.5;
text-align: center;
text-decoration: none;
color: mix(#fff, $gray, 25%);
border: 1px solid $light-gray;
border-radius: 0;
&:hover {
color: $link-color-hover;
}
&.current {
color: #fff;
background: $primary-color;
}
&.disabled {
color: mix(#fff, $gray, 75%);
pointer-events: none;
cursor: not-allowed;
}
}
&:first-child {
margin-left: 0;
a {
border-top-left-radius: $border-radius;
border-bottom-left-radius: $border-radius;
}
}
&:last-child {
a {
border-top-right-radius: $border-radius;
border-bottom-right-radius: $border-radius;
}
}
}
/* next/previous buttons */
&--pager {
display: block;
padding: 1em 2em;
float: left;
width: 50%;
font-family: $sans-serif;
font-size: $type-size-5;
font-weight: bold;
text-align: center;
text-decoration: none;
color: mix(#fff, $gray, 50%);
border: 1px solid $light-gray;
border-radius: $border-radius;
&:hover {
color: $link-color-hover;
}
&:first-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
&:last-child {
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
&.disabled {
color: mix(#fff, $gray, 75%);
pointer-events: none;
cursor: not-allowed;
}
}
}
.page__content + .pagination,
.page__meta + .pagination,
.page__share + .pagination,
.page__comments + .pagination {
margin-top: 2em;
padding-top: 2em;
border-top: 1px solid $border-color;
}
/*
Priority plus navigation
========================================================================== */
.greedy-nav {
position: relative;
min-width: 250px;
background: $background-color;
a {
display: block;
margin: 0 1rem;
padding: 0.5rem 0;
color: $masthead-link-color;
text-decoration: none;
&:hover {
color: $masthead-link-color-hover;
}
}
button {
position: absolute;
height: 100%;
right: 0;
padding: 0 0.5rem;
border: 0;
outline: none;
background-color: $primary-color;
color: #fff;
cursor: pointer;
}
.visible-links {
display: table;
li {
display: table-cell;
vertical-align: middle;
&:first-child {
font-weight: bold;
a {
margin-left: 0;
}
}
&:last-child {
a {
margin-right: 0;
}
}
}
a {
position: relative;
&:before {
content: "";
position: absolute;
left: 0;
bottom: 0;
height: 4px;
background: mix(#fff, $primary-color, 50%);
width: 100%;
-webkit-transition: $global-transition;
transition: $global-transition;
-webkit-transform: scaleX(0);
-ms-transform: scaleX(0);
transform: scaleX(0); /* hide*/
}
&:hover:before {
-webkit-transform: scaleX(1);
-ms-transform: scaleX(1);
transform: scaleX(1); /* reveal*/
}
}
}
.hidden-links {
position: absolute;
top: 100%;
right: 0;
margin-top: 15px;
padding: 5px;
border: 1px solid $border-color;
border-radius: $border-radius;
background: #fff;
box-shadow: 0 0 10px rgba(#000, 0.25);
a {
margin: 0;
padding: 10px 20px;
font-size: $type-size-5;
&:hover {
color: $masthead-link-color-hover;
background: mix(#fff, $primary-color, 75%);
}
}
&:before {
content: "";
position: absolute;
top: -11px;
right: 10px;
width: 0;
border-style: solid;
border-width: 0 10px 10px;
border-color: $border-color transparent;
display: block;
z-index: 0;
}
&:after {
content: "";
position: absolute;
top: -10px;
right: 10px;
width: 0;
border-style: solid;
border-width: 0 10px 10px;
border-color: #fff transparent;
display: block;
z-index: 1;
}
li {
display: block;
border-bottom: 1px solid $border-color;
&:last-child {
border-bottom: none;
}
}
}
}
/*
Navigation list
========================================================================== */
.nav__list {
font-size: 1.25rem;
ul {
margin-bottom: 1em;
}
a {
display: block;
padding: 0.125em 0;
color: inherit;
&:hover {
text-decoration: underline;
}
}
.active {
margin-left: -0.5em;
padding-left: 0.5em;
padding-right: 0.5em;
color: #fff;
font-weight: bold;
background: $primary-color;
border-radius: $border-radius;
&:hover {
color: #fff;
}
}
.nav__noclick {
pointer-events: none;
color: #ccc;
}
}
.nav__title {
margin: 0;
padding: 0.5rem 1rem;
font-family: $sans-serif-narrow;
font-size: $type-size-5;
font-weight: bold;
}
.nav__sub-title {
display: block;
margin: 0.5rem 0;
padding: 0.5rem 0;
font-family: $sans-serif-narrow;
font-size: $type-size-6;
font-weight: bold;
text-transform: uppercase;
border-bottom: 1px solid $border-color;
}
/*
Table of contents navigation
========================================================================== */
.toc {
font-family: $sans-serif-narrow;
color: $gray;
text-transform: uppercase;
letter-spacing: 1px;
background-color: #fff;
border: 1px solid $border-color;
border-radius: $border-radius;
box-shadow: $box-shadow;
.nav__title {
color: #fff;
font-size: $type-size-6;
background: $primary-color;
border-top-left-radius: $border-radius;
border-top-right-radius: $border-radius;
}
}
.toc__menu {
margin: 0;
padding: 0;
width: 100%;
list-style: none;
font-size: 0.8rem;
a {
display: block;
padding: 0.5rem 1rem;
color: $gray;
font-size: $type-size-7;
font-weight: bold;
line-height: 1.5;
border-bottom: 1px solid $border-color;
&:hover {
color: #000;
background: $lighter-gray;
}
}
> li:last-child {
a {
border-bottom: none;
}
}
li ul > li a {
padding-left: 2rem;
font-weight: normal;
}
/* hide sub sub links on small screens*/
li > ul li {
display: none;
@include breakpoint($medium) {
display: block;
}
}
}
-99
View File
@@ -1,99 +0,0 @@
/* ==========================================================================
NOTICE TEXT BLOCKS
========================================================================== */
/**
* Default Kramdown usage (no indents!):
* <div class="notice" markdown="1">
* #### Headline for the Notice
* Text for the notice
* </div>
*/
@mixin notice($notice-color) {
margin: 2em 0 !important; /* override*/
padding: 1em;
font-family: $global-font-family;
font-size: $type-size-6 !important;
text-indent: initial; /* override*/
background-color: mix(#fff, $notice-color, 90%);
border-radius: $border-radius;
box-shadow: 0 1px 1px rgba($notice-color, 0.25);
h4 {
margin-top: 0 !important; /* override*/
margin-bottom: 0.75em;
}
@at-root .page__content #{&} h4 {
/* using at-root to override .page-content h4 font size*/
margin-bottom: 0;
font-size: 1em;
}
p {
&:last-child {
margin-bottom: 0 !important; /* override*/
}
}
h4 + p {
/* remove space above paragraphs that appear directly after notice headline*/
margin-top: 0;
padding-top: 0;
}
a {
color: $notice-color;
&:hover {
color: mix(#000, $notice-color, 40%);
}
}
code {
background-color: mix(#fff, $notice-color, 95%)
}
ul {
&:last-child {
margin-bottom: 0; /* override*/
}
}
}
/* Default notice */
.notice {
@include notice($light-gray);
}
/* Primary notice */
.notice--primary {
@include notice($primary-color);
}
/* Info notice */
.notice--info {
@include notice($info-color);
}
/* Warning notice */
.notice--warning {
@include notice($warning-color);
}
/* Success notice */
.notice--success {
@include notice($success-color);
}
/* Danger notice */
.notice--danger {
@include notice($danger-color);
}
-401
View File
@@ -1,401 +0,0 @@
/* ==========================================================================
SINGLE PAGE/POST
========================================================================== */
#main {
@include container;
@include clearfix;
margin-top: 2em;
padding-left: 1em;
padding-right: 1em;
animation: intro 0.3s both;
animation-delay: 0.35s;
@include breakpoint($x-large) {
max-width: $x-large;
}
}
.page {
@include breakpoint($large) {
@include span(10 of 12 last);
@include prefix(0.5 of 12);
@include suffix(2 of 12);
}
.page__inner-wrap {
@include full();
.page__content,
.page__meta,
.page__share {
@include full();
}
}
}
.page__title {
margin-top: 0;
line-height: 1;
& + .page__meta {
margin-top: -0.5em;
}
}
.page__lead {
font-family: $global-font-family;
font-size: $type-size-4;
}
.page__content {
h2 {
padding-bottom: 0.5em;
border-bottom: 1px solid $border-color;
}
p, li, dl {
font-size: 0.8em;
}
/* paragraph indents */
p {
margin: 0 0 $indent-var;
/* sibling indentation*/
@if $paragraph-indent == true {
& + p {
text-indent: $indent-var;
margin-top: -($indent-var);
}
}
}
a {
text-decoration: none;
&:hover {
text-decoration: underline;
img {
box-shadow: 0 0 10px rgba(#000, 0.25);
}
}
}
dt {
margin-top: 1em;
font-family: $sans-serif;
font-weight: bold;
}
dd {
margin-left: 1em;
font-family: $sans-serif;
font-size: $type-size-6;
}
.small {
font-size: $type-size-6;
}
/* blockquote citations */
blockquote + .small {
margin-top: -1.5em;
padding-left: 1.25rem;
}
}
.page__hero {
position: relative;
margin-bottom: 2em;
@include clearfix;
animation: intro 0.3s both;
animation-delay: 0.25s;
&--overlay {
position: relative;
margin-bottom: 2em;
padding: 2em 0;
@include clearfix;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
animation: intro 0.3s both;
animation-delay: 0.25s;
a {
color: #fff;
}
.wrapper {
padding-left: 1em;
padding-right: 1em;
@include breakpoint($x-large) {
max-width: $x-large;
}
}
.page__title,
.page__meta,
.page__lead,
.btn {
color: #fff;
text-shadow: 1px 1px 4px rgba(#000, 0.5);
}
.page__lead {
max-width: $medium;
}
.page__title {
font-size: $type-size-2;
@include breakpoint($small) {
font-size: $type-size-1;
}
}
}
}
.page__hero-image {
width: 100%;
height: auto;
-ms-interpolation-mode: bicubic;
}
.page__hero-caption {
position: absolute;
bottom: 0;
right: 0;
margin: 0 auto;
padding: 2px 5px;
color: #fff;
font-family: $caption-font-family;
font-size: $type-size-7;
background: #000;
text-align: right;
z-index: 5;
opacity: 0.5;
border-radius: $border-radius 0 $border-radius 0;
@include breakpoint($large) {
padding: 5px 10px;
}
a {
color: #fff;
text-decoration: none;
}
}
/*
Social sharing
========================================================================== */
.page__share {
margin-top: 2em;
padding-top: 1em;
border-top: 1px solid $border-color;
@include breakpoint(max-width $small) {
.btn span {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
}
}
.page__share-title {
margin-bottom: 10px;
font-size: $type-size-6;
text-transform: uppercase;
}
/*
Page meta
========================================================================== */
.page__meta {
margin-top: 2em;
color: mix(#fff, $gray, 25%);
font-family: $sans-serif;
font-size: $type-size-6;
p {
margin: 0;
}
a {
color: inherit;
}
}
.page__meta-title {
margin-bottom: 10px;
font-size: $type-size-6;
text-transform: uppercase;
}
/*
Page taxonomy
========================================================================== */
.page__taxonomy {
.sep {
display: none;
}
strong {
margin-right: 10px;
}
}
.page__taxonomy-item {
display: inline-block;
margin-right: 5px;
margin-bottom: 8px;
padding: 5px 10px;
text-decoration: none;
border: 1px solid $light-gray;
border-radius: $border-radius;
&:hover {
text-decoration: none;
color: $link-color-hover;
}
}
/*
Comments
========================================================================== */
.page__comments {
@include full();
}
.page__comments-title {
margin-top: 2rem;
margin-bottom: 10px;
padding-top: 2rem;
font-size: $type-size-6;
border-top: 1px solid $border-color;
text-transform: uppercase;
}
.page__comments-form {
padding: 1em;
background: $lighter-gray;
transition: $global-transition;
&.disabled {
input,
button,
textarea,
label {
pointer-events: none;
cursor: not-allowed;
filter: alpha(opacity=65);
box-shadow: none;
opacity: 0.65;
}
}
}
.comment {
@include clearfix();
margin: 1em 0;
&:not(:last-child) {
border-bottom: 1px solid $border-color;
}
}
.comment__avatar-wrapper {
float: left;
width: 60px;
height: 60px;
@include breakpoint($large) {
width: 100px;
height: 100px;
}
}
.comment__avatar {
width: 40px;
height: 40px;
border-radius: 50%;
@include breakpoint($large) {
width: 80px;
height: 80px;
padding: 5px;
border: 1px solid $border-color;
}
}
.comment__content-wrapper {
float: right;
width: calc(100% - 60px);
@include breakpoint($large) {
width: calc(100% - 100px);
}
}
.comment__author {
margin: 0;
a {
text-decoration: none;
}
}
.comment__date {
@extend .page__meta;
margin: 0;
a {
text-decoration: none;
}
}
/*
Related
========================================================================== */
.page__related {
margin-top: 2em;
padding-top: 1em;
border-top: 1px solid $border-color;
@include clearfix();
float: left;
@include breakpoint($large) {
@include pre(2.5 of 12);
}
a {
color: inherit;
text-decoration: none;
}
}
.page__related-title {
margin-bottom: 10px;
font-size: $type-size-6;
text-transform: uppercase;
}
-18
View File
@@ -1,18 +0,0 @@
/* ==========================================================================
PRINT STYLES
========================================================================== */
/*
Hide the following elements on print
========================================================================== */
@media print {
.masthead,
.toc,
.page__share,
.page__related,
.ads,
.page__footer {
display: none;
}
}

Some files were not shown because too many files have changed in this diff Show More