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, 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

      • 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.