
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 multicore engineers, CriticalBlue developed Prism™ to take developers from 'what-if' to 'requirements met', streamlining sequential to parallel programming in five best practice steps
Characterize a serial or parallel application on real workloads. Identify program hotspots, call trees, and data dependencies which will shape achievable parallelism.
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.
Implement the chosen parallelization strategy. Use existing development tools without change.
Confirm that the implementation safely achieved the desired results. Functions properly threaded and dependencies removed? Any potential data races? Synchronization bottlenecks?
Analyze opportunities for further parallelization by reapplying the previous steps.
Prism is engineered to work with different processors, programming models, and system environments. Prism capabilities are enabled through platform support packages (PSPs).
Core PSPs are designed to support general multicore architectures and are intended for quick application parallelization. Both ARM and MIPS processors are supported with more on the way.
Precision PSPs enhance Prism for production processors, SoCs, and boards. Platform analysis extensions might include configurable full system modeling, power analysis, custom scheduling, specialized parallel programming models, and operating system and board level integration. The Toshiba Venezia PSP is an example which supports Venezia’s proprietary threading API and cache coherence validation.
Prism pricing starts at $200/month with one core PSP and a minimum one year license. Additional open source or commercial simulators may be required. System PSPs are developed in collaboration with chip and system providers and are priced individually.
Prism is available directly from CriticalBlue or through platform providers.
PC with at least 1GB memory. Windows or Linux operating system