Software Architecture

M³ is a software platform that utilizes a parallel programming framework, built on an optimized architecture composed of libraries for specific applications. The diagram below is a graphic illustration of the primary components of M³. Details of each layer are outlined below.

App layer Framework layer Platform layer Hardware layer

Application Layer

This is the layer where developers define the application. M³ provides the framework for the platform and libraries necessary to product development. If you are part of one of the following industries, M³ should be an optimal solution for your parallel computing platform needs:

  • Computer Graphics (e.g. global illumination rendering)
  • Computational Finance (e.g. options pricing and risk analysis)
  • Medical Imaging
  • Computer Vision (e.g. external inspection device, image analysis device)

Because of their I/O load, these industries are ideal for M³. Many applications associated with these industries also have a high computational load. Therefore, these industries in particular would benefit from the increased development efficiency and improved processing capacity offered by M³.

Furthermore, Fixstars also offers license-free sample applications. In the case of computer graphics, our global illumination rendering software “lucille” is an example of these applications.

Framework Layer

The primary function of this layer is to pass data and tasks from the user application and M³ library group to the general framework group. Because workflow naturally differs for each of the four industries that M³ serves, we offer a user-friendly and targeted interface to each.

For example, in the field of computer vision, we have created a framework that allows you to modify freely the script to change the parameters or the calling order of the image processing library, without having to recompile the application. For the computer graphics industry, M³ has a framework to simplify parallel computing of ray tracing, shading, and other specialized image processing functions necessary for 3D rendering.

A portion of the source code of this layer has been made public* so that developers can customize the code.

*The extent of the available source code differs by industry. Please contact us for further details.

Platform Layer

Used across all industry fields, the foundation of M³ lies at the platform layer. The primary modules are composed of the following:

  • Interface for the host applications
  • Distributed processing framework that allows for multi-core and multi-node processing
  • Optimized functional libraries optimized for the multi-core architecture

For any specific operation, Fixstars offers fully-functional libraries that provide a single interface call point for all CPUs, NVIDIA GPUs, and AMD GPUs through one architecture. Therefore, native applications can be written to make calls to various functions offered, which allows developers to build easily applications that operate efficiently.

Multi-Core Hardware

The final layer within the M³ architecture is the hardware.

M³ has been developed for and tested with the following CPUs: x86 CPUs by Intel and AMD, and IBM's POWER systems. Full support for ARM-type processors are also on the near-term roadmap. In addition, M³ uses OpenCL to incorporate primitive libraries. Consequently, any GPU or processor that supports OpenCL is a potential candidate in terms of accelerator.

Fixstars performs internal testing on various types of hardware. In addition, the compatible hardware varies by industry. For details on the types of hardware and model numbers currently compatible with M³, please refer to the details for each industry.

For inquiries regarding M³

Please contact us here.