Threading design and prototyping tool for software architects
- Analyse, design, tune and check your threading design before implementation
- Explore and test threading options without disrupting normal development
- Predict thread errors & performance scaling on systems with more cores
Data Driven Threading Design
Intel® Advisor XE is a threading prototyping tool for C, C++, C# and Fortran software architects. Quickly model and compare the performance scaling of different threading designs without the cost and disruption of implementation. Find and eliminate data sharing issues during design when they are less expensive to fix. Model the performance impact of any added synchronisation and project the scaling on systems with larger core counts.
- Profiling identifies where an application will benefit most from parallelism
- Compare the effort and benefit of alternatives before you invest in implementation
- Guides resolution of key data conflicts. Assists in adding synchronisation.
What’s New for 2018
- Find high impact, under-optimized loops with Cache-Aware Roofline Analysis.
- Significantly simplify analysis of a large number of loops with Hierarchical Roofline based on aggregate floating point operations per second (FLOPS).
- Get faster analysis results by limiting analysis to select modules.
- Make better decisions with more data and recommendations.
- Create custom metrics and reports with a script using the Python* API.
- Prototype graph algorithms productively with the Flow Graph Analyzer.
- More details for applications based on Intel® Math Kernel Library.
- Support for latest version of Microsoft Visual Studio*.
- Support for cross-OS analysis to all license types. Collect data on Linux* (or any supported OS) and analyze it in the user interface on Windows*, or Linux. Just download what you need. Your license enables use on all supported operating systems.
“Intel® Advisor XE has been extremely helpful in identifying the best pieces of code for parallelization. We can save several days of manual work by targeting the right loops. At the same time, we can use Advisor to find potential thread safety issues to help avoid problems later on.”
Carlos Boneti, HPC software engineer, Schlumberger
“Intel® Advisor XE has allowed us to quickly prototype ideas for parallelism, saving developer time and effort, and has already been used to highlight subtle parallel correctness issues in complex multi-file, multi-function algorithms which may eventually have caused lengthy debugging activities later in our code development. We plan to continue to use the tool as we extend our research into more complex algorithms and begin to take further advantage of the thread parallelism and performance of the Intel Xeon and Xeon Phi product family.”
Simon Hammond, Senior Member of Technical Staff, Scalable Computer Architectures, Sandia National Laboratories
“Intel® Advisor XE can be invaluable in developing the understanding required to parallelize existing code. It assists with identifying opportunities, designing tests, modeling scenarios and revealing flaws.”
Matt Osterberg, Senior Software Engineer, Vickery Research Alliance
“It’s powerful to have the performance and correctness analysis combined together in Intel Advisor XE. Experimenting with different parallelization techniques is much faster and more convenient.”
Arthur Yuldashev, Senior Lecturer, Ufa State Aviation Technical University
Workflow For Effective Design
Intel Advisor XE’s workflow panel guides you through the steps to successfully add effective threading to your application. Implementation is delayed until step 5. This lets you use the active code base and continue to release product updates during the design phase (steps 1-4).
1. Survey – Search for Parallel Sites
Start by measuring you app to see where it will benefit from parallelism. There is no point in expending effort unless it will pay off with better performance.
2. Annotate Your Source
Insert annotations in your source code to quickly sketch out potential parallelism. Intel Advisor XE provides coding examples and lets you easily cut and paste them into your source.
3. Check Performance – Compare Alternative Designs
Check the performance and scalability of the design you sketched out. Is it as fast as you thought? How will it scale on systems with more processors? Intel Advisor XE projects scalability and helps you evaluate alternative threading designs. Understand potential load imbalance, lock contention and the impact of runtime overhead.
4. Check Correctness
Do you have any data sharing problems that can lead to deadlocks or races? Find and fix them now before you implement the parallelism.
Intel Advisor XE gives you a list of errors and shows you a snippet of the code at all the related code locations, with click-through navigation to the actual source location.
5. Implement – Choose A Parallel Programming Model
Implement parallelism using a productive parallel programming model that yields scalable and reliable parallelism with fewer lines of code.
Intel® Threading Building Blocks (Intel® TBB) has a rich set of abstractions. Intel Cilk Plus is simple. OpenMP is compatible with legacy code. Microsoft TPL* is designed for C#.
Ideally Intel Advisor XE would automatically add threading to your application and make it run faster. Unfortunately, the technology for doing this well is beyond the current state of the art. Instead, Intel Advisor XE is designed for a software architect or developer. It automates the analyses required and gives the developer the information needed to productively add effective threading to an existing application.
Explore Alternatives Before Implementation
Looping through this design process lets you quickly explore alternatives and make tradeoffs. Intel Advisor XE helps you make better design decisions by accurately projecting performance and identifying synchronisation errors. You get faster parallel performance while avoiding costly design errors.
Parallelise Without Adding Schedule Risk
The delayed implementation workflow means that the threading design, performance projection and error analysis can proceed in parallel with normal release development. Annotations describe your design to Intel Advisor XE letting it give you better performance and correctness information, but make no changes to your compiled code. You can continue to release product updates during the design of your parallelism. All your test cases continue to work. Verify that your application is stable and correct before you implement parallelism.
Cut and Paste Templates
Once the design is final, Intel Advisor XE provides cut and paste templates to implement threading using a one of several parallel programming models.
Productive Parallel Programming Models
The Intel® Parallel Studio XE products include a selection of productive parallel models such as Intel® TBB and Intel® Cilk™ Plus. Implementing parallelism at a higher level yields scalable and reliable parallelism with fewer lines of code. Task-based algorithms, containers and synchronisation primitives simplify parallel application development. The task scheduler for Intel® TBB and Intel® Cilk™ Plus dynamically maps tasks to threads to load balance, preserve cache locality and increase performance. This lets you develop faster and deliver more performance with less code to maintain.
For additional details, please see the release notes
The Next Steps
What do our Customers say about us?
I recommend EndNote to all my students who I supervise on dissertations at undergraduate, postgraduate, and doctoral levels. Sometimes they ask if I get commission for doing this, which I do not. But the software is great, and fantastic time saver when putting journal articles or theses together.DF, W Yorks, UK
Excellent tutor – very clear, very impartial, simply excellent.
Your website is hugely informative and a pleasure to visit. Frankly I wouldn’t dream of buying technical software from anyone else.NR, Inverness, UK
Fantastic tips and tricks. Brilliant presenter and delivery
For the time being we are unable to offer the following product ranges although we are currently working hard to increase the number of products we can offer in the future. Please contact us to talk about alternative products that we may be able to offer you.