Unlocking the Potential of Today's Multicore Systems: Faster Performance and Even Faster Time to Market
Advancement in modern processor design since 2004 has focused on delivering an ever-increasing number of cores. But while most computer systems today include multicore CPUs and powerful GPUs, the software programming technology to utilize these many cores had not evolved, remaining largely unchanged since 1980. Nor is this problem solved by virtualization or operating system technology - it must be dealt with in the applications themselves. This gap in programming technology means the majority of software applications have yet to truly take advantage of the processing and energy efficiency potential of modern multicore and many-core systems.
The State of the Art in Multicore Programming
"The lack of multicore programming tools for mainstream developers is the biggest challenge the industry faces today." - Linley Gwennap, Principal Analyst, InfoWorld, March 2009
Texas Multicore Technologies (TMT) unlocks the potential of today's multicore and many-core systems with breakthrough parallel programming solutions. Based on over 20 years of university research in partnership with NASA, TMT's innovative SequenceL™ technology delivers a complete, automated and agile solution to solve the multicore programming problem. Unlike manual brute force parallel coding methodologies, or multicore development tools that merely provide feedback but leave the hard work to the user, TMT provides a comprehensive programming solution that quickly and easily addresses the root issues facing application developers targeting multicore systems.
The SequenceL Approach
Since this game-changing solution is unlike other "Band Aid" multicore or parallel programming tools, many people find it helpful to start with this boulder moving analogy to understand this breakthrough technology and the industry-wide problem it solves.
TMT leverages the innovative SequenceL™ functional programming language and applies powerful compiler technology to create a truly disruptive solution in the multicore computing industry. With SequenceL, there is no longer any need for developers to express parallel constructs or to write hardware-specific code, even for GPU-based systems! The SequenceL platform provides an automated path from algorithmic code directly to race-free, massively parallel C++ (and optionally OpenCL) code. When run on multicore machines, the program will automatically identify how many cores are available, allocate the workload appropriately to each core, and adjust those allocations as the program runs to ensure all cores are being fully utilized. The result is dramatically faster application operation and more efficient computing utilization. In fact, the more cores available, the more effective the SequenceL approach is compared to traditional approaches, which become increasingly difficult and error-prone to program as the number and type of cores increases.
- Finding and exploiting parallelism
In traditional imperative programming languages (e.g.- Java, C/C++, C#), code and data complexity can easily mask opportunities for parallel processing. The SequenceL language and toolset automatically finds race-free parallelisms from simple, functional descriptions of the application, freeing developers to focus on application functionality instead of parallel implementations.
- System synchronization
With manual parallel coding, a deep understanding of computing system architecture is necessary to distribute the load across available processor cores, and to avoid deadlocks and race conditions in bus communications and memory accesses. This is even more difficult with the trend to utilize GPU cores for their computational performance. TMT's technology optimally distributes the application execution across the available computing resources for maximum performance.
- Application transportability
Software applications developed for specific multicore architectures often need to be rewritten to target specific computing systems. Applications written in SequenceL will run on different implementations of a given architecture (e.g.- x86, 4 core to 16 core) by virtue of the platform runtime library. Or if retargeting to a new architecture, GPU, etc., SequenceL applications can simply be recompiled and will be automatically optimized for other multicore architectures without rewrite.
Best of all, SequenceL works with existing software frameworks, methodologies, and tools, building upon industry standards such as C++ and OpenCL. Read on to discover how Texas Multicore Technologies can unleash the multicore performance for your existing software applications and accelerate your next development project.
Faster Performance and Even Faster Time to Market™