www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - this is worth a read

this is worth a read

An Events Based Algorithm for Distributing Concurrent Tasks on 
Multi-Core Artchitetures

25 pages - pdf.

see here:

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 ecient 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 dierence solver and results are compared
to traditional MPI and scatter-gather approaches. The H-Dispatch 
approach achieves near linear speed-up with results for eciency 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.
Apr 26 2010