Estoy buscando una arquitectura para crear una aplicación en C++ para procesar múltiples entradas al mismo tiempo en diferentes núcleos. Cada entrada se procesa en un solo núcleo simultáneamente. Cada uno de los procesos en un núcleo, los mismos filtros se procesarán a través de. Por ejemplo: filter1.apply(), filter2.apply() y filter3.apply(). Los procesos se ilustran por 4 núcleos para 4 entradas como a continuación:qué arquitectura o patrones de diseño son adecuados para esta aplicación?
[core 1] [core 2] [core 3] [core 4] | | | | V V V V input1 input2 input3 input4 | | | | V V V V filter1 filter1 filter1 filter1 | | | | V V V V filter2 filter2 filter2 filter2 | | | | V V V V filter3 filter3 filter3 filter3 | | | | V V V V output1 output2 output3 output4
I no sabe que la arquitectura o patrón de diseño es adecuado para esto. Sería genial si me das algunos artefactos (documentos o aplicaciones de muestra) para leer más.
Gracias de antemano.
@Joachim: gracias por tu edición. En realidad, lo estaba haciendo mejor también :) – olidev
Como nota al margen, parece que si de alguna manera pudieras compilar la secuencia de filtro en un solo filtro, entonces eso podría ser una ganancia neta, ya que siempre estás haciendo la misma secuencia de cosas, un poco como listas de visualización en OpenGL. –
compilar los filtros en un solo filtro no es bueno porque el alcance (número de líneas) de una función es muy grande. y me gustaría que esta arquitectura en el futuro sea más flexible para agregar nuevos filtros. por ejemplo, se agregan el filtro 4 y el filtro 5, simplemente llamé simplemente: filter1.apply(), filter2.apply(), filter3.apply(), filter4.apply() y filter5.apply(). – olidev