<Chapter><Heading>On a parallel nilpotent quotient algorithm</Heading><P/>
We included a parallel version of &lpres;'s nilpotent quotient
algorithm using the <Package>ParGAP</Package>-package of &GAP;; see
<Cite Key="ParGap"/>. In this chapter, we outline the basic usage of
this parallel part of the &lpres;-package. For further details on the
parallel &GAP;-sessions we refer to the
<Package>ParGAP</Package>-manual <Cite Key="ParGap"/>. We note that
the <Package>ParGAP</Package>-package has some bottlenecks in
practice. Nevertheless the significant speed-up of our computations on
a multiple-core system shows that this is a reasonable extension of
the &lpres;-package.
<Section><Heading>Usage</Heading>
For using the parallel version of the nilpotent quotient algorithm,
you will need to install the <Package>ParGAP</Package>-package as
described in its manual <Cite Key="ParGap"/>. When using Version 1.1.2
of the <Package>ParGAP</Package>-package, you will need to apply the
following patch to `pargap/lib/masslave.g' as otherwise the
<Package>ParGAP</Package>-session may crash. On a linux machine you
can simply use `patch < ../../nql/gap/pargap/patch' from within the
directory `pargap/lib/'.
<Verb><![CDATA[
--- masslave.g 2001-11-16 13:17:04.000000000 +0100
+++ masslave.g 2009-05-06 12:20:19.000000000 +0200
@@ -467,8 +467,9 @@
if Length(deltas)>1 then max2 := Maximum(max2, deltas[Length(deltas)-1]); fi;
max1 := deltas[Length(deltas)];
pos1 := Position( List(slaveArray, x->realtime-x.time), max1 );
- if max1 > slaveTaskTimeFactor and max1 > 30
- and slaveTaskTime[pos2].total > 60 then
+ if max1 > slaveTaskTimeFactor and
+ max1 > 30 and pos2 <> fail and
+ slaveTaskTime[pos2].total > 60 then
Print("SLAVE ",pos1," SEEMS DEAD!!\n");
fi;
end);
]]></Verb>
Now, you are ready for creating a <Package>ParGAP</Package>-session
and you can load the &lpres;-package from within
<Package>ParGAP</Package> using `LoadPackage' as usual. The same
methods as described previously are available. The following example
shows the application of the `NilpotentQuotient'-method to the
Grigorchuk group on a quad-core machine. Note that the significant
speed-up of the nilpotent quotient algorithm is especially noticeable
for large nilpotent quotients. This parallel version of &lpres;
successfully computes some nilpotent quotients which normally took
more than a month to complete.
Note that the only difference in the parallel version of the &lpres;-package
is a parallel version of the operation `ExtendQuotientSystem'. This latter
operation covers the induction step of the nilpotent quotient algorithm.
</Section>
</Chapter>
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.