Scale Applications with Confidence
Have you threaded an application but seen little benefit? Hit a “scalability barrier”? Delayed a release due to synchronization errors?
Threading Advisor helps you quickly prototype multiple threading options, project scaling on larger systems, optimize faster, and implement with confidence.
- Identify issues and fix them before implementing parallelism
- Add threading to C, C++, C#, and Fortran code
- Prototype the performance impact of different threaded designs and project scaling on systems with larger core counts without disrupting development or implementation
- Find and eliminate data-sharing issues during design (when they're less expensive to fix)
Parallel Programming Models
Intel® Advisor supports both open and industry-standard parallel programming models. To help you decide what to work with, here is an overview of each one's strength:
- OpenMP* is compatible with legacy code.
- Intel® Threading Building Blocks (Intel® TBB) has a rich set of abstractions.
- Microsoft Task Parallel Library* (TPL) is designed for C#.
Each model supports the following languages:
|Intel TBB||Microsoft TPL||OpenMP|
Uncover code changes that make the most impact for performance. Access the integrated compiler report and performance data in one place, including code-specific recommendations to implement parallelism.
Annotations provide a description of your threading design, allowing you to analyze scalability and find dependency errors without disrupting development.
Insert annotations into your source code to quickly sketch out potential parallelism for analysis. The compiler ignores annotations—they’re only used to model your design. This means your code remains serial, all your test cases continue to work, and no threading bugs are introduced during the design phase.
Project scalability on large-core-count systems before you commit to a threading implementation.
"Check Suitability" Analysis
Evaluate and project performance and scalability of alternative threading designs, helping you understand potential load imbalance, lock contention, and the impact of runtime overhead.
Find potential deadlocks and races before you implement threading.
Predict parallel data-sharing problems that can lead to deadlocks and races. Access a list of errors, code snippets at all related code locations, and a click-through navigation to the actual source location.