¿Cómo funcionan los algoritmos de procesamiento de cadenas en CUDA?

Los algoritmos de procesamiento de cadenas son a menudo difíciles de paralelizar, pero ha habido cierto éxito. Por ejemplo, en [1], Zhao et. Alabama. muestra cómo los DFA (coincidencia de patrones, compresión, análisis, etc.) se pueden realizar en paralelo.

De mi lectura de la literatura, los algoritmos de procesamiento secuencial de cadenas son sustancialmente más avanzados que sus equivalentes paralelos (por ejemplo, matrices de sufijos). A menudo tienen una mejor eficiencia de trabajo y complejidad de tiempo. Sin embargo, suponiendo que tenga un buen algoritmo paralelo para su problema, debería mapearse perfectamente a una GPU.

Espero que la falta de buenos algoritmos paralelos para el procesamiento de cadenas se deba simplemente a la negligencia de la comunidad CS, y que con el tiempo se desarrollarán nuevos enfoques.

[1] Desafiando el ” Vergonzosamente secuencial ”:
Paralelización de computaciones basadas en máquinas de estado finito a través de la especulación basada en principios. Zhijia Zhao (Colegio de William y Mary); Bo Wu (Colegio de William y Mary); Xipeng Shen (Colegio de William y Mary). ASPLOS 14.