Package edu.jas.gb

Class GroebnerBaseDistributedMPJ<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 GroebnerBaseDistributedMPJ<C extends edu.jas.structure.RingElem<C>>
    extends edu.jas.gb.GroebnerBaseAbstract<C>
    Groebner Base distributed algorithm with MPJ. Implements a distributed memory parallel version of Groebner bases. Using MPJ 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.
      (package private) 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 MPJ 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, isMinReductionMatrix, isMinReductionMatrix, 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

      • GroebnerBaseDistributedMPJ

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

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

        public GroebnerBaseDistributedMPJ​(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
      • GroebnerBaseDistributedMPJ

        public GroebnerBaseDistributedMPJ​(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
      • GroebnerBaseDistributedMPJ

        public GroebnerBaseDistributedMPJ​(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 MPJ client part.
      • GBmaster

        java.util.List<edu.jas.poly.GenPolynomial<C>> GBmaster​(int modv,
                                                               java.util.List<edu.jas.poly.GenPolynomial<C>> F)
                                                        throws java.io.IOException
        Distributed Groebner base, part for MPJ 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:
        java.io.IOException
      • clientPart

        public void clientPart​(int rank)
                        throws java.io.IOException
        GB distributed client.
        Parameters:
        rank - of the MPJ where the server runs on.
        Throws:
        java.io.IOException
      • 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.