Algoritmos Paralelos: Cómo usar el procesamiento en paralelo para mejorar la eficiencia del algoritmo

Algoritmos Paralelos: Cómo usar el procesamiento en paralelo para mejorar la eficiencia del algoritmo

El objetivo es mejorar la eficiencia de la ejecución de código algoritmo cuando el caso no puede seguir algoritmo de optimización, que es la forma de mejorar aún más la eficiencia? Con la transformación de la forma en la idea de procesamiento de algoritmo de computación en paralelo?

clasificación paralela

Para el tamaño de los datos de 8 GB especie, y nuestra memoria puede contener tanto datos de una sola vez, para la clasificación, la más utilizada es la complejidad en tiempo de O (nlogn) tres algoritmos de ordenación: combinación de una especie, tipo rápida, pila de clasificación, desde el nivel algorítmico no podemos continuar optimizando, y el uso de la idea de procesamiento en paralelo, puede aumentar fácilmente la eficiencia de esto muchas veces 8GB de datos de clasificación problema.

Un par de procesamiento especie conjunción simultánea

Después de estas mayo de datos de 8 GB en pequeños conjuntos de datos 16, cada conjunto contiene 500 MB de datos, con los hilos 16, 16 de 500 MB de datos en paralelo de este tipo, que son un conjunto de 16 pequeña especie es completa, entonces estos 16 clasificadas colección de fusión

Dos pares de quicksort procesamiento paralelo

Se han encontrado a través de la cual los datos durante el intervalo de ventana de datos, este intervalo se divide en 16 secciones pequeñas a grandes y pequeñas, dividiendo los datos en el intervalo de 8 GB correspondiente, los datos para una pequeña sección 16 que, hilos de partida 16, paralelo Ordena, hasta que los datos son datos ordinales después de hilos 16 de ejecución se han completado, la resultante

partición Pensamiento se utilizan ambos, el segmento de datos, el paralelo de procesamiento, excepto que la primera idea es la recombinación al azar fragmentos de datos después de la clasificación, el segundo se divide de acuerdo con el tamaño de los datos a intervalo y, a continuación, la clasificación, el drenaje sin reprocesar la secuencia

Si desea ordenar el tamaño de los datos es de 1 TB, el problema es la eficiencia de lectura de datos, proceso de clasificación, el disco frecuente leer y escribir datos, la forma de reducir las operaciones de IO de disco, reducir disco lee y escribe datos de la cantidad total, convertido en el foco de la optimización

Paralelo a encontrar

Si la estructura de datos dinámica para el miembro de índice, el añadió continuamente a los datos de proceso, el factor de carga de la tabla de dispersión creciente expansión necesidad dinámico, si damos un tamaño de 2 GB de la tabla hash para la expansión, se extendió a 1,5 veces el original, es decir, 3GB, utilización de la memoria es sólo el 60%, podemos datos aleatorios en porciones K, cada uno de los datos de sólo el original 1 k \ Frac {1} {k} , K para pequeños conjuntos de datos que fueron construidos tabla hash, la tabla hash cuando un pequeño factor de carga es demasiado grande, sólo una pequeña tabla hash separado para esta expansión, la tabla hash no requiere expansión adicional, la pluralidad de tabla hash pequeña métodos de tratamiento eficaces que las grandes tablas hash, cuando queremos encontrar algunos datos cuando sólo a través de hilos paralelos K para encontrar datos en la tabla de hash K, mejorado en gran medida el rendimiento, añadir datos, que pueden ser el nuevo carga de datos en el factor más pequeño en la tabla hash, ayuda a reducir los conflictos de hash

La coincidencia de cadenas paralelas

Encontrar una palabra clave en el texto se puede lograr a través del algoritmo de coincidencia de cadenas, busque la palabra clave en un texto no es muy largo tiempo, KMP, BM, RK, BF es muy eficiente, pero el manejo de texto muy grande, la forma de acelerar coincidir la velocidad?

El texto grande pequeño texto en K, suponiendo que K = 16, 16 hilos de empezar, encontrar un paralelo en este 16 de palabras clave de texto pequeño, por lo que el rendimiento se incrementa en 16 veces, y originalmente incluido en este texto grande palabras clave, se divide en dos, el texto se divide en dos pequeños, lo que resulta en grandes aunque las palabras clave contenidas en el texto, pero no encuentra, que requieren un manejo especial en el texto pequeño 16, si la palabra clave de longitud M al final de cada inicio y una pequeña cadena de texto de cada uno de M, M al final de un pequeño caracteres de texto antes y después de los símbolos M al comienzo de un texto que consta de una pequeña cadena de longitud 2M, y luego dejar que la palabra clave, redescubrir esta cadena de 2M

búsqueda paralela

Búsqueda en anchura es una estrategia de búsqueda para buscar en una capa por capa, esta capa se basa en el vértice actual, una pluralidad de hilos de partida, la siguiente búsqueda paralela capa de vértice, los BFS código original de un registro cola, pero tiene que atravesar sin extensión del ápice, y ahora necesitan dos colas para completar el vértice obras de ampliación

Estos dos colas son colas de A, B y de cola, multi-roscado cola paralelo procesamiento de vértices A, vértice y la resultante B expandido almacenado en la cola, la cola después de la otra en las extensiones vértice A se han completado, la cola de A vacío, y luego se extendió en paralelo en la cola de vértice B, se extienden fuera de los vértices a, almacenados en una cola, el reciclaje, el algoritmo de búsqueda en amplitud para lograr paralelo

resumen ampliado

Si tenemos N tareas, con la esperanza de ejecución de las tareas en paralelo, pero cada tarea hay una cierta dependencia, averiguar cómo las tareas pueden ser ejecutadas en paralelo de acuerdo con las dependencias?

Con unas dependencias de tareas dirigidas entre mapa almacenamiento, a continuación, tipo topológico de pensamiento para llevar a cabo la tarea, cada vez que mirar en el grado a 0, en la cola, iniciar el grupo de hilo comienza a ejecutarse, la cola de tareas en paralelo terminado, llamado de nuevo para encontrar la clasificación topológica de la tarea 0 se coloca en cola hasta que terminen todas las tareas

Publicado 75 artículos originales · ganado elogios 9 · vistas 9164

Supongo que te gusta

Origin blog.csdn.net/ywangjiyl/article/details/104893040
Recomendado
Clasificación