Non c'è niente di "intrinsecamente" ricorsivo per il riempimento dell'inondazione, solo che per fare un po 'di lavoro, hai bisogno di alcune informazioni sulle celle "di frontiera" precedentemente scoperte. Se ci pensi in questo modo, è chiaro che il parallelismo è eminentemente possibile: anche con una singola coda, puoi usare quattro thread (uno per ogni direzione) e spostare solo la coda della coda quando la cella è stata esaminata da ciascuno filo. o equivalentemente, quattro code. pensando in questo modo, si potrebbe anche immaginare di suddividere lo spazio in più code, magari con intervalli di coordinate.
un problema di base è che la definizione del problema di solito include la condizione che nessuna cella viene mai rivisitata. questo implica che ogni lavoratore ha bisogno di una mappa aggiornata di quali celle sono state considerate (globalmente). le informazioni globali mutabili sono problematiche, in termini di prestazioni, anche se non è difficile pensare a modi per limitare la necessità di propagare gli aggiornamenti a livello globale ...