CriticalBlue Main Site >>
VIAGRA
Prism Flow

Prism Tour

Prism is a software analysis environment which helps developers to understand how their software will behave on a multicore platform and how design decisions will impact performance and implementation complexity.

Prism provides a range of powerful but easy to use tools to give you an unparalleled insight into your software.

Wondering what benefits would be delivered if you multithreaded your existing sequential software and ran it on multicore platforms? You are not alone. Software teams resist parallelizing their applications because they can't risk potentially complex and uncertain development cycles without real assurance that they can achieve high quality code, on time, with predicted power and performance improvements.

By working closely with multithread/multicore engineers, CriticalBlue developed Prism™ to take developers from 'what-if' to 'requirements met', streamlining sequential to parallel programming in five best practice steps: Analyze, Explore, Code, Verify and Tune.

1. Analyze

Characterize a serial or parallel application on real workloads. Identify program hotspots, call trees, and data dependencies which will shape achievable parallelism.

Analyze
Explore

2. Explore

Before modifying any code, explore different parallel scenarios. What if this function ran in a separate thread? What if these dependencies were removed? Understand the benefits and select the best strategy.

3. Implement

Implement the chosen parallelization strategy. Use existing development tools without change.

Code
Tune

4. Tune

Analyze opportunities for further parallelization by reapplying the previous steps.

5. Verify

Confirm that the implementation safely achieved the desired results. Functions properly threaded and dependencies removed? Any potential data races? Synchronization bottlenecks?

Verify

Benefits

Gain more insight, waste less time - Analyze multiple parallelization scenarios before making any code changes. Verify parallel objectives are properly achieved.

Augment the way you already work - There are no new languages or proprietary extensions to learn. Start with existing serial or parallel code. Mix standard C, C++, assembly, or even binary objects. Work within your own code base. Use familiar development tools and libraries. Prism integrates with Eclipse for maximum portability.

Visualize schedules and pinpoint dependency relationships - Parallel programming is about relationships. Understand synchronization between threads, and go directly to the source to see dependency relationships which must be properly maintained.

Design for scalability and reuse - Develop parallelization which scales across varying number of cores. Eliminate potential race conditions which could fail as data sources and processing resources change.

Apply precision when needed - Platform support ranges from instruction-accurate application analysis to highly specialized and system-accurate chip and board support packages.

Boost your parallel IQ - Prism includes integrated documentation and practical case studies. Supplemental services are available to instill practical parallel practices or augment development teams.