Working with Major Industry Stakeholders, the Company has Driven a Strategy to Accelerate the Adoption of Efficient Multicore Programming Practices Throughout the Embedded Software Community
San Jose, CA – March 17, 2009
CriticalBlue, the pioneer in embedded multicore software and platform design systems, in close cooperation with other industry stakeholders, has announced a three prong strategy to streamline the adoption of multicore programming in the embedded industry. The company’s goal is to create an industry wide solution that can accelerate the proliferation of multicore designs by simplifying the challenges associated with multicore software development at each parallelism exploitation level.
The company’s strategy focuses on three areas that enable practical and effective solutions for programming multicore processors and systems:
- Tools to guide practical parallel programming starting with existing unmodified sequential code
- Industry derived multicore programming practices, for portability, reuse, and efficiency
- Collaboration with platform and processor companies to streamline and optimize design flows
CriticalBlue is also announcing the immediate availability of Prism™, the first product resulting from this focus. See the accompanying press release: CriticalBlue delivers Prism, the first embedded multicore development system to leverage unmodified sequential software.
“We want to enable existing software development methodologies to become multicore aware – it’s a critical element in our industry vision,” commented David Stewart, CEO, “We have diligently worked with customers; tools providers and platform companies to better understand their software development challenges. Our goal has been to create a technology solution that implements this, without creating new languages or methodologies. Today, CriticalBlue is launching that solution and the vision that it realizes.”
Parallelism Attainment Levels: How End Users Adopt Multicore
As multicore continues to evolve, it is apparent that for a given system, engineers exploit one or more specific levels of parallelism. CriticalBlue has identified these parallelism attainment levels (PALs) as a way of focusing best practices and tool support at clear technical targets. These distinct and complementary levels are:
- Instruction Level Parallelism – Processors and compilers automatically make use of instruction level parallelism extracted from sequential code. In common use today in all processor based systems.
- Process Level Parallelism – The operating system automatically schedules different processes and applications over multiple cores. In widespread use today where multicore aware operating systems are used in embedded systems.
- Thread Level Parallelism – The user modifies the code to introduce threads that use parallelism inherent in an application. Largely a manual and ad-hoc process today.
- Virtualized System Parallelism – Multiple virtualized operating systems operate on a multicore platform sharing resources and require load balancing. Commonly used in the server market and increasingly significant in the embedded market.
“From a platform provider’s standpoint, the Prism solution produces a unique and highly effective method for practical multicore programming,” commented Satoshi Masuda, chief engineer, System Solution Product Marketing Department, Renesas Technology Corporation. “Our advanced SH-based multicore platform architectures derive significant performance and time-to-market benefits from efficient coding, and CriticalBlue’s technology will be instrumental in ensuring that software engineers realize the full potential of our multiprocessing technology.”
The first release of the Prism multicore programming system represents the first element of the CriticalBlue strategy, enabling the company to supports the first, second, and third PAL levels. It augments standard integrated development environments (IDEs) to enable existing sequential code to be analyzed for parallelism trade-offs without code modifications. The system provides analysis and visualization of executed code and performs early code verification to ensure correctness and safety. Using Prism, software development engineers can realize the full potential of multicore processing easily and intuitively. Early multicore adopters can quickly ramp up the parallel programming learning curve, using existing familiar code as their starting point.
“Virtutech’s customers have recognized that traditional editing, compiling and debugging on a cross-development environment can’t deliver the scalability required to develop for sophisticated multicore environments. These semiconductor and OEM providers have turned to the Virtutech® Simics® virtualized system development (VSD) platform as the only practical way to adopt multicore at a lower risk,” commented Michel Genard, vice president of marketing, Virtutech. “CriticalBlue’s Prism is a perfect complement to Simics, and provides a front-end solution that enables engineers to take a top-down approach to full system development for multicore environments.”
Industry Stakeholder Co-operation
CriticalBlue recognized the need for various parallelism attainment levels (PALs) with its first product, Cascade, a coprocessor synthesis solution that extracts instruction level parallelism (PAL 1) from sequential software. Since Cascade generates its own processing architecture, it can extract parallelism far beyond the capability of regular compilers. Cascade users often ran multiple coprocessors in parallel with the main system processor, structuring their software to run independently on processors and coprocessors. CriticalBlue worked closely with processor and platform vendors, and their direction led directly to the development of Prism, which addresses the scheduling and potential multithreading of multiple applications in the context of an operating system (PAL 2 and PAL 3). CriticalBlue continues to work with its partners on virtual system parallelism (PAL 4) as well as to continue to streamline design flows, as the second component of its strategy.
“Improving the performance of multicore processors is an ongoing industry imperative, and it’s critical that we have practical and proven technologies to program as effectively as possible,” commented Udi Kalekin, vice president of software engineering, MIPS Technologies, Inc. “MIPS Technologies developed the industry’s first multi-threaded multiprocessor IP core—the MIPS32® 1004K™ Coherent Processing System, and we want to ensure that our customers can easily make the most of its great performance potential. CriticalBlue is providing tools that allow people to do just that.”
Enabling existing software methodologies to become multicore aware was a critical element of CriticalBlue’s vision and its Prism solution. The company’s work to understand best practices and software development techniques without new languages or methodologies is the result of multiple years of work with customers, tool providers and platform companies, and represents the third component of its strategy. The company’s commitment to these principles resulted in the founding and co-chairing of the Multicore Association’s Multicore Programming Practices (MPP) Working Group in May 2008. The working group is due to release an initial programming guide in 2009.
“Immediate progress in multicore adoption requires practical enhancements to existing software design processes, and it was this notion that lead to the creation of the MPP working group,” commented Marcus Levy, president of the Multicore Association. “CriticalBlue has not only contributed greatly to MPP, but has applied its considerable expertise in software acceleration to deliver a programming solution that realizes this philosophy, advancing the state-of-the art in multicore software development.”
CriticalBlue guides software developers through the task of migrating to and optimizing code on multicore platforms through the delivery of innovative and multicore software focused tools, training, and services. The increasing use of complex, multicore processor architectures has accelerated demand for CriticalBlue’s technology and expertise throughout all electronic industry sectors.