I'm trying to generate all the strings which contain only 4 lowercase English letters (from aaaa
to zzzz
) using OpenMP.
My idea is: create 4 nested loops, each loop generates 1 letter in the string.
char a, b, c, d, start = 'a', end = 'z';
for (a = start; a <= end; a++)
{
for (b = start; b <= end; b++)
{
for (c = start; c <= end; c++)
{
for (d = start; d <= end; d++)
{
printf("%c%c%c%c\n", a, b, c, d);
}
}
}
}
The problem is, when I used OpenMP to parallelize the for
loop:
char a, b, c, d, start = 'a', end = 'z';
#pragma omp parallel for collapse(4)
for (a = start; a <= end; a++)
{
for (b = start; b <= end; b++)
{
for (c = start; c <= end; c++)
{
for (d = start; d <= end; d++)
{
printf("%c%c%c%c\n", a, b, c, d);
}
}
}
}
I got only this result:
aaam
aaan
aaao
aaap
aaae
aaaf
aaag
aaah
aaai
aaaj
aaak
aaal
aaaa
aaab
aaac
aaad