Package edu.jas.gb

Class GroebnerBaseDistributedHybridMPJ<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 GroebnerBaseDistributedHybridMPJ<C extends edu.jas.structure.RingElem<C>>
    extends edu.jas.gb.GroebnerBaseAbstract<C>
    Groebner Base distributed hybrid algorithm with MPJ. Implements a distributed memory with multi-core CPUs parallel version of Groebner bases with MPJ. Using pairlist class, distributed multi-threaded tasks do reduction, one communication channel per remote node.
    Author:
    Heinz Kredel
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ackTag
      Message tag for acknowledgments.
      boolean debug  
      protected static int DEFAULT_THREADS
      Default number of threads.
      protected static int DEFAULT_THREADS_PER_NODE
      Default number of threads per compute node.
      protected mpi.Comm engine  
      static int pairTag
      Message tag for pairs.
      protected edu.jas.util.ThreadPool pool
      Pool of threads to use.
      static int resultTag
      Message tag for results.
      protected int threads
      Number of threads to use.
      protected int threadsPerNode
      Number of threads per node 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 hybrid Groebner base.
      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.
      • 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

      • debug

        public final boolean debug
      • threads

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

        protected final int threadsPerNode
        Number of threads per node to use.
      • pool

        protected final transient edu.jas.util.ThreadPool pool
        Pool of threads to use.
      • engine

        protected final transient mpi.Comm engine
      • pairTag

        public static final int pairTag
        Message tag for pairs.
      • resultTag

        public static final int resultTag
        Message tag for results.
      • ackTag

        public static final int ackTag
        Message tag for acknowledgments.
    • Constructor Detail

      • GroebnerBaseDistributedHybridMPJ

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

        public GroebnerBaseDistributedHybridMPJ​(int threads,
                                                int threadsPerNode)
                                         throws java.io.IOException
        Constructor.
        Parameters:
        threads - number of threads to use.
        threadsPerNode - threads per node to use.
        Throws:
        java.io.IOException
      • GroebnerBaseDistributedHybridMPJ

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

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

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

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

      • terminate

        public void terminate()
        Cleanup and terminate.
        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 hybrid 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.
        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.