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