Popis: |
This paper presents a new programming approach of applying source-to-source compiler technology to parallelize a computational uid dynamics ow solver. It is becoming increasingly di cult for programmers to optimize large scale applications for modern computer architectures, due to the increasing complexity of these architectures. This is especially a concern when the application uses large amounts of legacy code. Instead of tediously optimizing the parallel implementation for each new architecture, translators based on a source-to-source compiler are designed to perform the implementation. The translators allow for construction of custom programming models; these custom models are more effective on complex architectures because they can incorporate more domain-speci c knowledge, versus general-purpose programming models. We apply this concept to a multi-stage multigrid nite-volume algorithm. The translator, written with the ROSE compiler, will replace sequences of instructions in the serial algorithm with QUARK tasks. QUARK is a dynamic run time system that executes tasks asynchronously while avoiding data hazards. Using a dynamically-scheduled task-based parallel method allows for easier load-balancing of complex algorithms on complex computer architectures. The overall strategy is shown to increase the performance, programmability, and portability of CFD applications. |