Having learned a great deal about the problem and also the solutions over the course of this project, it is the opinion of the author that the method undertaken within this report is unsatisfactory for delivering performance enhancement over alternative approaches. Firstly the domain transfers result in reduced performance. For larger simulations these prove to be completely impractical due to the size of edge transfers required. For high scale simulations with an edge size of 2048 cells, it requires 4096 cl_double4s (262,144 bits) to be passed from each domain to its neighbour. This causes significant latency. The second problem is that during the calculation of each domain, the speed of each domain might be significantly different. Due to the design of this solution there is no benefit to a more productive domain as each domain relies on its neighbour for new edge cell state values. This creates additional latency as one domain waits for the other to finish. It also creates a waste of potential resources and computation time. Combined with the cell transfers, this process becomes extremely inefficient for high scale simulations. It is the opinion of the author that in order to address the issue, a single domain solution should be explored based on high resolution over the detailed domain of the coastal area. Data regarding the tsunami out at sea can be written into the edge of the domain based on "pre" calculated information. This would allow the domain to function independently without relying on the calculations of another domain to be completed and passed to it. While although not necessarily the most efficient method, the testing undertaken within this project suggests that this solution could indeed provide an accurate simulation of the behaviour of water. However it is not possible to prove this without further testing. In order to undergo further testing, the addition of functionality to allow the input of accurate geospatial data is required. By using real data the program will be able to construct a more accurate representation of a real life scenario within the domain. It will also allow a more accurate subduction to be created and thus a more accurate tsunami to be modelled. The final benefit is that through using the same geospatial data as an alternative solution, a comparison can be undertaken to compare both accuracy and the performance of the simulations themselves. In conclusion, the purpose of this project has been to investigate the potential for performance enhancement of tsunami impact simulations through the use of graphics processing units. To accomplish this, several key goals have been focused on to insure that the project is successful. While although not all of these goals have not been accomplished, it is the author’s opinion that the project is a success for a number of reasons. This project has explored the theory of performance enhancement using GPUs by creating a heterogeneous program capable of running on both CPU and GPU devices. The creation of such a program has required the implementation of OpenCL programming language. In developing this solution, a greater understanding of OpenCL has been achieved. To allow the solution to run using multiple GPUs, experience in developing parallel programming has also been gained. Therefore the project has accomplished the personal goal to gain experience in both the fields of OpenCL and parallel programming. To deploy the solution efficiently on GPU devices, research into the field of GPU architecture and techniques for performance enhancement has been undertaken. This has strengthened knowledge of how to correctly and efficiently deploy code to many types of devices. This has helped to develop an understanding of GPUs. In producing the results, efficiency of each device has been measured by comparing the time it takes each device to complete the series of tests. The results of these tests have concluded that when applied to the problem of single instructions multiple data, GPUs can improve the required computational time of a simulation. This has helped to understand and identify the performances and advantages associated with various device architectures. Further testing of GPUs has demonstrated accuracy is maintained to the same degree as that of CPUs and that water is accurately modelled within the simulation. This includes conserving the properties associated with its behaviour such as the ability to conserve momentum and the wetting and drying of flood plains. Therefore it is possible to conclude the implementation of the first order Godunov type scheme has been successful. The project has incorporated ideas such as an adaptive time step in order to improve its performance. It is through the use of existing methods of simplifying the three dimensional Navier stokes equations that this project is capable of high scaled resolutions. This is possible through the two dimensional shallow water (depth averaged) approach adopted from existing models. Therefore the project has successfully modelled high resolutions as required by the initial goals. In order to correctly implement this approach within this project, alternative models and theories have been identified and the weaknesses and strengths of each have been quantified, meeting another of the projects original goals.