For application-specific libraries (i.e. image processing or simulation), Fixstars has developed and incorporated new parallel computing technologies that serve to optimize performance in various environments. In addition, Fixstars' technology goes beyond the simple use of multithreading and SIMD (Single Instruction Multiple Data) technology by optimizing cache performance to obtain higher speeds and greater efficiency than any other product available today.
The graph below is a comparison of some of the image processing capabilities of M³ against OpenCV, another open source library. Although the degree of improvement in performance may differ based on the processor and the specific operation, there was at minimum an increase of 500% in the processing speed*.
*These results are from tests conducted in May 2012. Some results may differ in the latest versions.
There is a diverse spectrum of multi-core hardware architectures on the market today. Ranging from PC servers dominated by the x86 (32-bit or 64-bit) architectures, the explosive growth of the mobile tablet with the majority of devices using ARM, the overwhelming output of multimedia where GPU is rapidly gaining shares, and even CPUs with GPUs integrated onto the chip. With limited time or resources and pressing deadlines, it’s a difficult task to choose a hardware platform that optimizes the value of your product to its full potential.
By developing applications on M³, you can reuse the same source code on all the different hardware platforms. In the future, when expanding your product offerings, or when changing to new hardware architecture, the need to rewrite the entire application is eliminated, thus greatly decreasing costs associated with switching hardware platforms.
Easy to use
In today’s high-tech world, multi-core processors are ubiquitous and used in a wide variety of applications. Even mobile devices like smartphones and tablets come equipped with dual-core or quad-core processors.
In terms of software, the evolution to the multi-core processor has brought on new issues as well. Not only must the software be required to “perform the required logic”, but optimally, the software application should also operate efficiently in a complex hardware environment. As such, the following are just some of the issues that arise, which did not exist previously when developing software in a single-core environment:
- Optimizing processing capabilities for the hardware;
- Parsing the logic of the software applications within the mindset noted above;
- Performing an array of algorithmic adjustments in order to further improve efficiency;
- Testing to find out bugs and issues resulting from operating in a parallel processing environment.
These and other issues result in a huge increase in development time and cost.
M³ can greatly decrease the amount of additional work needed to operate in a parallel processing environment. By using M³, developers can focus again on simply “writing code”.
The graph to the right depicts product development costs calculated “with M³” and “without M³” for one of our clients. This client adopted M³ as their primary software development platform upon evaluating cost reduction, efficiency, usability, and other factors.
For inquiries regarding M³
Please contact us here.