Package edu.jas.gb

Class GroebnerBaseDistributedMPI<C extends edu.jas.structure.RingElem<C>>

  • Type Parameters:
    C - coefficient type
    All Implemented Interfaces:
    edu.jas.gb.GroebnerBase<C>, java.io.Serializable

    public class GroebnerBaseDistributedMPI<C extends edu.jas.structure.RingElem<C>>
    extends edu.jas.gb.GroebnerBaseAbstract<C>
    Groebner Base distributed algorithm with MPI. Implements a distributed memory parallel version of Groebner bases. Using MPI and pairlist class, distributed tasks do reduction.
    Author:
    Heinz Kredel
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_THREADS
      Default number of threads.
      protected mpi.Comm engine  
      protected edu.jas.util.ThreadPool pool  
      protected int threads
      Number of threads to use.
      • Fields inherited from class edu.jas.gb.GroebnerBaseAbstract

        blas, red, strategy
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clientPart​(int rank)
      GB distributed client.
      java.util.List<edu.jas.poly.GenPolynomial<C>> GB​(int modv, java.util.List<edu.jas.poly.GenPolynomial<C>> F)
      Distributed Groebner base.
      java.util.List<edu.jas.poly.GenPolynomial<C>> GBmaster​(int modv, java.util.List<edu.jas.poly.GenPolynomial<C>> F)
      Distributed Groebner base, part for MPI master.
      java.util.List<edu.jas.poly.GenPolynomial<C>> minimalGB​(java.util.List<edu.jas.poly.GenPolynomial<C>> Fp)
      Minimal ordered groebner basis.
      void terminate()
      Cleanup and terminate ThreadPool.
      • Methods inherited from class edu.jas.gb.GroebnerBaseAbstract

        cancel, commonZeroTest, constructUnivariate, criterion3, extGB, extGB, GB, GB, GB, isGB, isGB, isGB, isGB, isGB, isGB, isGBidem, isGBsimple, isMinimalGB, isReductionMatrix, isReductionMatrix, minimalExtendedGB, normalizeMatrix, normalizeZerosOnes, toString, univariateDegrees
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • threads

        protected final int threads
        Number of threads to use.
      • pool

        protected final transient edu.jas.util.ThreadPool pool
      • engine

        protected final transient mpi.Comm engine
    • Constructor Detail

      • GroebnerBaseDistributedMPI

        public GroebnerBaseDistributedMPI()
                                   throws java.io.IOException
        Constructor.
        Throws:
        java.io.IOException
      • GroebnerBaseDistributedMPI

        public GroebnerBaseDistributedMPI​(int threads)
                                   throws java.io.IOException
        Constructor.
        Parameters:
        threads - number of threads to use.
        Throws:
        java.io.IOException
      • GroebnerBaseDistributedMPI

        public GroebnerBaseDistributedMPI​(int threads,
                                          edu.jas.util.ThreadPool pool)
                                   throws java.io.IOException
        Constructor.
        Parameters:
        threads - number of threads to use.
        pool - ThreadPool to use.
        Throws:
        java.io.IOException
      • GroebnerBaseDistributedMPI

        public GroebnerBaseDistributedMPI​(int threads,
                                          edu.jas.gb.PairList<C> pl)
                                   throws java.io.IOException
        Constructor.
        Parameters:
        threads - number of threads to use.
        pl - pair selection strategy
        Throws:
        java.io.IOException
      • GroebnerBaseDistributedMPI

        public GroebnerBaseDistributedMPI​(int threads,
                                          edu.jas.util.ThreadPool pool,
                                          edu.jas.gb.PairList<C> pl)
                                   throws java.io.IOException
        Constructor.
        Parameters:
        threads - number of threads to use.
        pool - ThreadPool to use.
        pl - pair selection strategy
        Throws:
        java.io.IOException
    • Method Detail

      • terminate

        public void terminate()
        Cleanup and terminate ThreadPool.
        Overrides:
        terminate in class edu.jas.gb.GroebnerBaseAbstract<C extends edu.jas.structure.RingElem<C>>
      • GB

        public java.util.List<edu.jas.poly.GenPolynomial<C>> GB​(int modv,
                                                                java.util.List<edu.jas.poly.GenPolynomial<C>> F)
        Distributed Groebner base.
        Parameters:
        modv - number of module variables.
        F - polynomial list.
        Returns:
        GB(F) a Groebner base of F or null, if a IOException occurs or on MPI client part.
      • GBmaster

        public java.util.List<edu.jas.poly.GenPolynomial<C>> GBmaster​(int modv,
                                                                      java.util.List<edu.jas.poly.GenPolynomial<C>> F)
                                                               throws mpi.MPIException,
                                                                      java.io.IOException
        Distributed Groebner base, part for MPI master.
        Parameters:
        modv - number of module variables.
        F - polynomial list.
        Returns:
        GB(F) a Groebner base of F or null, if a IOException occurs.
        Throws:
        mpi.MPIException
        java.io.IOException
      • clientPart

        public void clientPart​(int rank)
                        throws java.io.IOException,
                               mpi.MPIException
        GB distributed client.
        Parameters:
        rank - of the MPI where the server runs on.
        Throws:
        java.io.IOException
        mpi.MPIException
      • minimalGB

        public java.util.List<edu.jas.poly.GenPolynomial<C>> minimalGB​(java.util.List<edu.jas.poly.GenPolynomial<C>> Fp)
        Minimal ordered groebner basis.
        Specified by:
        minimalGB in interface edu.jas.gb.GroebnerBase<C extends edu.jas.structure.RingElem<C>>
        Overrides:
        minimalGB in class edu.jas.gb.GroebnerBaseAbstract<C extends edu.jas.structure.RingElem<C>>
        Parameters:
        Fp - a Groebner base.
        Returns:
        a reduced Groebner base of Fp.