Multi-core processor architectures are now widely available and affordable, but pose efficiency problems for general purpose applications software. We review some common multi-threading and other concurrency techniques available in many common software support systems and programming languages. We review some standard approaches to concurrency support in this context and report on performance data for several common scientific application kernels and applications algorithms used in simulations. We discuss the present state-of-the art in concurrency software support for such applications to make efficient use of multi-core architectures and speculate on necessary future developments in systems programming languages.
Keywords: multi-core; multi-processor; concurrency; software; threads; process management.
Full Document Text: Not yet available.