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 intDEFAULT_THREADSDefault number of threads.protected mpi.Commengineprotected edu.jas.util.ThreadPoolpoolprotected intthreadsNumber 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 voidclientPart(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.voidterminate()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, 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.MPIExceptionjava.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.IOExceptionmpi.MPIException
-
-