Re: Using Parallelize with my own function

• To: mathgroup at smc.vnet.net
• Subject: [mg119675] Re: Using Parallelize with my own function
• From: Vivek Joshi <vivekjjoshi29 at gmail.com>
• Date: Fri, 17 Jun 2011 00:08:19 -0400 (EDT)
• References: <201106160800.EAA13221@smc.vnet.net>

```I think the right way to implement this would be as follows,

ParallelCyclicGroupQ[G_] :=
MemberQ[ParallelMap[GroupOrder[PermutationGroup[{#}]] &,  GroupElements[G]],
GroupOrder[G]]

ParallelCyclicGroupQ[SymmetricGroup[5]]
False

Vivek J. Joshi

On Thu, Jun 16, 2011 at 4:00 AM, =C1d=E1m Lelkes <lelkesa at gmail.com> wrote:

> Dear Group,
>
> I have a problem with Parallelize. I have defined the following
> function:
>
> In[1]:= CyclicGroupQ[G_] := MemberQ[GroupOrder[PermutationGroup[{#}]]
> & /@ GroupElements[G],  GroupOrder[G]].
>
> In[2]:= DistributeDefinitions[CyclicGroupQ]
> Out[2]= {CyclicGroupQ}
>
> This function gives True if G is cyclic, False otherwise. If I try to
> use Parallelize with this function I get the following message:
>
> In[3]:= Parallelize[CyclicGroupQ[SymmetricGroup[5]]]
>
> Parallelize::nopar1: CyclicGroupQ[SymmetricGroup[5]] cannot be
> parallelized; proceeding with sequential evaluation.
>
> Out[3]= False
>
> However, if I use Parallelize with the definition of the function, I
> do not get this message:
>
> In[4]:= Parallelize[ MemberQ[GroupOrder[PermutationGroup[{#}]] & /@
> GroupElements[SymmetricGroup[5]], GroupOrder[SymmetricGroup[5]]]]
>
> Out[4]= False
>
> How could I make my function parallelizable?
>
> Thanks,