The lattice Boltzmann method (LBM) is becoming increasingly popular in the fluid mechanics society because it provides a relatively easy implementation for an incompressible fluid flow solver. Furthermore the particle based LBM can be applied in microscale flows where the continuum based Navier-Stokes solvers fail. Here we present the validation and verification of a two-dimensional in-house lattice Boltzmann solver with two different collision models, namely the BGKW and the MRT models [1]. Five different cases were studied, namely: (i) a channel flow was investigated, the results were compared to the analytical solution, and the convergence properties of the collision models were determined; (ii) the lid-driven cavity problem was examined [2] and the flow features and the velocity profiles were compared to existing simulation results at three different Reynolds number; (iii) the flow in a backward-facing step geometry was validated against experimental data [3]; (iv) the flow in a sudden expansion geometry was compared to experimental data at two different Reynolds numbers [4]; and finally (v) the flow around a cylinder was studied at higher Reynolds number in the turbulent regime. The first four test cases showed that both the BGKW and the MRT models were capable of giving qualitatively and quantitatively good results for these laminar flow cases. The simulations around a cylinder highlighted that the BGKW model becomes unstable for high Reynolds numbers but the MRT model still remains suitable to capture the turbulent von Karman vortex street. The in-house LBM code has been developed in C and has also been parallelised for GPU architectures using CUDA [5] and for CPU architectures using the Partitioned Global Address Space model with UPC [6