Jump to content
Sign in to follow this  
ric

Software Data Spreading: Leveraging Distributed Caches to Improve Single Thread Perfo

Recommended Posts

some one just posted a question about a Linux based server option and it got me thinking about all the little programs (and big ones) you find in the open source community and i started to wonder if there was a program for spreading a single thread over multiple cores...and thats how i came across this paper...interesting reading looks like it could be very useful for ARMA3 :)

http://cseweb.ucsd.edu/users/tullsen/pldi10.pdf

We have developed a compiler-based, software-only data

spreading system that identifies loops which have large data foot-

prints and suitable sharing patterns (e.g., high sharing between in-

stances of the same loop) and spreads those loops and the data they

access across multiple cores, both within a chip multiprocessor or

across multiple dies or sockets. Data spreading can be applied to

any system, multicore or multiprocessor, with private L2 or L3

caches. Our experiments with multiple Intel and AMD multipro-

cessor systems show that data spreading can speed up a range of

applications by an average of 17%. Most impressive, data spread-

ing achieves this speedup without any extra power consumption.

In fact, in the best case, it significantly reduces power by avoiding

DRAM accesses. Finally, data spreading requires no new hardware

support and, since it relies on the system’s default caching behavior,

does not threaten correctness

Share this post


Link to post
Share on other sites

For a player like me this seems awesome, but from developers perspective i don't think that this could be used, im not sure but i dont think that this could be used in arma due to copyright issues and licensing, as i remember open does not mean free

Share this post


Link to post
Share on other sites
For a player like me this seems awesome, but from developers perspective i don't think that this could be used, im not sure but i dont think that this could be used in arma due to copyright issues and licensing, as i remember open does not mean free

I wasn't trying to imply they use "open source" software its just what inspired me to search in the first place :) it would be interesting to hear from the devs if what is written in the article could apply to A3 :)

update: a dev did respond, thnx

Edited by ric

Share this post


Link to post
Share on other sites

It's going to take years before features such as in the article will be in commercial grade C++ compilers like GCC or Intel compiler.

Share this post


Link to post
Share on other sites
It's going to take years before features such as in the article will be in commercial grade C++ compilers like GCC or Intel compiler.
I think this is what you are looking for Texas Multicore

Technologies’ SequenceL Auto-parallelizing Programming Solution http://www.amd.com/us/Documents/TMT_Whitepaper.pdf

http://www.texasmulticoretechnologies.com/

ThreadedS Solution description:

Phase 1: Acceleration Assessment

The performance advantages of multicore systems vary by application. Some applications have great potential for parallel processing, while others are dependent on sequential processing. Either way, the first step to multicore performance is understanding the acceleration potential of your application. ThreadedS engagements begin with an assessment of the acceleration potential of the specific application. TMT experts apply their knowledge of multicore programming to accurately determine the opportunities for parallelization in the application and the return expected from the effort. Using the results of this assessment, TMT creates a roadmap for application acceleration and a project plan for parallel programming implementation.

Phase 2: Application Acceleration

The ThreadedS solution upgrades an existing software application to multicore performance. Using the project plan developed in the acceleration assessment, TMT converts the single-threaded application to SequenceL and uses the SequenceL compiler to generate parallel, multi-threaded C++ code.

ThreadedS uses a simple process to accelerate existing applications for multi-core

Step 1: The customer designs their application in normal engineering terms and formulas

Step 2: TMT writes portions of the application in SequenceL and confirms the application performs as designed

Step 3: The customer may read and audit the SequenceL code

Step 4: TMT compiles the application to parallelized C++ and ensures optimized performance

Step 5: The application is delivered to the customer development team for integration into the customer's application or system

ThreadedS Features

Fastest path for upgrading existing software to multi-core & many-core

Delivers parallel, multi-threaded C++ code

Increase application performance and capability

Reduce compute time

Reduce energy costs and improve carbon footprint

Optimized investment in parallel code development

Fixed-fee engagement, avoids costs of repeated manual parallelization efforts

Frees internal software developers to focus on core application features

Provides extensive testing and debug of application performance

Produces reusable and transportable parallel code

Expert services for parallel code optimization

Parallelize just the sections of an application with most of the processing load

Build improvements into the application while adapting to multi-core

Design in new features optimized for parallel processing

Uses SequenceL compiler and parallelized math libraries

ThreadedS Benefits

Delivers outstanding multicore performance

Reduces development costs

Enables integration of parallel code into existing applications

Shortens time-to-market for multicore performance

Eliminates the risk of multicore migration

Edited by ric

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×