Coder Social home page Coder Social logo

lupoa / grid Goto Github PK

View Code? Open in Web Editor NEW

This project forked from paboyle/grid

0.0 0.0 2.0 62.69 MB

Data parallel C++ mathematical object library

License: GNU General Public License v2.0

Shell 0.41% C++ 93.30% C 3.52% Makefile 0.05% M4 1.57% Mathematica 0.90% Roff 0.26%

grid's People

Contributors

aportelli avatar azusayamaguchi avatar chillenzer avatar chulwoo1 avatar coppolachan avatar danielrichtmann avatar djm2131 avatar edbennett avatar felixpgziegler avatar fionnoh avatar fjosw avatar gfilaci avatar giltirn avatar gkanwar avatar goracle avatar guelpers avatar i-kanamori avatar jprichings avatar kostrzewa avatar lehner avatar lupoa avatar mbruno46 avatar mmphys avatar mspraggs avatar nils-asmussen avatar nmeyer-ur avatar paboyle avatar pjgeorg avatar rrhodgson avatar sunpho84 avatar

grid's Issues

Make ProjectOnGroup a template

In Grid/tensors/Tensor_Ta.h, ProjectOnGroup should probably be a template. We need to figure out the consequences and find a nice, least intrusive way to separate out the implementation from the interface. We should keep an eye on how such change affects other parts of the code.

Unifications in Grid/qcd/representations

We should check if Grid/qcd/representations/spfundamental.h and Grid/qcd/representations/sp_two_index.h can be unified with their SU(N) counterparts and, if so, do this. Potentially some templating again?

Instantiations

The template instantiations in Grid/qcd/action/fermion/instantiation/SpWilson* completely duplicate the structure in Grid/qcd/action/fermion/instantiation/Wilson* except for the #define IMPLEMENTATION ... line in */impl.h. This is streamlined for the procedure in scripts/filelist and might be justified in that respect. We should compare with the other instantiations in that folder and check if the impact on the build scripts is justifiable in favour of a reduction of code duplication.

Typedefs

In the end, we should again go over all the (almost) purely typedef files and see which typedefs are needed.

Add documentation about `--shm` error

The resolution of my --shm error was that I was parallelising the wrong axes, i.e., I was doing --mpi=1.1.2.2 instead of --mpi=2.2.1.1. While that seems stupid in hindsight, I somehow still thought that this could be a good idea at that time. So, I feel that we should guard against others running into this by, e.g., adding something to the documentation or README or tracking down the error message and adding a hint that it might be a problem of parallelisation.

IFDEF for Sp2N specific headers?

Should we only include Sp2N-specific headers if --enable-symplectic is set?

Questions to consider here:

  • Is there a significant compile time overhead?
  • Is there a measurable run time overhead?
  • Are there other benefits of one or the other (readability/maintability/...)?

Consistent use of N_colour and N_sp in interfaces

We should strive for maximal consistency about the use of N_colour and N_sp in the interfaces, particularly when given as a (template) argument for instantiations / initialisation. I suspect that exposing N_colour = 2 N_sp as the interface will save us a bit of trouble for the unification with SU(N).

Adjoint representation

We discussed if implementing the adjoint representation alongside the fundamental is advantageous even if we don't use it ourselves.

Pros:

  • Unified user interface
  • Symmetric user interface

Cons:

  • Might not get enough attention from us and end up in a bad state which might be worse than not having it
  • Is additional workload

This probably becomes easier, if not trivial, if we manage a good unification via templating in other parts of the code. Has low priority for now.

Fine-grained refactoring

After we fixed the overall structure, we should come back to the few lines of code that will have actually changed and review refactoring steps on them.

Bug compiling on GPU

Lattice's operator= is not __device__, so ProjectOnGeneralGroup needs to return instead of modify in place.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.