mental images's DiCE™ (Distributed Computing Environment) is a platform for writing parallelized high performance computing applications. It helps developers to write applications which scale to thousands of multi-core CPUs, possibly combined with thousands of GPUs. DiCE addresses both the scaling to the CPUs and GPUs of one machine as well as leveraging all the resources in a cluster of machines.
DiCE was specifically designed to help application developers who are no experts in multi-threaded programming or distributed systems, creating highly scalable and robust applications while allowing them to focus on their field of expertise.
Key Features
High level API | DiCE does not require the application writer to deal with low level communication aspects, but allows to store data and submit computing tasks which are then automatically executed in a cluster. |
Interactive applications | DiCE allows to implement applications that perform massive amounts of calculations in tens of milliseconds. |
Distributed database | DiCE has a built-in distributed database that transparently handles the data distribution to all nodes in a cluster, and provides features such as fault tolerance. |
Automatic load balancing | Built-in scheduling algorithms are available for automatically and optimally balancing the workload across all available computing resources in a cluster. |
Support for multi-user operation | DiCE supports multiple simultaneous operations, so that to mixed long- and short-running operations can occur on the same cluster. DiCE also allows concurrent tasks to share all or parts of the data needed for their computations, thereby drastically reducing the memory consumption of the system. |
Distributed system | DiCE architecture is by far superior to simple client/server systems. DiCE is a truly distributed system, that handles machine failures without service interruption. |

