Package edu.jas.gb
Class GroebnerBaseDistributedHybridMPJ<C extends edu.jas.structure.RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.GroebnerBaseAbstract<C>
-
- edu.jas.gb.GroebnerBaseDistributedHybridMPJ<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.
-
Constructor Summary
Constructors Constructor Description GroebnerBaseDistributedHybridMPJ()
Constructor.GroebnerBaseDistributedHybridMPJ(int threads)
Constructor.GroebnerBaseDistributedHybridMPJ(int threads, int threadsPerNode)
Constructor.GroebnerBaseDistributedHybridMPJ(int threads, int threadsPerNode, edu.jas.gb.PairList<C> pl)
Constructor.GroebnerBaseDistributedHybridMPJ(int threads, int threadsPerNode, edu.jas.util.ThreadPool pool)
Constructor.GroebnerBaseDistributedHybridMPJ(int threads, int threadsPerNode, edu.jas.util.ThreadPool pool, edu.jas.gb.PairList<C> pl)
Constructor.GroebnerBaseDistributedHybridMPJ(int threads, edu.jas.util.ThreadPool pool)
Constructor.
-
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
-
-
-
-
Field Detail
-
debug
public final boolean debug
-
threads
protected final int threads
Number of threads to use.
-
DEFAULT_THREADS
protected static final int DEFAULT_THREADS
Default number of threads.- See Also:
- Constant Field Values
-
threadsPerNode
protected final int threadsPerNode
Number of threads per node to use.
-
DEFAULT_THREADS_PER_NODE
protected static final int DEFAULT_THREADS_PER_NODE
Default number of threads per compute node.- See Also:
- Constant Field Values
-
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() throws java.io.IOException
Constructor.- Throws:
java.io.IOException
-
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.
-
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
-
-