Menu

Overview

ENGITEX

Why JMP

With a rapid development of multicore PCs, high-performance computing clusters and with client-server architecture becoming omnipresent, the standard hardware-agnostic approach to load distribution on a local machine provided in Java might not be suitable for the tasks.

Similar options are available in C++ as discussed here Parallel computing in C++ vs. Java by ENGITEX

▪ None of these assume a distributed system by default. This is the primary goal of JMP package.
▪ Unlike older tools, JMP also allows setting affinity for new processes explicitly instead of relying on the OS.
▪ Another perk made available with Java RMI is remote (dynamic) code loading which offers a new look on client-server software design.

JMP overview

Java MultiProcessing is a library with API that resembles Java Multithreading which is an essential built-in Java feature. The library's core component allows running a piece of Java code (further referenced as task) asynchronously on a separate process.

JMP relies on RMI for inter-process communication both on local and remote machines and uses modern Windows PowerShell for communications with the OS.

In addition to running a separate process asynchronously, Java Multiprocessing naturally incorporates a cluster management and load balancing tool. The tool takes care of load balancing between several CPUs, both on local and remote machines. A desktop running JMP server (a.k.a. JMP node ) might have its "slave" nodes for load distribution.

Java Multiprocessing scheme gives a general idea how JMP works - cluster management classes and methods rely on multiprocessing methods:
UML

Two of the most obvious Java Multiprocessing use cases are:
a. All kinds of data parallelism (exhaustive search algorithms, optimization problems).
b. Server-side load balancing between available CPUs.

The idea of JMP came up while ENGITEX team had been working on real-life industrial projects.
Its cluster management functionality will be developed further to make JMP a natural choice in the science, oil&gas, energy and logistics.

See also:
[Concepts]
[System requirements]
[Remote code loading]
[Examples of use cases]
[Node admin panel]


Related

Wiki: Concepts
Wiki: Examples of use cases
Wiki: Node admin panel
Wiki: Remote code loading
Wiki: System requirements

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.