An events based algorithm for distributing concurrent tasks on multi-core architectures
Holmes, David W., Williams, John R, and Tilke, Peter (2010) An events based algorithm for distributing concurrent tasks on multi-core architectures. Computer Physics Communications, 181 (2). pp. 341-354.
|PDF (Published Version) - Repository staff only - Requires a PDF viewer such as GSview, Xpdf or Adobe Acrobat Reader|
View at Publisher Website: http://dx.doi.org/10.1016/j.cpc.2009.10....
In this paper, a programming model is presented which enables scalable parallel performance on multi-core shared memory architectures. The model has been developed for application to a wide range of numerical simulation problems. Such problems involve time stepping or iteration algorithms where synchronization of multiple threads of execution is required. It is shown that traditional approaches to parallelism including message passing and scatter-gather can be improved upon in terms of speed-up and memory management. Using spatial decomposition to create orthogonal computational tasks, a new task management algorithm called H-Dispatch is developed. This algorithm makes efficient use of memory resources by limiting the need for garbage collection and takes optimal advantage of multiple cores by employing a "hungry" pull strategy. The technique is demonstrated on a simple finite difference solver and results are compared to traditional MPI and scatter-gather approaches. The H-Dispatch approach achieves near linear speed-up with results for efficiency of 85% on a 24-core machine. It is noted that the H-Dispatch algorithm is quite general and can be applied to a wide class of computational tasks on heterogeneous architectures involving multi-core and GPGPU hardware.
|Item Type:||Article (Refereed Research - C1)|
|Keywords:||multi-core, port based programming, H-Dispatch, numerical simulation|
|FoR Codes:||01 MATHEMATICAL SCIENCES > 0103 Numerical and Computational Mathematics > 010301 Numerical Analysis @ 30%|
02 PHYSICAL SCIENCES > 0299 Other Physical Sciences > 029999 Physical Sciences not elsewhere classified @ 10%
08 INFORMATION AND COMPUTING SCIENCES > 0805 Distributed Computing > 080599 Distributed Computing not elsewhere classified @ 60%
|SEO Codes:||97 EXPANDING KNOWLEDGE > 970109 Expanding Knowledge in Engineering @ 50%|
97 EXPANDING KNOWLEDGE > 970108 Expanding Knowledge in the Information and Computing Sciences @ 50%
|Deposited On:||15 Apr 2011 14:06|
|Last Modified:||11 Dec 2012 12:58|
Last 12 Months: 0
Repository Staff Only: item control page