0

I want to find the subgroups of a finite group. When the group is getting larger, the amount of time is increasing. So I want to put in a supercomputer to get the result and run it in parallel.

The command is just ConjugacyClassesSubgroups(g);

  • There is no parallel implementation of this, and it will have to wait till the multithreaded version of GAP will appear. In the meantime, we only expect that GAP 4.9 release will allow to experiment with multithreading, and to work on such implementations, but this is a long way to go. – Olexandr Konovalov Apr 01 '17 at 10:20
  • In the meantime, think whether you can do better with current GAP. Look at "How do I get the subgroups of my group?". What is the group in question? How it is represented? Do you need all subgroups or only some classes of them? – Olexandr Konovalov Apr 01 '17 at 10:22
  • Thank you for your answer! Also, when I am using AllSubgroups, the only thing I can get is [ , <group of size 2 with 1 generators>, <group of size 2 with 1 generators>, <group of size 2 with 1 generators>. But I really want to know which generator is it. Do you know how can I make GAP display the generators? – Anna Hua Apr 01 '17 at 20:10
  • AllSubgroups is extremely inefficient - see http://math.stackexchange.com/questions/1569349/how-to-find-all-subgroups-of-a-group-in-gap/1570696#1570696. It will work for small orders only. To display generators, use GeneratorsOfGroup. If you will add the group to the question, I could try that group. – Olexandr Konovalov Apr 01 '17 at 20:15
  • Thanks for your help! Now I am using ConjugacyClassesSubgroups, which is much better. – Anna Hua Apr 02 '17 at 18:51
  • You're welcome! Remember, it's important what is the representation of your group - some group first have to be converted to an isomorphic permutation group or to a pc group and then GAP will handle them much faster. – Olexandr Konovalov Apr 02 '17 at 19:05

1 Answers1

1

There is no parallel implementation of this, and the multithreaded version of GAP is still in the experimental state. When it will appear, it would provide a platform to develop such implementations, but they still would have to appear. So if you need the result today or tomorrow, you need to think about other approaches.

To start with, look at "How do I get the subgroups of my group?" from the GAP F.A.Q. Some of the questions to consider:

  • Is the most appropriate function being used? Quite often GAP users assume that AllSubgroups is what they need, but (as its documentation says) it is only suitable for small examples used mainly for teaching purposes (see also this answer. Instead, one should use ConjugacyClassesSubgroups, or even more restrictive functions to look only for e.g. maximal subgroups or normal subgroups - see the GAP F.A.Q. for further hints.

  • What is the representation of your group? Some groups first have to be converted to an isomorphic permutation group using IsomorphismPermGroup or to a pc group using IsomorphismPcGroup, and then GAP may be able to handle them much faster.


Wrote an answer based on my earlier comments to remove this from the unanswered queue

Olexandr Konovalov
  • 7,002
  • 2
  • 34
  • 72