Sto cercando un'architettura per la creazione di un'applicazione in C++ per elaborare più input contemporaneamente in diversi core. Ogni input viene elaborato in un singolo core contemporaneamente. Ciascuno dei processi su un core, gli stessi filtri saranno elaborati attraverso. Ad esempio: filter1.apply(), filter2.apply() e filter3.apply(). I processi sono illustrati per 4 core per 4 ingressi come qui sotto:quali modelli di architettura o design sono adatti per questa applicazione?
[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
poteva essere che l'architettura o design pattern è adatto a questo. Sarebbe fantastico se tu mi dessi alcuni artefatti (documenti o applicazione di esempio) per leggere oltre.
Grazie in anticipo.
@Joachim: grazie per la tua edizione. In realtà, stavo migliorando anche io :) – olidev
Proprio come una nota a margine, sembra che potresti in qualche modo compilare la sequenza del filtro in un singolo filtro, quindi quella potrebbe essere una vittoria netta, dato che stai sempre facendo la stessa sequenza di cose - un po 'come le liste di visualizzazione in OpenGL. –
compilare i filtri in un singolo filtro non è bello perché l'ambito (numero di righe) di una funzione è molto grande. e mi piacerebbe che questa architettura in futuro fosse più flessibile nell'aggiunta di nuovi filtri. Ad esempio: vengono aggiunti il filtro 4 e il filtro 5, quindi ho semplicemente chiamato: filter1.apply(), filter2.apply(), filter3.apply(), filter4.apply() e filter5.apply(). – olidev