¿Cómo puedo "paralelizar" mejor un conjunto de cuatro bucles anidados para () en un ataque de Fuerza Bruta?

Tengo la siguiente tarea de tarea:
Necesito una frase de contraseña de 4 caracteres de fuerza bruta con la siguiente máscara

%%@@

( dónde@ - es un caracter numérico,% - es un caracter alfa)

en varios hilos usando OpenMP.

Aquí hay un fragmento de código, pero no estoy seguro de si está haciendo lo correcto:

int i, j, m, n;

const char alph[26] = "abcdefghijklmnopqrstuvwxyz";
const char num[10] = "0123456789";

#pragma omp parallel for private(pass) schedule(dynamic) collapse(4)
for (i = 0; i < 26; i++)
    for (j = 0; j < 26; j++)
        for (m = 0; m < 10; m++)
            for (n = 0; n < 10; n++) {
                pass[0] = alph[i];
                pass[1] = alph[j];
                pass[2] = num[m];
                pass[3] = num[n];

                /* Working with pass here */

            }

Entonces mi pregunta es :
¿Cómo especificar correctamente la instrucción "paralelo para", para dividir el rango de frases de contraseña entre varios núcleos?

La ayuda es muy apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta