|
|||
---|---|---|---|
Homological
computations can require much time and memory. In principle,
many of the computations can be distributed in fairly obvious ways over
several processors on a multiprocessor PC (or, using software such as
Cluster Knoppix, over several processors on a network of PCs).
HAP contains a few basic functions for achieving this. |
|||
The
following commands compute the third integral homology groups of the
groups of order 32 using two child processes. This is an example of
"trivial parallelism". On a multiprocessor
machine (or Knoppix cluster) the processes would normally automatically
be assigned to different processors. |
|||
gap>
s:=ChildProcess();; gap> t:=ChildProcess();; gap> ChildCommand("LoadPackage(\"hap\");",s); gap> ChildCommand("LoadPackage(\"hap\");",t); gap> ChildCommand("ODD:=Filtered([1..51],IsOddInt);",s); gap> ChildFunction("List(ODD,i->GroupHomology(SmallGroup(32,i),3));",s); gap> ChildCommand("Even:=Filtered([1..51],IsEvenInt);",t); gap> ChildFunction("List(Even,i->GroupHomology(SmallGroup(32,i),3));",t); gap> Odd:=ChildReadEval(s);; gap> Even:=ChildReadEval(t);; gap> for i in [1..26] do > Print("Group ",2*i-1," has third homology ",Odd[i],"\n"); > if i<26 then Print("Group ",2*i," has third homology ",Even[i],"\n"); fi; > od; Group 1 has third homology [ 32 ] Group 2 has third homology [ 4, 4, 4, 4 ] Group 3 has third homology [ 4, 4, 8 ] Group 4 has third homology [ 2, 4, 8 ] Group 5 has third homology [ 2, 2, 4, 8 ] Group 6 has third homology [ 2, 2, 4, 4 ] Group 7 has third homology [ 2, 2, 2, 8 ] Group 8 has third homology [ 2, 4, 4 ] Group 9 has third homology [ 2, 2, 4, 8 ] Group 10 has third homology [ 2, 4, 8 ] Group 11 has third homology [ 2, 4, 8 ] Group 12 has third homology [ 2, 4, 8 ] Group 13 has third homology [ 2, 4, 8 ] Group 14 has third homology [ 2, 4, 8 ] Group 15 has third homology [ 2, 16 ] Group 16 has third homology [ 2, 2, 16 ] Group 17 has third homology [ 2, 16 ] Group 18 has third homology [ 2, 2, 16 ] Group 19 has third homology [ 2, 16 ] Group 20 has third homology [ 32 ] Group 21 has third homology [ 2, 2, 2, 2, 4, 4, 4 ] Group 22 has third homology [ 2, 2, 2, 2, 2, 2, 2, 4, 4 ] Group 23 has third homology [ 2, 2, 2, 2, 2, 4, 4 ] Group 24 has third homology [ 2, 2, 2, 4, 8 ] Group 25 has third homology [ 2, 2, 2, 2, 2, 4, 4 ] Group 26 has third homology [ 2, 2, 4, 8 ] Group 27 has third homology [ 2, 2, 2, 2, 2, 2, 2, 4, 4 ] Group 28 has third homology [ 2, 2, 2, 2, 2, 4, 4 ] Group 29 has third homology [ 2, 2, 2, 4, 8 ] Group 30 has third homology [ 2, 2, 2, 2, 4, 4 ] Group 31 has third homology [ 2, 2, 2, 4, 8 ] Group 32 has third homology [ 2, 4, 8 ] Group 33 has third homology [ 2, 2, 4, 4 ] Group 34 has third homology [ 2, 2, 2, 2, 4, 4, 4 ] Group 35 has third homology [ 2, 2, 4, 8 ] Group 36 has third homology [ 2, 2, 2, 2, 2, 2, 8 ] Group 37 has third homology [ 2, 2, 2, 2, 8 ] Group 38 has third homology [ 2, 2, 2, 16 ] Group 39 has third homology [ 2, 2, 2, 2, 2, 2, 8 ] Group 40 has third homology [ 2, 2, 2, 2, 8 ] Group 41 has third homology [ 2, 2, 2, 16 ] Group 42 has third homology [ 2, 2, 2, 16 ] Group 43 has third homology [ 2, 2, 2, 2, 8 ] Group 44 has third homology [ 2, 2, 2, 8 ] Group 45 has third homology [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] Group 46 has third homology [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] Group 47 has third homology [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 8 ] Group 48 has third homology [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 8 ] Group 49 has third homology [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 8 ] Group 50 has third homology [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] Group 51 has third homology [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] |
|||
|