Translate

lunes, 25 de agosto de 2014

Introducción Parallel Processing usando Modulo de funciones

Introducción


Se busca desarrollar un programa que ejecute una gran carga de registros de manera paralela de una manera eficiente y eficaz.

Problema


Realizando las pruebas y mejoras de performance a los programas que usan procesos paralelos se pudo determinar:
1.       Se ejecutaba un hilo por cada registro.
2.       Si había gran cantidad de registros se colapsa la memoria RAM.

3.       Al momento de colapsar la memoria, empezaban a fallar las llamadas a la función paralelo ocasionando perdida de registros a procesar, sin que se pudieran recuperar y mucho menos saber cuáles registros fallaron.

Desarrollo de la Solución         


Teniendo en cuenta los problemas expuestos anteriormente se fue implementando una solución al mismo:
Usado conocimientos:
1.       Procesos paralelos que usan Modulo de Funciones con la funcionalidad :
-                “STARTING NEW TASK gv_taskname ”.
                      PPF (Parallel Procesing Framework).

Antes de explicar cada uno a profundad se van a explicar algunos conceptos básicos.
Rangos: porción de registros tomados de un universo de registros mayor.
Jobs/tarea: procesos que se ejecutan un rango especifico de manera paralela, es decir se puede procesar más 2 al mismo tiempo.

Implementando la primera


Se pudo verificar que el proceso paralelo al momento de colapsar la memoria la llamada a la función paralela fallaba perdiendo registros hasta que se liberará otro proceso y dar oportunidad se ejecutar a los siguientes.

Implementando la segunda

 Implementado la lógica que usa el Parallel Procesing Framework se logro que el programa se pueda configurar lo cual explico a continuación:

1.       Cantidad de procesos paralelos finita (Jobs/tareas).
2.       La carga de registros (Rangos) se divide en entre los procesos paralelos asignados o calculados .

Mezclando ambas


Implementando la información de cada uno de estas vertientes se pudo implementar:
1.       En caso de falla en la llamada al proceso paralelo se puede saber cual rango de registros (Tarea)  fallo.
2.       Se pueden re-procesar las tareas que fallaron.

E    En esta entrada se explico de manera general los problemas a los que nos hemos enfrentado al iniciar en el mundo de los procesos paralelos abap que estoy seguro que ya les han sucedido, en mi próxima entrada iré explicando mas a fondo cada uno de estos aspectos...

   Mayor información  




No hay comentarios.:

Publicar un comentario